昊天SEO

创建自定义的Drupal后台管理页面

drupal_config_page

drupal_config_page

在开发Drupal模块时,创建自定义的Drupal后台管理页面几乎是必须的工作。今天就为大家介绍一下这方面的知识。

首先我们需要在模块的module文件中实现hook_menu(),就像这样:

function mymodule_menu() {
  $items['admin/config/people/mymodule'] = array(
    'title' => '配置页面的标题',
    'description' => '配置页面的描述。',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('mymodule_config_form'),
    'access arguments' => array('administer users'),
    'type' => MENU_NORMAL_ITEM,
  );
  return $items;
}

在这个hook_menu()的实现中,定义了配置页面的路径admin/config/people/mymodule,从arg(2)为people可以看出,我们的配置页面隶属于名为PEOPLE的管理面板(Admin panel,实际上是个区块)。title定义了在管理面板中通往配置页面的链接文本,description定义了在管理面板中有关配置页面的描述。通过页面回调可以看出,我们使用了一个名为mymodule_config_form()的函数定义配置页面的表单。此外,只有拥有administer users权限的Drupal用户,才能访问我们的配置页面。

现在我们来实现mymodule_config_form()函数。为了简便起见,这个表单只有一个mymodule_something元素。

function mymodule_config_form($form, &$form_state) {
  $form['mymodule_something'] = array(
    '#type' => 'textfield',
    '#title' => t('配置项的标题'),
    '#description' => t('配置项的描述'),
    '#required' => TRUE,
  );
  return system_settings_form($form);
}

这样,在路径admin/config/people/mymodule中就出现了我们的配置表单。有关表单API请大家查阅Drupal官方文档,不再累述。大家可能有疑问,这个表单为什么没有提交按钮呢?要解答这个问题就需要说一说system_settings_form()函数了。

该函数为表单数组添加了提交处理器和提交按钮。当使用者点击配置表单的提交按钮之后,表单中的所有数据将通过variable_set()保存为持久变量(保存在Drupal内核数据库的variable表中)。其中持久变量的名字使用了表单数组键的名字。因此,我们命名的表单数组键,最好使用模块名作为前缀,以避免命名冲突。当设置保存成功之后,返回绿色的确认消息,否则返回红色的错误消息。当然,system_settings_form()函数并非必须的,我们完全可以使用普通的表单提交函数。

关于表单的验证可以查阅我以前写的文章,这里不再累述。

当我们禁用并卸载Drupal模块时,还需要删除保存在variable表中的设置。因此还需要实现hook_uninstall()钩子函数,它放置在模块的install文件中。

function mymodule_uninstall() {
  variable_del('mymodule_something');
}

本文地址官网    新乡网站建设,seo

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址