Как поймать значения по умолчанию после того, как форма была установлена ​​по умолчанию в Drupal 7 - PullRequest
0 голосов
/ 16 ноября 2011

Моя форма функции

function my_module_settings($form, $form_state) {   
   $form['my_textfield'] = array(
    '#type' => 'textfield',
    '#title' => 'Title',
    '#default_value' => variable_get('my_textfield', 'demo'),
    );

     $form['actions']['reset'] = array(
      '#type' => 'submit',
      '#value' => t('Reset to defaults'),
      '#submit' => array('my_module_settings_reset'),
    );  

    $form['#submit'][] = 'my_module_settings_submit';  
    return system_settings_form($form);
  }

  function my_module_settings_submit () {
    // Do something on sumbit.
  }



  // My reset function
  function my_module_settings_reset($form, &$form_state) {

  form_state_values_clean($form_state);

  // print_r($form_state['values']); 
  foreach ($form_state['values'] as $key => $value) {
    variable_del($key);
   }

   // I need to get $default right after "Reset" button pressed
   $var = send_default_values($default);

}

Итак, my_module_settings($form, $form_state) - это стандартная форма настроек модуля.Я добавил кнопку «Сброс».Я хотел бы получить массив всех значений по умолчанию (в моем случае «demo») после отправки и передать его в функцию send_default_values($default).$form_state['values'] содержит старое значение поля сразу после нажатия «Сброс», но на самом деле форма была изменена на состояние по умолчанию.

Идеи, предложения?

1 Ответ

1 голос
/ 16 ноября 2011

system_settings_form добавляет кнопку сброса по умолчанию, поэтому вам не нужно этого делать.Кроме того, он автоматически восстанавливает значения по умолчанию при нажатии.Более того, я не думаю, что вам нужна другая функция отправки, потому что system_settings_form сохранит значения в таблице переменных в базе данных.

EDIT : очевидно, в D7 они удалили эту функцию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...