有关实现的详细信息,请参见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:
添加保存配置“提交”按钮,并将回调提交给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函数为所有表单值设置变量。