我在所有页面上通过typoscript获取自定义内容元素时遇到一些问题。 我创建了一个没有任何扩展名的自定义元素(如mask或dce)所以我只使用 TYPO3核心功能。这个元素是一个简单的东西,只是使用不可用于创建 在前端显示不同的框。
tt_content.box = COA
tt_content.box {
10 = FLUIDTEMPLATE
10 {
file = EXT:xxx_elements/Resources/Private/Templates/Box.html
partialRootPath = EXT:xxx_setup/Resources/Private/Content/Partials
layoutRootPath = EXT:xxx_setup/Resources/Private/Content/Layouts
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
table = tx_xxxelements_box
orderBy = sorting
where {
data = field:uid
intval = 1
wrap = tt_content=|
}
as = boxitems
}
}
}
}
使用普通流体渲染,如
<f:for each="{boxitems}" as="boxitem">
<boxitem.header>...
</f:for>
所以一切正常,只要我将它用作放置的常规内容元素 在页面上。现在我将一个元素放入存储文件夹并尝试通过typoscript在所有页面上重用此元素 其中10是内容元素的ID
lib.SubFooter = COA
lib.SubFooter {
10 = RECORDS
10 {
tables = tt_content
source = 10
}
}
lib被渲染正确,但“boxitems”数组在所有页面上都是空的: - (
现在有趣的部分: 如果我将ID为10的元素放在页面上,则会为元素和lib填充boxitems数组...
以下是针对不同情况的变量转储的图像: element, lib, element+lib
答案 0 :(得分:0)
也许你错过了pid; - )
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
....
pidInList.field = pid
你可以在这种情况下简化where子句:
where.dataWrap = tt_content={field:uid}
因为你不能与外面的变种匹配......