最近、一緒に仕事をしようとしているレガシープロジェクトを継承しました。メニューフックを使用してカスタムメニューを定義しましたが、匿名ユーザーはそのメニューにアクセスできず、代わりにユーザーログインページにリダイレクトされるようです。これはかなり大きなプロジェクトであり、コールが傍受されてリダイレクトされる場所を正確に把握するのに苦労しています。どんな助けでも素晴らしいでしょう。
これが役立つ場合、リダイレクトは次のようになります:localhost/user?destination = results
function test_results_menu() {
$items = array();
$items['results'] = array(
'page callback' => 'display_test_results',
'access callback' => 'test_results_resource_access'
);
return $items;
}
function test_results_resource_access() {
return TRUE;
}
function display_test_results() {
// TODO Display results
return "hi";
}
更新:奇妙なことに、プロジェクトでは最近、匿名ユーザーがそこでデータを表示できるようにするサービスモジュールを使用して、残りのエンドポイントも取得しました。
全員がメニューにアクセスする場合は、access callback
TRUEを設定します(決定機能は必要なく、TRUEを渡します(これはテストであり、将来的に条件付きメニューが必要になる場合があります))。
function test_results_menu() {
$items = array();
$items['results'] = array(
'title' => 'your title',
'description' => 'menu description',
'page callback' => 'display_test_results',
'access callback' => TRUE,
);
return $items;
}
function display_test_results() {
// TODO Display results
print "hi";
}
これは仕事になります。 hook_menu
を変更した後は、drupalキャッシュをクリアしてください。