如何在Drupal的”创建内容”页面上对内容类型进行分类(/ node / add)

How can I categorize the content types on the Drupal “Create content” page (/node/add)

如何在"创建内容"页面上分类/组织内容类型?我正在使用CCK运行Drupal6.x。我有很多自定义内容类型,并且我的"创建内容"页面有些笨拙,因为它们按字母顺序列出了所有内容。我想按类别对它们进行组织,因此用户会看到类似以下内容的内容:

1
2
3
4
5
6
7
Create Content
    Reports
        Report Type A
        Report Type B
    Events
        Event Type A
        Event Type B

我不想惹上Core,但是其他任何东西(自定义模块,主题,现有模块功能)都是公平的游戏。我希望我缺少一些简单的东西,因为这似乎是一个显而易见的要求,但是我在Drupal网站上只能找到这些未解决的问题:

  • 组织创建内容页面
    (节点/添加)
  • 核心:拆分创建
    内容页面分为几类?

您应该能够在自定义模块中完成此任务,而不会涉及内核。

您将要实现hook_menu_alter()来接管node / add的回调函数。

类似

的东西

1
2
3
function mymodule_menu_alter(&$items) {
  $items['node/add']['page callback'] = 'mymodule_node_add_page';
}

应该让您开始。然后,您将创建函数mymodule_node_add_page,并且可以将原始回调函数用作起点。

您也可以通过覆盖theme_node_add_list()在主题级别执行此操作。


有几种不同的方法可以解决此问题。您可以覆盖旧的表单页面,也可以仅使用自定义模块创建一个新页面。这样,您就可以在模块中做任何您想做的事情。

另一种可能性是改为使用视图来做同样的事情。这样做使您可以访问许多强大的功能,因为您可以执行views模块可以执行的任何操作。您可以创建对内容类型进行排序的不同方法。

我听说过许多人使用视图来为创建内容页面创建这样的页面。选择哪种方法取决于您,具体取决于您执行此操作的精确程度以及与内容类型关联的数据,一种方法会比另一种方法更容易。但是,在不知道确切细节的情况下,我无法说出哪个。我建议您先从视图开始,因为如果可以使用它来获取所需的内容,您应该很快就能找到。


我前段时间创建了一个沙箱模块,该模块应该这样做:
https://drupal.org/sandbox/YaronTal/1260038

唯一的问题是我当时无法使用可拖动界面创建管理后端。

我知道问题很老,但是以防万一其他人也遇到同样的问题...


有一个模块可以满足您的需求,内容类型组