Inhaltstypen neu anordnen in ("/ node / add")

12

Gibt es eine Möglichkeit, die auf node / add angezeigten Inhaltstypen neu anzuordnen?

WhitefleaCH
quelle

Antworten:

18

Jep! Bearbeiten Sie einfach Ihr Menü "Navigation" (unter / admin / structure / menu / manage / navigation) und ordnen Sie die Menüeinträge unter "Add content" neu an. Wenn Sie nun zu / node / add gehen, werden sie in der Reihenfolge angezeigt, in der Sie sie in Ihrem Menü "Navigation" festgelegt haben. Beispiel-Screenshot unten. Auf / node / add erscheinen sie als Basic Page, dann Article.

Bildbeschreibung hier eingeben

Chaulky
quelle
oh je wie ich das vermissen könnte. Fühlen Sie sich dumm ...
WhitefleaCH
nicht, der einzige Grund, warum mir klar wurde, dass Sie dies tun konnten, war die Beantwortung einer anderen Frage vor ein paar Tagen ...
Hätten
Hier nur eine ergänzende Frage: Das Menü "Inhalt hinzufügen" ist im Nav-Menü gut sortiert, im oberen Admin-Menü ist die Reihenfolge jedoch immer noch alphabetisch. Gibt es einen Tipp, um die Einträge zum Hinzufügen von Inhalten im Admin-Menü neu zu ordnen? Vielen Dank.
Toki
2

Sie müssten hierfür auf ein benutzerdefiniertes Modul zurückgreifen, da die alphabetische Reihenfolge in der Seitenrückruffunktion fest programmiert ist node_overview_types()(sie ist tatsächlich so aufgebaut, _node_types_build()dass sie von dieser Funktion aus aufgerufen wird).

Ohne zu wissen, was Sie sortieren möchten, ist es ziemlich schwierig, eine vollständige Antwort zu geben, aber ich gebe den Code ein:

function MYMODULE_menu_alter(&$items) {
  // Override the default page callback for the content types page
  $items['admin/structure/types']['page callback'] = 'MYMODULE_node_admin_overview';
}

function MYMODULE_node_admin_overview() {
  // Get the normal page build
  $default_build = node_overview_types();

  // Extract the table rows from the build
  $table_rows = $default_build['#rows'];

  // Perform an operation on these rows to re-order them for your needs
  _some_call_by_reference_sort_function($table_rows);

  // Assign the newly ordered rows back to the page build
  $default_build['#rows'] = $table_rows;

  return $default_build;
}

Stellen Sie sicher, dass Sie Ihre Rückruffunktion in der Hauptmoduldatei behalten, da Sie sonst die fileTaste für den ursprünglichen Menüpunkt überschreiben müssen , was niemals Spaß macht.

Sie müssten eine eigene Administrationsseite implementieren, um die Reihenfolge über die Benutzeroberfläche ändern zu können.

Clive
quelle
Vielen Dank, Clive. Ich dachte nur, dass es einen anderen Weg geben könnte.
fndtn357,