我已经为页面树上的每个后端页面扩展了TCA。其中一个新的选项是“页面类型”,例如"PressPage“。有了这个扩展,我在表"pages“中有了一个新的数据库字段。
现在,我将构建一个包含所有页面的HMENU/TMENU,该文件夹下面。
[...]
lib.MetaPressNavigation{
special = directory
special.value = ID_FROM_FOLDER_WITH_PAGETYPE_PRESSPAGE
[...]但我不知道如何用打字本来实现它们。我希望任何人都能帮我。
谢谢。
编辑:
现在-我已经尝试了一个扩展的TCA。对于任何用户来说,为这个项目页面做一些配置是非常容易的。用户可以在特殊选项卡中使用复选框设置值。
我试着把页面从数据库中拿出来,用这个特殊的配置--数据库中的任何页面都包含在"tx_meta_pagetype值9“列中。我需要这个页面中的uid来构建元导航。当我给出一个硬编码的UID时,它将是完全功能的,但是我需要这种动态。
这是我的调度,从数据库中获取UID:
temp.MetaNavigationIds = CONTENT
temp.MetaNavigationIds{
table = pages
select.Where = tx_meta_pagetype = 9 #tx_meta_pagetype is set from the TCA
renderObj = TEXT
renderObj.field = uid
renderObj.stdWrap = |
}
lib.MetaNavigation = HMENU
lib.MetaNavigation{
special = directory
special.value < temp.MetaNavigationIds #the UID of configured page, that i need for the menu
1 = TMENU
1 {
wrap = <ul> | </ul>
NO{
wrapItemAndSub = <li> | </i>
wrapItemAndSub.insertData = 1
allStdWrap.insertData = 1
}
}
}我尝试了很多数据库问题和打字,但没有任何工作。
发布于 2014-05-27 22:23:22
小心,special.value不是一个内容对象,而是一个属性。您正在复制一个内容对象(CONTENT)。这不管用。
然而,它确实有stdWrap。因此,就像
special.value.stdWrap.cObject < temp.MetaNavigationIds应该会成功的。
对于renderObj.stdWrap = |,请输入renderObj.wrap = |,。请注意后面的逗号。这将确保您实际上得到一个以逗号分隔的uids列表。否则,您的uids将在彼此之后打印,从而形成一个大数字。
在添加组件之前,请分别测试每个部件。您应该确保每个pease返回正确的数据,否则您将永远得不到一个有效的解决方案。
当然,select.Where一定是select.where。大写化对很重要。
下面是CONTENT的一个工作示例
page.10 = CONTENT
page.10 {
table = pages
select {
where = doktype = 199
recursive = 99
# Needs to be your root page uid
pidInList = 1
}
renderObj = TEXT
renderObj.field = uid
renderObj.wrap = |,
}https://stackoverflow.com/questions/23811121
复制相似问题