В Drupal 7 клиент хочет добавить кнопку в user_profile_form. Поэтому в своем пользовательском модуле я создаю кнопку и сопутствующий ей обратный вызов. Но хотя кнопка появляется в форме, я не вижу доказательств того, что обратный вызов запускается.
функция member_form_alter(&$form, &$form_state, $form_id) {
если ($form_id == "user_profile_form") {
$ форма ['send_reset'] = массив (
'#type' => 'кнопка',
'#prefix' => "<div id='reset-div'>",
'#суффикс' => "</div>",
'#value' => "Сбросить участника",
'#ajax' => [
'обратный вызов' => 'member_reset_user',
'обертка' => 'сброс-div',
'event' => 'отправить', //клик и т. д.
],
'#вес' => -150,
'#атрибуты' => массив(
'id' => массив ("сброс-отмена")
),
);
}
функция member_reset_user ($ form, & $ form_state) {
умереть();
пытаться {
моя_пользовательская_функция():
watchdog('участник', 'сброс пользователя', WATCHDOG_NOTICE);
}
поймать (исключение $e) {
watchdog('участник', 'сброс не выполнен', WATCHDOG_ERROR);
}
вернуть $ форму;
}
HTML-код, сгенерированный Drupal, предлагает функцию отправки.
<div id="reset-div"><input id="reset-cancel" type="submit" name="op" value="Reset member" class="form-submit"></div>
Поскольку я не создаю новые элементы формы в своем обратном вызове, а просто запускаю пользовательскую функцию, я не вижу, что делаю неправильно. Я слишком долго смотрел на это.