我正在尝试针对特定的内容类型,以便匿名用户在任何时候尝试访问内容类型的页面时都会给他们一个未经授权的消息。为此,我认为我需要使用 hook_menu_alter() 并向其添加访问回调。(这是一个 Drupal 6 站点)。
我遇到的问题是我真的不知道如何向菜单系统识别该内容类型的节点。我知道生成的 URL 类似于“name-and-biography/name-and-biography-%username”。所以我尝试了这个和其他一些组合,但似乎无法让它发挥作用。
我基本上试过这个:
function mysite_profile_menu_alter(&$items) {
//Restrict access to profile pages
$items['name-and-biography/%title']['access callback'] = 'mysite_profile_content_access';
}
function mysite_profile_content_access() {
//Check to make sure they are an authenticated user
GLOBAL $user;
foreach ($user->roles as $role) {
if ($role == 'authenticated user') {
return TRUE;
}
}
return FALSE;
}
我也尝试过像“name-and-biography/%”和“name-and-biography/*”这样的项目路径。它似乎不起作用。默认的 URL 别名设置为“[type-name]/[title-raw]”。并且标题生成设置为“[type-name] - ([author-name])”。
我也尝试使用 hook_access(),但这似乎没有运行。即使在多次刷新所有缓存之后。这两种选择似乎都不是。
有没有人知道我需要如何在我的 hook_menu_alter() 中定位它?或者让 hook_access() 工作?还是有其他想法?我确实尝试了内容访问模块,但它在我们的网站上产生了问题。因此,另一种选择将是首选。
谢谢!