Wie verstecke ich einen Inhaltstyp auf der Seite zum Hinzufügen von Knoten?

11

Ich brauche eine Möglichkeit, einen Inhaltstyp auf der Seite zum Hinzufügen von Knoten auszublenden, oder noch besser, zwei getrennte Seiten zum Hinzufügen von Knoten, die meine Inhaltstypen trennen. Ich bin auf Drupal 7 und habe vier verschiedene Inhaltstypen. Ich möchte, dass drei von ihnen auf der Standard-Seite zum Hinzufügen von Knoten und die vierte getrennt sind. Wie würde ich das machen? Vielen Dank

oobie11
quelle

Antworten:

11

Zwei Möglichkeiten:

  • admin/structure/menu/manage/navigation Menüelement verschieben / löschen, das Sie nicht möchten.
  • Sauberster Weg: Verwenden Sie Rollen und Berechtigungen. Wenn der Benutzer keinen Inhaltstyp erstellen kann, wird der Link in keinem Menü angezeigt.
Nahrung
quelle
Danke für deine Antwort. Ihr erster möglicher Weg ist der, den ich verwenden würde, da ich weiterhin Benutzer benötige, um Knoten meines vierten Inhaltstyps erstellen zu können. Ich brauche es nur getrennt von den anderen drei.
oobie11
Ok, also verschieben Sie einfach den Menüpunkt in ein anderes Menü oder blenden Sie ihn aus und erstellen Sie einen anderen über denselben Menülink (node ​​/ add / <Ihr_Inhaltstyp>)
nourcy
Dies ist die beste Antwort.
Christia
4

Fügen Sie dies in ein benutzerdefiniertes Modul ein:

function yourcustommodule_menu_alter(&$items) {
  if (isset($items['node/add/your-content-type'])) {
    $items['node/add/your-content-type']['type'] = MENU_DEFAULT_LOCAL_TASK;
  }
}
Jancis
quelle
2
MENU_DEFAULT_LOCAL_TASK konvertiert die Links in Registerkarten. Ich habe stattdessen MENU_CALLBACK verwendet.
Freeman
3

AKTUALISIEREN

MENU_CALLBACK, wie in anderen Antworten vorgeschlagen, hat hier bei mir nicht funktioniert. Sie erscheinen immer noch auf der node/addSeite.

Dieser Code hat funktioniert:

function MYMODULE_menu_alter(&$items) {
  if (isset($items['node/add/your-content-type'])) {
    unset($items['node/add/your-content-type']);
  }
}

Natürlich wird davon ausgegangen, dass Sie den node/addLink für diesen Typ deaktivieren (nicht ausblenden) möchten .


URSPRÜNGLICHE ANTWORT

Die node/addSeite wird vom Knotenmodul bereitgestellt. Sie können möglicherweise tun, was Sie möchten, indem Sie den Menüpunkt im Navigationsmenü gemäß diesem Beitrag deaktivieren: http://data.agaric.com/disabling-or-moving-nodeaddcontent-type-links-from-beneath- Add-Content-Navigation-Menü-entfernt auch

Es ist ein kleiner Fehler, daher ist es möglicherweise kein zuverlässiger Weg, dies zu tun. Persönlich würde ich eine benutzerdefinierte Version der node/addSeite in einem Modul erstellen, indem ich die vorhandene kopiere und meine spezifischen Änderungen vornehme. Dann würde ich verwenden hook_menu_alter, um node/addzu meiner Version zu gehen.

Möglicherweise können Sie es stattdessen durch eine Ansicht oder ein Bedienfeld ersetzen (mit dem Seitenmanager), aber ich habe dies nicht versucht, und Sie würden wahrscheinlich die Automatisierung verlieren.

wizonesolutions
quelle
Vielen Dank! Wo befindet sich die node/addSeite, die ich kopieren kann? Und wie würden Sie vorschlagen, die verschiedenen Inhaltstypen auszudrucken?
oobie11
Es sollte in sein node.pages.inc. Wenn die anderen Typen beim Erstellen angezeigt werden sollen und keine statische Liste vorhanden ist, führen Sie dies im Code aus.
Zauberlösungen
Selbst-Follow-up: Ich mag meine eigene Antwort von vor 4,5 Jahren nicht. Verwenden Sie eine der oben genannten :)
Zauberlösungen