web-dev-qa-db-ja.com

ユーザーロールに基づいて1つのメニュー項目のみを表示/非表示にするにはどうすればよいですか?

ユーザーロールに基づいて表示または非表示にする単一のメニュー項目があります。

使用例:有料会員と無料会員のある会員サイトがあります。ナビゲーションメニューで、「有料」の役割を持たないユーザーに「アカウントのアップグレード」ページへのリンクを表示したいと思います。アクセスを制限する必要はありません。リンクを表示または非表示にするだけです。

別のメニューを作成し、そのメニューブロックへのアクセスを役割で制限できることはわかっていますが、既存のメニューの単一のメニューアイテムのリンクに対して同じことを行う簡単な方法はありますか?

5
Patrick Kenny

「アカウントのアップグレード」ページがビューの場合、追加のモジュールなしでそれを行う方法があります。次に、そのビューのアクセスを匿名ユーザーに制限し、そのビューにメニューエントリを追加できます。

1
uwe

あなたは試すことができます ロールごとのメニュー

このモジュールを使用すると、ユーザーロールに基づいてメニュー項目1へのアクセスを制限できます。 Drupal core menu.module —両方のモジュールをアクティブ化し、通常どおりにメニュー項目を編集するだけです。役割によってアクセスを制限できる新しいフィールドセットがあります。フィールドセットも表示されますノード編集フォーム。

enter image description here

D7リリースはまだ安定していない7.x-1.x-dev

4
niksmac

私が最近見つけたこれに対する別のモジュールソリューションは Menu Item Visibility です。まだベータ版ですが、実際には現在D7で機能しています。ロールごとのメニュー項目を取得することはできませんでした。 (ユーザーがメニューを再構築するためにプロファイルを保存するたびにキャッシュをクリアし続けなければなりませんでした。)

1
Patrick Kenny