Profile picture for Admin

В большинстве случаев хватает обычной system_settings_forn для сохранения настроек. Но что делать, если нужно добавить доп. Кнопки в форму?

Когда лень писать обработчик стандартных полей _submit, можно написать только один обработчик кнопки.

 

Пишем стандартную функцию формы.

Сразу заполняем ее стандартной системной формой.

$form = system_settings_form($form);

После этого подключаем поля, но в нашем примере – кнопку.

$form['actions']['custom_submit'] = array(

  '#type' => 'submit',

  '#value' => t('Custom submit'),

);

$form['#submit'][] = '_mymodule_custom_submit';

Мы добавляем в массив сабмитов свой, который сработает после системного. Далее пишем функцию для обработки нажатия на кнопку.

function _mymodule_custom_submit($form, $form_state) {
  switch ($form_state['clicked_button']['#value']) {
    case t('Custom submit'):
    // тут код
    break;
  }
}

Таким образом, можно добавить свои кнопки в систменую форму настроек Вашего модуля и расширить стандартный функционал.

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.
 dP    dP  d88888P   888888ba   .d888b.  888888ba  
Y8. .8P d8' 88 `8b Y8' `8P 88 `8b
Y8aa8P d8' a88aaaa8P' d8bad8b 88 88
88 d8' 88 `8b. 88` `88 88 88
88 d8' 88 .88 8b. .88 88 .8P
dP d8' 88888888P Y88888P 8888888P

Введите код, изображенный в стиле ASCII-арт.