参照system_settings_formとsystem_settings_form_submitを実装の詳細のために。Drupal 7では、[システム設定]フォームから[デフォルトにリセット]ボタンが削除されました。
function system_settings_form($form) {
$form['actions']['#type'] = 'actions';
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save configuration'),
);
if (!empty($_POST) && form_get_errors()) {
drupal_set_message(t('The settings have not been saved because of the errors.'), 'error');
}
$form['#submit'][] = 'system_settings_form_submit';
// By default, render the form using theme_system_settings_form().
if (!isset($form['#theme'])) {
$form['#theme'] = 'system_settings_form';
}
return $form;
}
System_settings_form:
Addの保存設定の[送信]ボタンとsystem_settings_form_submit関数へのコールバックを送信します。
system_settings_form_submit:
function system_settings_form_submit($form, &$form_state) {
// Exclude unnecessary elements.
form_state_values_clean($form_state);
foreach ($form_state['values'] as $key => $value) {
if (is_array($value) && isset($form_state['values']['array_filter'])) {
$value = array_keys(array_filter($value));
}
variable_set($key, $value);
}
drupal_set_message(t('The configuration options have been saved.'));
}
$ form_state ['values']を使用して読み取られたユーザーが送信したフォーム要素の値としてフォーム要素のキーおよび値としてキーを使用して、すべてのフォーム要素を反復処理し、各フォーム要素の変数を設定します。
つまり、variable_set関数を使用してすべてのフォーム値の変数を設定する送信ハンドラー付きのフォームです。