我根据默认的部分菜单设置了这个自定义菜单。在一个内容元素上进行测试时,看起来不错......当我向页面添加第二个内容元素时,都会添加到每个菜单项中。
任何人都知道这里发生了什么?
tt_content.menu.20.3.1.sectionIndex.useColPos = -1
tt_content.menu.20.101 < tt_content.menu.20.3
tt_content.menu.20.101 {
1.NO {
stdWrap.cObject = CONTENT
stdWrap.cObject {
table = tt_content
select {
pidInList.field = uid
}
renderObj = COA
renderObj {
10 = FILES
10 {
stdWrap.wrap = <div class="menu-img">|</div>
references {
table = tt_content
fieldName = image
}
renderObj = IMAGE
renderObj {
file {
import.data = file:current:uid
treatIdAsReference = 1
width = 100c
height = 100c
}
altText.data = file:current:alternative
titleText.data = file:current:title
stdWrap.typolink.parameter.data = file:current:link
}
maxItems = 1
}
20 = TEXT
20.field = header
30 = TEXT
30.field = rowDescription
}
}
}
}
目前正在输出:
<ul>
<li><a href="link1"><img/>Heading1Desc1<img2/>Heading2Desc2</a></li>
<li><a href="link2"><img/>Heading1Desc1<img2/>Heading2Desc2</a></li>
<ul>
应该是什么:
<ul>
<li><a href="link1"><img/>Heading1Desc1</a></li>
<li><a href="link2"><img2/>Heading2Desc2</a></li>
</ul>
答案 0 :(得分:0)
这是关于你的CONTENT对象。 你的选择很奇怪:
select {
pidInList.field = uid
}
使用当前内容元素的uid选择页面中的所有tt_content元素 并且为每个找到的记录执行渲染。
您真的需要再次使用cObject
选择contentelement吗?我认为在菜单中它应该是当前的背景。
加上:
我会尝试这样的东西在文本之前渲染图像(默认情况下应该可用):
before
仅针对图片而不是stdWrap
,其中包含所有CE的完整查询以及所有字段的COA。
查看正确的字段名称!
1.NO {
before.cObject = FILES
before.cObject {
stdWrap.wrap = <div class="pic">|</div>
references {
table = tt_content
uid.data = uid
// 'image' or 'media' or ... ???
fieldName = image
}
renderObj = IMAGE
renderObj {
stdWrap.wrap = <div class="pic">|</div>
file {
import.data = file:current:uid
treatIdAsReference = 1
width = 150c
height = 150c
}
altText.data = file:current:alternative
titleText.data = file:current:title
#params = class="menu-img"
// don't do a link inside a link =:-O
#stdWrap.typolink.parameter.data = file:current:link
}
maxItems = 1
}
}
答案 1 :(得分:0)
我尝试了很多不同的方法,无法使用图像和字段。因此,我只需添加:tt_content.menu.20.101.maxItems = 1
并为renderObj
添加包裹,只需使用原始代码修补。
我知道这不应该怎么做,但它现在有效。但是,如果有人知道这样做的正确方法,请告诉我!