ドメインアクセスを使用してDrupalサイト上のノードの編集フォームから隠す他のドメインのメニュー
-
27-09-2019 - |
質問
私はマイクロサイトの数を実行するためにドメインアクセスモジュールを使用してのライブのDrupalサイトにいくつかの改良を作る過程にいますよ。私は、ユーザーがノードの編集画面からにコンテンツを投稿することができ、メニューを制限する方法を見つけようとしています。ドメインのいずれかのユーザーのみ、そのドメインに関連付けられたメニューにコンテンツを投稿することができなければならない。
これを達成する簡単な方法はありますか?私は、私が使用することができ、いくつかのフックがあります推測しているが、これまでのところ、私はそれらを識別することができませんでした。私はこれを達成するために、さらにモジュールをインストールすると、フォームを変更し、現在のサイトにコードを追加できるようにする必要があります希望しません。サイトはすでにそれをインストールするには、私たちが持っていた多数のモジュールで苦労されています。
解決 3
最終的に私が働いてきた特定のプロジェクトのためにこれを固定する方法を見つけた:module_form_alterに私は、次を追加しました: -
global $_domain;
if (isset($_domain['domain_id'])) { // only display domain's primary links
$menus[domain_conf_variable_get($_domain['domain_id']
,'menu_primary_links_source')] = $_domain['sitename'].' Primary links';
}
if ( isset($menus) ) {
$options = menu_parent_options($menus, $form['menu']['#item']);
$form['menu']['parent']['#options'] = $options;
}
これは、我々が望んでいただけで何であるだけで、現在のドメインのプライマリリンクメニューにメニューオプションを制限します。
ファビアンの<のhref = "で私を指摘誰https://stackoverflow.com/questions/3036864のおかげで/除去-ナビゲーションメニューから、ノード・メニュー設定型のDrupal ">右方向以前の
他のヒント
README によると、 >モジュールのために、あなたがユーザー管理にいくつかの特定の権限を設定する必要があります:
この機能を有効にするには、「編集ドメイン・ノード」を付与すべきであると いくつかの役割を(必要に応じて)「削除ドメイン・ノードの許可。 [割り当て 個々のユーザーがドメイン編集者としてそれらを割り当てるには、特定のドメインにアカウントます。
私の経験から、多くの衛星前にモジュールとは、ユーザーがアクセス権を持つべきドメイン何からグローバル$ユーザーオブジェクトと姿を確認することができます。あなたは、あなたがそれらを見たくないという選択ボックスから任意のオプションを削除するには、alterフォームを使用することができます。いつものようにDrupalのにかかわらず、それは他の誰かがコードを書くようにする方が良いです! - ドメイン・モジュールは、この機能を提供する場合ので、それを使用する
ここでDrupalの7のためのいくつかの更新されたコードがあります:
/**
* Implements hook_form_FORM_ID_alter().
*/
function MYMODULE_form_page_node_form_alter(&$form, &$form_state) {
global $_domain;
if (isset($_domain['domain_id'])) { // only display domain's primary links
$menus[domain_conf_variable_get($_domain['domain_id'], 'menu_main_links_source')] = $_domain['sitename'].' Main menu';
}
if (isset($menus)) {
$options = menu_parent_options($menus, $form['#node']->type);
$form['menu']['link']['parent']['#options'] = $options;
}
}