Zmień kolejność typów treści w („/ node / add”)

12

Czy istnieje sposób na zmianę kolejności typów treści wyświetlanych w węźle / dodawaniu?

whitefleaCH
źródło

Odpowiedzi:

18

Tak! Po prostu edytuj menu „Nawigacja” (w / admin / structure / menu / manage / navigation) i zmień kolejność pozycji menu w „Dodaj zawartość”. Teraz, gdy przejdziesz do / node / add, pojawią się w kolejności ustawionej w menu „Nawigacja”. Przykładowy zrzut ekranu poniżej. W katalogu / node / add pojawią się jako strona podstawowa, a następnie artykuł.

wprowadź opis zdjęcia tutaj

Chaulky
źródło
o mój drogi, jak mogłem tego przegapić. Czuję się głupio ...
whitefleaCH
nie, jedynym powodem, dla którego zdałem sobie sprawę, że możesz to zrobić, było odpowiedzenie kilka dni temu na inne pytanie ... gdybyś zadał to pytanie w zeszłym tygodniu, nie miałbym pojęcia :)
Chaulky
Tylko uzupełniające pytanie tutaj: menu Dodaj treść jest dobrze uporządkowane w menu Nav, ale w górnym menu administracyjnym kolejność jest nadal alfabetyczna. Czy jest jakaś wskazówka, aby zmienić kolejność wpisów Dodaj zawartość w menu administratora? Dziękuję Ci.
Toki,
2

W tym celu musiałbyś skorzystać z niestandardowego modułu, ponieważ porządek alfabetyczny jest na stałe zakodowany w funkcji wywołania zwrotnego strony node_overview_types()(w rzeczywistości jest zbudowany, w _node_types_build()którym wywoływana jest z tej funkcji).

Nie wiedząc, na co chcesz posortować, dość trudno jest udzielić pełnej odpowiedzi, ale wstawię szkielet:

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

Pamiętaj, aby zachować funkcję oddzwaniania w głównym pliku modułu, w przeciwnym razie będziesz musiał zadzierać z nadpisaniem fileklucza do oryginalnej pozycji menu, co nigdy nie jest zabawne.

Będziesz musiał wdrożyć własną stronę administracyjną, jeśli chcesz mieć możliwość zmiany kolejności za pomocą interfejsu użytkownika.

Clive
źródło
Dzięki Clive. Pomyślałem, że może być inny sposób.
fndtn357