ドメインアクセスを使用してDrupalサイト上のノードの編集フォームから隠す他のドメインのメニュー

StackOverflow https://stackoverflow.com/questions/3036293

質問

私はマイクロサイトの数を実行するためにドメインアクセスモジュールを使用してのライブの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 ">右方向以前の

他のヒント

ここで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;
  }
}
scroll top