web-dev-qa-db-ja.com

hook_menu_alterを使用してアクセスコールバックを変更する

私はhook_menu_alterを操作しようとしています。たとえば、アクセスコールバックを管理パス(admin/config/account/people/fields)に変更しようとしています。

権限を作成し、役割に追加しました。今私はこれを試しています:

function mymodule_menu_alter(&$items) {
   $items['admin/config/people/account/fields']['access arguments'] = array('my custom permission');  
}

しかし、それは機能しません。

この「システム」モジュールの権限を編集できますか?

3
arrubiu

あなたのコードは正しいです(それは間違いなくhook_menu_alter()を使用してパスのアクセス引数をオーバーライドする方法です)。

それが機能しない場合は、キャッシュをクリアするだけです(もちろん、カスタムモジュールがインストールされて有効になっていることを確認してください)。

コードをテストサイトにコピーし、キャッシュをクリアしたところ、匿名ユーザーとしてそのページにアクセスしたときに403エラーが発生しなくなりました。

6
Clive

Drupalのコアモジュールは編集しないでください。 drupalインスタンスのアップグレードパスが壊れます。

コアモジュールを編集しないことを常にお勧めします。

変更しようとしているメニューパスはDrupal 7.に存在しません。探しているものがわかりません。

0
Anil Sagar