老葛的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']);
}
}
评论
为什么我的“add content”里没有出现相应的链接
att,thank you
清除缓存看看,上面的代码好像本来就不显示链接的
清除缓存看看,上面的代码好像本来就不显示链接的
恩,谢谢!
恩,谢谢!