回答:
リンクの可視性を直接構成することはそれほど多くありませんが、特定のコンテンツタイプの権限を構成します。特定のタイプのコンテンツへのリンクは、リンクが指すコンテンツの権限に応じて、表示または非表示になります。 。
[管理]の[権限]セクションに移動し、権限を制限するコンテンツタイプを検索して、特定のコンテンツの権限を構成し、それらの権限(表示、作成、編集などのチェックボックス)を構成できます。適切な役割について。
特定のノード/コンテンツへのアクセスを構成する必要がある場合は、コンテンツアクセスをご覧ください。
少量のエルボーグリースでこれを簡単に行うことができます。
メニューがモジュールによって生成されるか、Drupal自体によって生成されるかに応じて、これには2つのフックがあります。でカスタムモジュールあなたはどちらか使用しhook_menuまたはhook_menu_alterを。
これらの2つのフックにはパラメーターがaccess callback
あり、BOOLを返す関数を指定できます。関数がTRUEを返す場合、アクセスが許可され、メニューリンクが表示されます。FALSEが返された場合、アクセスは許可されず、メニューリンクは表示されません。
//Small example
function <your_module>_menu_alter(&$items) {
// Example - disallow access for anonymous to node 15 from custom module
$items['node/15']['access callback'] = '_accessCheck';
}
次に、コールバックを定義します。
function _acccessCheck(){
global $user;
if ($user->uid) { // user is logged in
return TRUE;
} // Anonymous
return FALSE;
}
これが幸せなコーディングに役立つことを願っています!
ロールモジュールごとのメニューを使用して、ユーザーにメニューリンクの一部を表示することを制限できます。
ユーザーの役割に基づいてメニュー項目へのアクセスを制限できます。したがって、特定のメニューリンクを特定のロールから非表示にして、他の人に表示することができます。
手動で行うことができます。多分、それは最良の形式ではありませんが、一時的に問題を解決するかもしれません。
JavaScriptファイルをmainに追加できます.tpl.php
。このファイルでは、JavaScriptメソッドを使用して、コードの親要素と子要素(http://api.jquery.com/parent)を操作できます。したがって、最初に、次のような方法で要素を取得し#idelement
(メニューのすべてのリーフの間のメニューコードに配置される場合があります)、次にによって要素を非表示にする必要があり.hide()
ます。また、.tpl.php
ユーザーがログインしている場合にのみ、JavaScriptファイルに追加したコードをコードに追加する必要があります。
if(user_is_logged_in()){
drupal_add_js(yourjSFile);
}
これは一時的な解決策です。
メニューでコードまたは要素を変更した場合は、このソリューションも変更する必要があります。
これにより、メニュー項目のみが非表示になり、コンテンツタイプは非表示になります。
http://drupal.org/project/content_accessは、Drupal 7.22で非常にうまく機能します。
制限されたコンテンツを指すメインメニューリンクも非表示になります。