2010-12-25 3 views
0

Ich werde verrücktDoppelausgabe innerhalb Drupal Funktion

 
function module_form_alter(&$form, $form_state, $form_id) { 

// Nothing here 

$var = 'bla-bla'; 
print_r($var); 

// Nothing here 

} 

ich auf dem Bildschirm sehen bla-blabla-bla

WARUM?

Antwort

1

Sie haben wahrscheinlich zwei Formulare auf der Seite. Versuchen Sie zu drucken (besser noch, installieren Sie devel und verwenden Sie dpm) $ form_id anstelle von $ var und sehen Sie, welche Formulare beteiligt sind.

+0

Ja, das ist es genau. hook_form_alter() wird auf jedem einzelnen Formular ausgeführt, sodass Sie mehr als ein Formular auf der angezeigten Seite haben. –

+0

Danke für die Wiederholung Scott Reynen, Dave Reid: Um zu klären, die Variable innerhalb platziert If ($ form_id == 'user_login') {} Aussage, ich habe es nicht in den obigen Code geschrieben, sorry – ymakux

1

hook_form_alter funktioniert auf jedem Formular. Sie haben wahrscheinlich das Suchformular auf dieser Seite, so dass es den Text zweimal ausgibt (einen für jedes Formular).

Um Änderungen in den nur eine Form, verwenden Sie die $ form_id Argument wie folgt aus:

 
function module_form_alter(&$form, $form_state, $form_id) { 

    if($form_id == 'YOURFORMID') { 
    $var = 'bla-bla'; 
    print_r($var); 
    } 
} 

Änderung YOURFORMID zu Ihrem form_id.

Sie können die form_id finden, indem Sie auf das HTML der Formularausgabe suchen und den Wert der Eingabe suchen, dass sein Name 'form_id' ist.

Verwandte Themen