匿名ユーザーがコンテンツタイプのページにアクセスしようとすると、許可されていないメッセージが表示されるように、特定のコンテンツタイプをターゲットにしようとしています。これを行うには、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()を機能させますか?または他のアイデアはありますか?コンテンツアクセスモジュールを試しましたが、サイトで問題が発生します。したがって、別のオプションが優先されます。
ありがとう!