Ausblenden andere Domänen Menüs vom Knoten bearbeitet Formular auf einer Drupal-Website Domain angemeldet

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

Frage

Ich bin in dem Prozess einige Verbesserungen an eine Live-Drupal-Website zu machen, dass das Domain-Access-Modul ist mit einer Reihe von Micro auszuführen. Ich versuche, einen Weg zu finden, der die Menüs ein Benutzer zu beschränken Inhalte von dem Knoten bearbeitet Bildschirm veröffentlichen kann. Ein Benutzer auf eine der Domänen sollten nur in der Lage sein Inhalt dieser Domäne zugeordnet, um Menüs zu erstellen.

Gibt es eine einfache Möglichkeit, dies zu erreichen? Ich vermute, es gibt einige Haken ich verwenden könnte, aber bisher habe ich es nicht gelungen, sie zu identifizieren. Ich würde es vorziehen, nicht weitere Module installieren zu müssen, dies zu erreichen und in der Lage sein, einen Code auf die aktuelle Site hinzufügen, um die Formen zu ändern. Die Website ist mit der großen Anzahl von Modulen zu kämpfen wir hatten bereits darauf installieren.

War es hilfreich?

Lösung 3

Schließlich fand einen Weg, dies für das jeweilige Projekt der Festsetzung ich habe auf gearbeitet: in module_form_alter Ich habe hinzugefügt, um die folgenden: -

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;
}

Dies schränkt die Menüoptionen nur die primäre Links-Menü aktuellen Domäne, die genau das, was wir wollten.

Dank Fabian die wies mich in die richtige Richtung früher .

Andere Tipps

Nach dem readme für das Modul, müssen Sie einige bestimmte Berechtigungen in der Benutzerverwaltung setzen:

  

Um diese Funktion zu aktivieren, sollten Sie den ‚Bearbeiten Domänenknoten‘ gewähren und   (Optional) die "delete Domain Knoten Erlaubnis für einige Rollen. dann assign   einzelne Benutzer-Konten auf bestimmte Domänen sie als Domain-Editoren zuweisen.

Aus meiner Erfahrung vor vielen Monden mit dem Modul können Sie das globale Objekt $ Benutzer überprüfen und herauszufinden, was die Benutzerdomänen sollte Zugang haben. Anschließend können Sie ein Formular verwenden Alter keine Optionen aus dem Auswahlfeld zu entfernen, dass Sie nicht wollen, sie zu sehen. Wie immer mit Drupal aber es ist besser, jemand anderes lassen Sie den Code schreiben - also, wenn die Domain-Modul diese Funktionalität bereitstellt, es verwenden,

Hier finden Sie einige aktualisierte Code für 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;
  }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top