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

drupal 7 system_settings_form добавить кнопку

В большинстве случаев хватает обычной 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;
  }
}

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

Tags: