我已经为Page-Tree上的每个后端页面扩展了TCA。其中一个新选项是“页面类型”,例如“PressPage”。使用此扩展,我在表“pages”中有一个新的数据库字段。
现在我将在这个文件夹下面建立一个包含所有页面的HMENU / TMENU。
[...]
lib.MetaPressNavigation{
special = directory
special.value = ID_FROM_FOLDER_WITH_PAGETYPE_PRESSPAGE
[...]
但是我不知道用typoscript来实现它们。 我希望有人能帮助我。
感谢。
修改
现在 - 我已经尝试使用扩展的TCA。任何用户都可以轻松地为此项目页面进行一些配置。用户可以在特殊选项卡中使用复选框设置值。
我试图从数据库中获取页面,使用这个特殊的配置 - 任何页面都在数据库的“tx_meta_pagetype”列中有值9.我需要从该页面开始构建META-Navigation的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
}
}
}
我用typoscript尝试了很多数据库问题,但没有任何效果。
答案 0 :(得分:1)
注意,special.value
不是内容对象,而只是属性。您正在复制内容对象(CONTENT
)。这不起作用。
但它确实有stdWrap
。因此像
special.value.stdWrap.cObject < temp.MetaNavigationIds
应该可以解决。
对于renderObj.stdWrap = |
,请输入renderObj.wrap = |,
。请记住尾随的逗号。这将确保您实际获得逗号分隔的uid列表。否则你的uid将会紧接着打印出来,从而形成一个大数字。
在将组件组合在一起之前,请单独测试每个部件。你应该确保每个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 = |,
}
答案 1 :(得分:0)
如果您使用的是TYPO3 6.2,我建议您使用新的类别系统。您可以在TYPO3后端创建不同的类别,并将这些类别分配给您的页面。
有了这个,您可以创建如下所示的HMENU / TMENU:
20 = HMENU 20 { special = categories special.value = 1,2 1 = TMENU 1.NO { ... } }
如果您不使用TYPO3 6.2或不想使用类别系统,则可以使用userfunction
返回与“Page-Type”匹配的页面。
HMENU / TMENU TypoScript如下所示。
lib.leftmenu.20 = HMENU lib.leftmenu.20.special = userfunction lib.leftmenu.20.special.userFunc = user_myspecialmenu_pi1->getPressPages
上面的TypoScript只是一个例子,您需要编写自己的userfunction
代码。