Drupal6:系统设置窗体
时间:2020-03-05 15:25:32 来源:igfitidea点击:
Drupal有一套丰富的API来帮助我们用最少的优化代码实现定制功能。
其中一个实用程序是system_settings_form($form)。
最近在我的项目中,我创建了一个新的管理配置表单,因为我必须将所有字段值设置为系统变量。
如果我没有使用system_settings_form(),那么代码应该是这样的。
function premium_admin_form() {
$form = array();
$form['premium_validity_period'] = array(
'#type' => 'textfield',
'#title' => t('Premium service validity period (days)'),
'#default_value' => variable_get('premium_validity_period', 365),
);
$form['premium_node'] = array(
'#type' => 'textfield',
'#title' => t('Product nid'),
'#default_value' => variable_get('premium_node', ''),
);
$form['premium_version'] = array(
'#type' => 'textfield',
'#title' => t('Version'),
'#default_value' => variable_get('premium_version', 1),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
function premium_admin_form_submit($form, $form_state) {
variable_set('premium_validity_period', $form_state['values']['premium_validity_period']);
variable_set('premium_node', $form_state['values']['premium_node']);
variable_set('premium_version', $form_state['values']['premium_version']);
drupal_set_message("Premium Service configuration saved");
}
这是我使用system_settings_form()后的自定义代码,
function premium_admin_form() {
$form = array();
$form['premium_validity_period'] = array(
'#type' => 'textfield',
'#title' => t('Premium service validity period (days)'),
'#default_value' => variable_get('premium_validity_period', 365),
);
$form['premium_node'] = array(
'#type' => 'textfield',
'#title' => t('Product nid'),
'#default_value' => variable_get('premium_node', ''),
);
$form['premium_version'] = array(
'#type' => 'textfield',
'#title' => t('Version'),
'#default_value' => variable_get('premium_version', 1),
);
return system_settings_form($form);
}
让我们看一下系统\设置\窗体()的简要说明。
语法:`
system_settings_form($form) $form: An associative array containing the structure of the form.
它能做什么?
- 它会将默认按钮[保存和重置]添加到窗体中。
- 它将表单值设置为系统变量。
- 当成功保存数据时,它还将提供一条绿色的确认消息,如果出错,它将提供一条红色的错误消息。
与其他表单一样,我们可以将验证函数写入此表单。
如果要删除"重置"按钮,可以使用下面的代码段。
$form = system_settings_form($form); unset ($form['buttons']['reset']); return $form;
我们可以使用
$var_name = variable_get($variable_name, $default_value);
所有系统变量都可以在Drupal数据库中的表名"variable"下使用。

