You are here

修改菜单回调

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2009-08-11 09:09

老葛的Drupal培训班 Think in Drupal

现在不需要实现钩子hook_menu()了(译者注:在Drupal5中,是必须的),在“创建内容”页面已经有了相应的链接。Drupal可以自动的发现你新创建的内容类型,并将它的条目添加到http://example.com/?q=node/add页面,如图7-2所示。而URL http://example.com/?q=node/add/joke就是指向节点提交表单的直接链接。这里的名字和描述都来源于你在joke_node_info()中所给的定义。
 
7-2.该内容类型出现在了http://example.com/node/add页面。
 
    如果你不想添加这个直接的链接,那么你可以使用hook_menu_alter()来移除它。例如,下面的代码,就可以为不具有“管理节点”权限的用户移除该页面。
 
/**
 * Implementation of hook_menu_alter().
 */
function joke_menu_alter(&$callbacks) {
    // If the user does not have 'administer nodes' permission,
    // disable the joke menu item by setting its access callback to FALSE.
    if (!user_access('administer nodes')) {
        $callbacks['node/add/joke']['access callback'] = FALSE;
        // Must unset access arguments or Drupal will use user_access()
        // as a default access callback.
        unset($callbacks['node/add/joke']['access arguments']);
    }
}
 

Drupal版本:

评论