2011-01-05 15 views
0

Ich habe ein Modul erstellt, um alle meine Form zu ändern namens "form_mods". Es funktioniert für die meisten Situationen, aber nicht für die Taxonomie-Seite.Drupal hook_form_alter für Taxonomie admin

Ich ziele auf die Formular-ID von "taxonomy_overview_vocabularies". Ich versuche den Link "Vokabeln bearbeiten" für Rollen von "webmaster" und "dj" zu verstecken.

Mein Code deaktiviert das $ form-Array korrekt, aber Drupal zeigt immer noch den Link zum Bearbeiten des Vokabulars an.

function form_mods_form_alter($form, $form_state, $form_id) { 

    if($form_id == 'taxonomy_overview_vocabularies'){ 

     global $user; 
     $hide=0; 
     $hideArray = array('webmaster', 'dj'); 
     foreach($user->roles AS $key => $value){ 
      if(in_array($value, $hideArray)){ 
       $hide++; 
      } 
     } 

     if($hide){ 
      foreach($form AS $vocab){ 
       //print_r($vocab); 
       if(isset($vocab['edit']['#value'])){ 
        unset($vocab['edit']['#value']); 
       } 
      } 
     } 
    } 
} 

Antwort

0

Sehr kleine PHP Fehler, wenn Sie Arraymitglieder in eine für jede Anweisung Sie sie durch Verweis übergeben müssen, ändern wollen &foreach($form AS &$vocab) sonst die $ vocab nur eine Kopie des Arrays wäre

foreach($form AS &$vocab){ 
     //print_r($vocab); 
     if(isset($vocab['edit']['#value'])){ 
      unset($vocab['edit']['#value']); 
     } 

    } 
+0

Das war es !! Vielen Dank. – EricP

Verwandte Themen