在(“ / node / add”)中对内容类型重新排序


12

有没有办法重新排序节点/添加上显示的内容类型?

Answers:


18

对!只需编辑“导航”菜单(位于/ admin / structure / menu / manage / navigation),然后在“添加内容”下对菜单条目重新排序。现在,当您转到/ node / add时,它们将以您在“导航”菜单中设置的任何顺序显示。下面的示例屏幕截图。在/ node / add上,它们将显示为“基本页面”,然后显示为“文章”。

在此处输入图片说明


噢,亲爱的我怎么会错过那件事。感觉很愚蠢……
whitefleaCH 2012年

不会,我意识到您可以这样做的唯一原因是几天前回答了一个不同的问题……如果您上个星期问过我,我可能不知道:)
Chaulky 2012年

这里只是一个补充问题:“添加内容”菜单在“导航”菜单中重新排序良好,但在顶部的“管理”菜单中,顺序仍然是字母顺序。有什么技巧可以对管理菜单中的添加内容条目重新排序?谢谢。
Toki

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为原来的菜单项覆盖键,这太麻烦了。

如果您希望能够通过UI更改顺序,则必须实现自己的管理页面。


谢谢克莱夫。我只是认为可能会有不同的方式。
fndtn357'2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.