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"下使用。