You are here

定义你自己的管理部分

       Drupal有多个管理设置的类别,比如内容管理和用户管理,都出现在主管理页面上。如果你的模块需要一个自己的类别,那么你可以非常容易的创建一个。在这个例子中,我们创建一个名为“Node annotation”的新类别。为了实现这一点,我们修改我们的菜单钩子以定义新类别:

 
/**
 * Implementation of hook_menu().
 */
function annotate_menu() {
       $items['admin/annotate'] = array(
              'title' => 'Node annotation',
              'description' => 'Adjust node annotation options.',
              'position' => 'right',
              'weight' => -5,
              'page callback' => 'system_admin_menu_block_page',
              'access arguments' => array('administer site configuration'),
              'file' => 'system.admin.inc',
              'file path' => drupal_get_path('module', 'system'),
       );
       $items['admin/annotate/settings'] = array(
              'title' => 'Annotation settings',
              'description' => 'Change how annotations behave.',
              'page callback' => 'drupal_get_form',
              'page arguments' => array('annotate_admin_settings'),
              'access arguments' => array('administer site configuration'),
              'type' => MENU_NORMAL_ITEM,
              'file' => 'annotate.admin.inc',
       );
 
       return $items;
}
 
      现在我们代码生成的结果改变了,多了一个新类别,而我们模块的设置链接也包含在了里面,如图2-3所示:
2-3 指向注释模块设置的链接现在作为一个单独的类别出现了
 
     如果你是一步一步跟着做的,那么你需要清除菜单缓存来查看链接的显示。
有多种方式:可以直接清空cache_menu表,或者使用Drupal的开发模块(devel.module)所提供的“重构菜单”链接,或者导航到“管理➤站点配置 ➤性能”并点击“清除缓存数据”按钮。
 
提示 开发模块(http://drupal.org/project/devel)是专门用来支持Drupal开发的。它能帮你快速的访问许多开发功能,比如清空缓存,查看变量,追踪查询语句,以及更多。它是专业开发的必备品。如果你还没有安装它的话,那么需要下载它,并将文件夹放在sites/all/modules/devel,接着启用该模块,然后导航到“管理➤站点构建 ➤区块”,启用它的开发区块。
 
     我们使用两步就可以建立我们的新类别了。首先,我们添加一个菜单项,用来描述类别头部。这个菜单项有一个唯一的路径(admin/annotate)。我们声明:它应该放在右栏中,重量为-5,这样它就恰好位于“站点配置”类别的上面,从而方便了截图,如图2-3所示的。
 
     第二步是告诉Drupal,把指向注释设置的实际链接放在类别“Node annotation”的内部。我们通过修改原有菜单项的路径来实现这一点,以前的路径为admin/settings/annotate,现在被替换为了admin /annotate/settings。在以前,菜单项是“站点配置”类别路径admin/settings的孩子,如表2-1所示。当Drupal重新构造菜单树时,它查找路径来为父菜单项和子菜单项建立继承关系,由于admin /annotate/settings是admin /annotate的孩子,这决定了要像图2-3那样显示。将模块菜单项嵌套在如表2-1所示的任意一个路径下,将使模块出现在Drupal管理页面中该类别的下面。
 
     当然,这仅仅是一个例子,在真实场景下,为了创建一个新的类别,你必须有充分的理由,否则管理员(通常是你自己)面对太多类别时,会犯困的。
2-1 管理类别的路径
路径                      类别
admin/content           内容管理
admin/build              站点构建
admin/settings           站点配置
admin/user                用户管理
admin/logs                日志
 老葛的Drupal培训班 Think in Drupal

Drupal版本: