Drupal 7 通过“查询”引用节点


Drupal 7 Node reference by "query"

我有一个名为 services_list_page 的内容类型,用于创建登录页面,然后人们可以使用该登录页面使用内容类型 service_details 导航到子页面。这些页面之间的关系仅由菜单定义,目前没有其他位置定义。

Program Service (services_list_page)
-- Cat1: (not a page, just a category type thing in menu)
  -- child 1 (service_details)
  -- child 2 (service_details)
-- Cat2
  -- child 3
  -- child4
  -- and so on..

我不仅需要将这些子页面列在菜单中,还需要在列表中的内容中动态列出 (ul li) 每个子页面"类别"一个列表。我已经覆盖了这些内容类型的节点模板文件。使用模块或模板文件中的某些代码来动态拉取此数据的最佳方法是什么?

您可以在hook_menu()中定义自定义页面并打印所需的任何内容和指向子节点的链接。

这是我如何做到的一个例子(斯洛伐克语),它是一个报纸档案http://hnonline.sk/archivhttp://hnonline.sk/archiv/2013/10/3

如果您需要进一步的帮助,请询问

找到一个简单的解决方案所以起初我找到了一种方法,但它很混乱,当左侧导航子菜单更新时,页面菜单没有更新。然后我找到了菜单块模块。

  • 安装菜单块模块 https://drupal.org/project/Menu_Block
  • 添加新的菜单块,根据需要进行配置。 起始级别设置为第二级
  • 将以下代码添加到模板文件以调用菜单块

当您单击块页面上菜单块的配置时,您可以从 url 中获取数字,此处为 1,因此 admin/structure/block/manage/menu_block/1/configure 变为:

$block = module_invoke('menu_block', 'block_view', '1');
print render($block['content']);
  • 可选 通过创建模板文件"menu-block-wrapper--1.tpl.php"为菜单创建模板。 您可以通过循环访问名为 $content 的数组来获取菜单数据