Drupal で Menu token モジュールと Menu per Role モジュールがコンフリクト

投稿者:Administrator 投稿日時:2012/11/28(水) 15:41

 

Drupal で、あるメニューリンクがなぜか表示されなくなってしまいました。

Menu token モジュールを使用して、リンクにtokenを埋め込み、さらに Menu per Roleで、役割によって表示/非表示を切り替えるように設定しているメニューリンクなので、関連するモジュールを疑ってみました。

そうすると、案の定、Menu tokenモジュールのページに、Known Issueとして下記のような記述がありました。

There are modules that use same hook as Menu Token, they need to be executed in proper order. For example: Menu per Role works well with a weight of 5.

しかし、意味がよく分かりません。なにやら「weight」を「5」に設定しろということのようですが...

そこで、モジュールに「weight」というものを設定できる「Module Weight」というモジュールを含む「Util」というパッケージを導入することにしました。ところが…

今度は「Module Weight」の設定ページを開こうとすると、下記のようなエラーが...

Fatal error: Call to undefined function db_fetch_object() in ...

で、色々調べると、「Module Weight」をオフにして、同じ「Util」パッケージに含まれている「Admin Page Fieldsets」をオンにすれば良いとのことなので、実行してみると、ようやくモジュールのリストに「ウェイト」という項目が現れて設定できるようになりました。

ここで、上述のとおりに「Menu per Role」の「ウェイト」を「5」にすると...

めでたしめでたし、ようやくメニューリンクが正常に表示されました。

なんだかなあ。