Какой крючок для прослушивания формы отправить? - PullRequest
2 голосов
/ 25 августа 2010

Я пишу модуль, который действует на другой модуль.Форма отправки для другого модуля находится по адресу admin / settings / image-toolkit.Когда его форма отправлена, мой модуль должен ответить на это событие.

Какой хук мне нужно слушать и как я знаю название формы?

Я даже не уверен, где в этом случае напечатать dsm, чтобы получить больше информацииформа.Есть ли что-то вроде hook_nodeapi, но для форм, которые я мог бы дать мне больше информации о форме?

1 Ответ

10 голосов
/ 25 августа 2010

Все формы поставляются со свойством $form[#submit], которое описывает, какие функции запускаются при отправке формы. Конечно, по умолчанию используется formname_submit, но вам просто нужно добавить новые в этот массив.

Итак, вы должны использовать hook_form_alter и добавить еще один элемент в массив $ form ['# submit'].

Вы можете легко получить идентификатор формы с помощью модуля Devel или путем поиска в HTML самих страниц. (Дефис должен быть переведен в подчеркивание, если вы выберете последний путь)

Я получаю system_image_toolkit_settings для этой формы в моих установках, но это может зависеть от того, какую библиотеку изображений вы используете (я использую GD).

Хотя, признаюсь, я немного почесал голову о том, какие обработчики отправки вы хотите добавить к этому; p

Edit:

Пример кода в ответ на комментарий ОП:

То, что вы в основном ищете, это: (от http://drupal.org/node/144132)

function my_module_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'my_form') {
    $form['#submit'][] = 'my_additional_submit_handler';
  }
}

Конечно, для того, чтобы что-то произошло, вам нужно будет добавить в свой пользовательский модуль function my_additional_submit_handler.

...