Есть ли способ изменить порядок типов контента, показанных на узле / добавить?
Есть ли способ изменить порядок типов контента, показанных на узле / добавить?
Ответы:
Ага! Просто отредактируйте свое меню «Навигация» (в / admin / структура / меню / управление / навигация) и измените порядок пунктов меню в «Добавить контент». Теперь, когда вы перейдете в / node / add, они появятся в любом порядке, который вы установили в меню «Навигация». Пример скриншота ниже. На / node / add они будут отображаться как Basic Page, а затем Article.
Для этого вам придется прибегнуть к пользовательскому модулю, так как алфавитный порядок жестко запрограммирован в функцию обратного вызова страницы 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
ключа для оригинального пункта меню, что никогда не бывает весело.
Вам нужно будет реализовать собственную страницу администрирования, если вы хотите изменить порядок через пользовательский интерфейс.