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