如何使用HMenu中从数据库中检索的页面ID?

时间:2016-01-06 08:50:03

标签: typo3 typoscript

我目前正在处理我的第一个拼写错误项目,需要创建一个包含各个页面的大型菜单。

许多尝试失败或不适合我。我当前的镜头旨在将隐藏页面中的重定向类型的页面分组。在Typoscript中,我想设置包含这些重定向的父页面的ID,并相应地读取子节点的快捷ID。

pageIds = CONTENT
pageIds {
  table = pages
  select {
    selectFields = shortcut
    pidInList = 614 # Id of the container Page
  }
}

下一步是在类型'列表'的HMENU中使用检索到的快捷ID。

1 = HMENU
1 {
  special = list
  special {
    value = # Assign retrieved IDs here
  }
  [...]
}

Typoscript一见钟情就很混乱,所以我很乐意收到一些提示,告诉我如何将查询的结果作为逗号分隔列表传送给HMENU。

提前致谢! 格尔茨。

1 个答案:

答案 0 :(得分:1)

首先,您需要获取要链接的页面UID的逗号分隔列表。这可以通过renderObj实现:

lib.pageIds = CONTENT
lib.pageIds {
  table = pages
  select {
    selectFields = shortcut
    pidInList = 614 # Id of the container Page
  }
  renderObj = TEXT
  renderObj.stdWrap.field = shortcut
  renderObj.stdWrap.wrap = |,
}

这应该为您提供逗号分隔的所有记录列表。现在您必须将这些应用于HMENU。正如您在文档中看到的那样,value属性已启用stdWrap,这意味着您可以在使用cObject时复制值:

1 = HMENU
1 {
  special = list
  special {
    value.cObject < lib.pageIds
  }
  [...]
}

我没有对此进行测试,因此配置可能并不完全。