匿名ユーザーへのアクセスを制限してメニュー項目を表示する


9

コンテンツへのアクセスを設定するためにプライベートモジュールを使用するWebサイトがあります。もちろん、一部のページにはメニュー項目があります。ページを非公開に設定すると、適切な権限を持つユーザーだけがそれを見ることができます。これは素晴らしいことであり、私が望んでいたことです。

しかし、メニュー項目に少し問題があります。それらに割り当てられたコンテンツが公開されていない場合(つまり、それらに割り当てられたページが非公開である場合)、それらは消えます。これは問題ありませんが、引き続きそれらの項目を表示できるようにしたいと思いますナビゲーションで、ユーザーがそれらをクリックすると、ログインページが表示され、特定のページを表示するために詳細を入力するよう求められます。

したがって、基本的にはメニュー項目の動作を変更して、Webサイトの匿名および登録済みメンバーに常に表示されるようにしますが、それらをクリックすると、ページが表示されます(ログインしている場合) in)またはログインページにリダイレクトされる(匿名の場合)

このような解決策を見つけました。そのようなページがたくさんあるので、私には最適な解決策ではないので、より良いアプローチを探しています。メニュー項目の可視性モジュールも試してみましたが、それも役に立ちませんでした!

どうすればこれを達成できますか?

ルカ


github.com/bbinkovitz/derpl/tree/master/foreshadow_menuに役立つコードがいくつかあります。おそらく、いくつかの値を変更するか、メニューの名前を私と同じように指定する必要がありますが、それで始められるかもしれません。
ベス

回答:


4

あなたの問題はかなり一般的です。

Drupal 6、7、8でこのようなトリックを実装する方法については、次の説明を参照してください。http//drupal.org/node/300607

Drupal 6(および7)では、ユーザーがアクセスできないメニュー項目を表示する機能が削除されました。ただし、ユーザーがメニュー項目にアクセスできない場合でも、メニュー項目を表示することが望ましい場合があります。たとえば、403が表示されるときに認証を取得しようとする認証メカニズムを使用している場合でも、メニュー項目を表示して、ユーザーがログインするための資格情報を提供できるようにします。

Drupal 7のソリューションはここにあります:http : //drupal.org/node/300607#comment-4450062

準備ができているモジュールを好む場合-ここからダウンロードできますhttps://github.com/systemseed/always_visible


どうもありがとうございました。このオプションがDrupalに組み込まれていること
Luca

1

同様の状況で、メニューシステムにページを表示する必要がありましたが、コンテンツはログインしたユーザーにのみ表示されます。最終的な解決策は非常に単純で、引き続き機能します。

ノードテンプレートは、コンテンツへのアクセスを制御する代わりに、ユーザーがログインしているかどうかを確認します。ログインしている場合は、コンテンツを表示します。そうでない場合は、ログインまたは登録するためのリンクを含むテキストが表示されます。

それらは自動的にリダイレクトされないため、それが重要である場合、これは解決策ではありません。

一言で言えばコード:

<?php  
global $user;       
if ( $user->uid ) :
print render($content);
// or in some situations, display a view;
else : 
print 'Please <a href="https://drupal.stackexchange.com/user/login">log in</a> or <a href="https://drupal.stackexchange.com/user/register">register</a> etc etc.'
endif; 
?>

ありがとうございますが、それは多くの理由で良い解決策ではありません。私が別のタイプのテンプレートシステムを使用していて、コンテンツをビューに表示するときにコンテンツへのアクセスを許可したいので、アクセスを尊重します。
Luca

ああ、そうです。あなたが答えを見つけてくれることを願っています。かなり一般的なユースケースのようです。
keva
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.