在 TYPO3 项目中,我想收集所有包含内容和类别的子页面并将其呈现在根页面上。
lib.dynamicContent = COA
lib.dynamicContent {
10 = CONTENT
10 {
table = pages
select.orderBy = sorting
select.where = doktype != 199
as = pageId
renderObj = COA
renderObj {
10 = CONTENT
10 {
table = tt_content
select {
pidInList.field = uid
orderBy = sorting
where = colPos = 0
}
}
20 = CONTENT
20 {
table = sys_category
select {
pidInList.field = root,-1
selectFields = sys_category.uid, sys_category.title
join = sys_category_record_mm ON sys_category.uid = sys_category_record_mm.uid_local
where.data = field:uid
where.intval = 1
where.wrap = sys_category_record_mm.uid_foreign=|
}
renderObj = COA
renderObj {
10 = TEXT
10.field = title
10.wrap = |
10.wrap.override = <span class="category">|</span>
}
stdWrap {
wrap = <div class="categories">|</div>
}
}
stdWrap {
if.isLessThan.field = doktype
if.value = 3
wrap = <section id="p{field:uid}" data-display="{field:sys_category.title}">|</section>
wrap.insertData = 1
}
}
}
}
这是我当前的打字稿。 renderObj 中的第一个内容元素帮助我从所有子页面获取内容并使用页面 uid 设置部分 id。这样可行。 20.CONTENT 给出了子页面的类别。以下 renderObj 仅用于测试,它可以工作并且可以删除。但我想在数据显示属性中将类别呈现为逗号分隔列表,但我没有看到它。我在数据显示内分割了换行,但这不起作用,并且由于有一个列表,我无法使用 id 中的“变量”。有人可以帮助我找到解决方案吗?谢谢指教
我现在有解决办法了。我重组了它,下面的代码很好:
lib.dynamicContent = COA
lib.dynamicContent {
10 = CONTENT
10 {
table = pages
select {
pidInList = this
recursive = 1
where = doktype = 1
selectFields = pages.*, group_concat(sys_category.title SEPARATOR ',') AS categories
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category_record_mm.uid_local = sys_category.uid
groupBy = pages.uid
}
renderObj = COA
renderObj {
10 = COA
10 {
stdWrap.dataWrap = <section id="p{field:uid}" data-display="{field:categories}">|</section>
10 = CONTENT
10 {
table = tt_content
select {
pidInList.field = uid
orderBy = sorting
where = colPos = 0
}
stdWrap.wrap = <div class="page-content">|</div>
}
}
}
}
}