Двойной выход в функции Drupal - PullRequest
0 голосов
/ 25 декабря 2010

Я схожу с ума

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

// Nothing here

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

// Nothing here

}

вижу на экране бла-бла-бла-бла

Почему?

Ответы [ 2 ]

1 голос
/ 26 декабря 2010

hook_form_alter работает на каждой форме.Возможно, у вас есть форма поиска на этой странице, поэтому она печатает текст дважды (по одному для каждой формы).

Чтобы добавить изменения только в одну форму, используйте аргумент $ form_id, подобный этому:

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

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

замените YOURFORMID на свой form_id.

Вы можете найти form_id, посмотрев HTML-код вывода формы и найдя значение ввода, его имя - form_id.

1 голос
/ 25 декабря 2010

Возможно, у вас есть две формы на странице.Попробуйте напечатать (еще лучше, установите devel и используйте dpm) $ form_id вместо $ var и посмотрите, какие формы задействованы.

...