Typo3 使用锚定链接作为第二级菜单构建菜单
我在一个菜单上工作,显示正常链接的第一级。第二级菜单应该是从内容元素构建为锚定菜单。受此启发,我构建了以下ts:Typo3 使用锚定链接作为第二级菜单构建菜单,typo3,typoscript,Typo3,Typoscript,我在一个菜单上工作,显示正常链接的第一级。第二级菜单应该是从内容元素构建为锚定菜单。受此启发,我构建了以下ts: lib.footerMenu = HMENU lib.footerMenu { 1 = TMENU 1 { wrap = <ul class="nav">|</ul> noBlur = 1 NO = 1 NO { wrapItemAndSub = <li class="first">|</li
lib.footerMenu = HMENU
lib.footerMenu {
1 = TMENU
1 {
wrap = <ul class="nav">|</ul>
noBlur = 1
NO = 1
NO {
wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li>
ATagParams = class="first" |*| |*| class="last"
after.cObject = CONTENT
after.cObject {
table = tt_content
select {
pidInList = this
orderBy = sorting
where = colPos=1
languageField = sys_language_uid
}
wrap = <ul>|</ul>
renderObj = TEXT
renderObj {
field = header
dataWrap = <li><a href="#c{field:uid}">|</a></li>
}
}
}
}
}
lib.footerMenu=humenu
lib.footer菜单{
1=t菜单
1 {
包裹=
noBlur=1
否=1
没有{
wrapItemAndSub=**|
ATagParams=class=“first”|*|*|class=“last”
after.cObject=内容
在cObject之后{
表=tt_含量
挑选{
pidInList=这个
orderBy=排序
其中=colPos=1
languageField=sys\u language\u uid
}
包裹=|
renderObj=文本
伦德罗布{
字段=标题
数据包=
}
}
}
}
}
制作类似的东西(“阿诺德·伊普斯姆”和“你到底是谁?”成为主页的CEs):
-
-
...
现在的问题是,这个(pidInList=this)始终保存实际页面id,因此实际页面的锚定菜单被附加到所有主菜单项
如何在每个主菜单下显示右锚定菜单?lib.footerMenu=humenu
lib.footerMenu = HMENU
lib.footerMenu {
1 = TMENU
1 {
wrap = <ul class="nav">|</ul>
noBlur = 1
NO = 1
NO {
wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li>
ATagParams = class="first" |*| |*| class="last"
after.cObject = CONTENT
after.cObject {
table = tt_content
select {
pidInList.stdWrap.cObject = CASE
pidInList.stdWrap.cObject {
key.field = doktype
default = TEXT
default.field = uid
4 = TEXT
4.field = shortcut
}
orderBy = sorting
where = colPos=1
languageField = sys_language_uid
selectFields = uid,pid,header
}
wrap = <ul>|</ul>
renderObj = TEXT
renderObj {
field = header
typolink {
parameter.field = pid
section.field = uid
}
wrap = <li>|</li>
}
}
}
}
}
lib.footer菜单{
1=t菜单
1 {
包裹=
noBlur=1
否=1
没有{
wrapItemAndSub=**|
ATagParams=class=“first”|*|*|class=“last”
after.cObject=内容
在cObject之后{
表=tt_含量
挑选{
pidInList.stdWrap.cObject=CASE
pidInList.stdWrap.cObject{
key.field=doktype
默认值=文本
default.field=uid
4=文本
4.字段=快捷方式
}
orderBy=排序
其中=colPos=1
languageField=sys\u language\u uid
选择字段=uid、pid、标题
}
包裹=|
renderObj=文本
伦德罗布{
字段=标题
打字链接{
parameter.field=pid
section.field=uid
}
包裹=|
}
}
}
}
}
不过,它可能无法在旧的TYPO3安装上运行,因为如果我没记错的话,
pidInList
以前没有stdWrap
。它应该适用于TYPO3 4.5+。我已经扩展了代码,因为我意识到锚点仍然是错误的,因为它们适用于当前页面而不是目标页面。你的解决方案工作得近乎完美。有没有办法让它也适用于快捷方式?我的“主页”是一个快捷方式,上面没有CEs。还有一个问题,因为锚指向的是当前页面,而不是CEs真正所在的页面。我想我还需要在“dataWrap=#c1
还是#1
。至于快捷方式页面,我添加了一些可能对您来说足够的内容,但这并不是真正的通用解决方案,因为它没有考虑快捷方式,也没有解析嵌套的快捷方式(页面是另一个shorcut页面的快捷方式)。我现在想知道是否有一种简单的方法来解决快捷方式。
lib.footerMenu = HMENU
lib.footerMenu {
1 = TMENU
1 {
wrap = <ul class="nav">|</ul>
noBlur = 1
NO = 1
NO {
wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li>
ATagParams = class="first" |*| |*| class="last"
after.cObject = CONTENT
after.cObject {
table = tt_content
select {
pidInList.stdWrap.cObject = CASE
pidInList.stdWrap.cObject {
key.field = doktype
default = TEXT
default.field = uid
4 = TEXT
4.field = shortcut
}
orderBy = sorting
where = colPos=1
languageField = sys_language_uid
selectFields = uid,pid,header
}
wrap = <ul>|</ul>
renderObj = TEXT
renderObj {
field = header
typolink {
parameter.field = pid
section.field = uid
}
wrap = <li>|</li>
}
}
}
}
}