Изменить порядок типов контента в («/ узел / добавить»)

12

Есть ли способ изменить порядок типов контента, показанных на узле / добавить?

whitefleaCH
источник

Ответы:

18

Ага! Просто отредактируйте свое меню «Навигация» (в / admin / структура / меню / управление / навигация) и измените порядок пунктов меню в «Добавить контент». Теперь, когда вы перейдете в / node / add, они появятся в любом порядке, который вы установили в меню «Навигация». Пример скриншота ниже. На / node / add они будут отображаться как Basic Page, а затем Article.

введите описание изображения здесь

Chaulky
источник
Боже мой, как я мог пропустить это. Чувствую себя глупо ...
whitefleaCH
нет, единственная причина, по которой я понял, что ты мог это сделать, это ответить на другой вопрос несколько дней назад ... если бы ты спросил на прошлой неделе, я бы понятия не имел :)
Чолки
Просто дополнительный вопрос: меню «Добавить контент» хорошо переупорядочено в меню «Нав», но в верхнем меню «Админ» порядок по-прежнему в алфавитном порядке. Любой совет, чтобы изменить порядок добавления содержимого записей в меню администратора? Спасибо.
Токи
2

Для этого вам придется прибегнуть к пользовательскому модулю, так как алфавитный порядок жестко запрограммирован в функцию обратного вызова страницы node_overview_types()(на самом деле он встроен, _node_types_build()который вызывается из этой функции).

Не зная, что вы хотите отсортировать, довольно сложно дать полный ответ, но я добавлю скелетный код:

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

Убедитесь, что вы сохранили функцию обратного вызова в главном файле модуля, иначе вам придётся возиться с переопределением fileключа для оригинального пункта меню, что никогда не бывает весело.

Вам нужно будет реализовать собственную страницу администрирования, если вы хотите изменить порядок через пользовательский интерфейс.

Клайв
источник
Спасибо, Клайв. Я просто подумал, что может быть по-другому.
fndtn357