如何使用内部幻灯片 TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
How do I use slide inside TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
我无法将 CONTENTs 幻灯片与 TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
一起使用
page {
1 {
dataProcessing {
# Content inside right column
1 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
1 {
table = tt_content
slide = -1
where = colPos = 1
as = contentrightcolumn
}
}
}
}
我希望幻灯片可以在 TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor 中工作,但它不起作用。
为什么不起作用?看起来,它没有实现。
如何轻松实现 CONTENT 幻灯片行为?
您不能在 DatabaseQueryProcessor 中使用 slide,但您可以编写自己的数据处理器。
您可以使用以下错字。这应该会在 contentrightcolumn 中为您提供相同的结果。也许这不是最好的解决方案,但你会得到你的结果。
page {
1 {
dataProcessing {
# Content inside right column
1 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
1 {
table = tt_content
uidInList {
# this cObject creates a csv of all contents inside your colPos 1
cObject = CONTENT
cObject {
table = tt_content
slide = -1
select.where = colPos = 1
select.orderBy = sorting
renderObj = TEXT
renderObj {
field = uid
wrap = |,
}
}
stdWrap.substring = 0,-1
}
where = colPos = 1
# otherwise the sorting would be wrong
orderBy = sorting
# considering the uid of you root page is 1
pidInList = 1
# depth of levels inside your pagetree
recursive = 5
as = contentrightcolumn
}
}
}
}
TypoScript 中有不同的概念。
一个概念是在使用 FLUIDTEMPLATE
渲染之前 ENRICH 数据。这是使用 DataProcessors 完成的。
但是还有另一种方法可以将 ADD 数据添加到 FLUIDTEMPLATE
。此选项称为 variables
。可以有与附加到单个 FLUIDTEMPLATE
.
的数据处理器一样多的变量
如果您想在 FLUIDTEMPLATE
中输出呈现的内容,我会使用一个变量:
page {
1 {
variables {
contentrightcolumn = CONTENT
contentrightcolumn {
table = tt_content
slide = -1
select {
where = colPos = 1
}
}
}
}
}
这提供了一个包含呈现的新变量 HTML。输出可以使用:
{contentrightcolumn -> f:format.raw()}
这可能会引发 XSS 问题,具体取决于渲染链。但在大多数情况下,这应该是解决方案。
还有:
{contentrightcolumn -> f:format.html()}
是可能的,但可能不会达到您的预期,因为某些标签可能会被修改。
我无法将 CONTENTs 幻灯片与 TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
一起使用page {
1 {
dataProcessing {
# Content inside right column
1 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
1 {
table = tt_content
slide = -1
where = colPos = 1
as = contentrightcolumn
}
}
}
}
我希望幻灯片可以在 TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor 中工作,但它不起作用。
为什么不起作用?看起来,它没有实现。
如何轻松实现 CONTENT 幻灯片行为?
您不能在 DatabaseQueryProcessor 中使用 slide,但您可以编写自己的数据处理器。
您可以使用以下错字。这应该会在 contentrightcolumn 中为您提供相同的结果。也许这不是最好的解决方案,但你会得到你的结果。
page {
1 {
dataProcessing {
# Content inside right column
1 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
1 {
table = tt_content
uidInList {
# this cObject creates a csv of all contents inside your colPos 1
cObject = CONTENT
cObject {
table = tt_content
slide = -1
select.where = colPos = 1
select.orderBy = sorting
renderObj = TEXT
renderObj {
field = uid
wrap = |,
}
}
stdWrap.substring = 0,-1
}
where = colPos = 1
# otherwise the sorting would be wrong
orderBy = sorting
# considering the uid of you root page is 1
pidInList = 1
# depth of levels inside your pagetree
recursive = 5
as = contentrightcolumn
}
}
}
}
TypoScript 中有不同的概念。
一个概念是在使用 FLUIDTEMPLATE
渲染之前 ENRICH 数据。这是使用 DataProcessors 完成的。
但是还有另一种方法可以将 ADD 数据添加到 FLUIDTEMPLATE
。此选项称为 variables
。可以有与附加到单个 FLUIDTEMPLATE
.
如果您想在 FLUIDTEMPLATE
中输出呈现的内容,我会使用一个变量:
page {
1 {
variables {
contentrightcolumn = CONTENT
contentrightcolumn {
table = tt_content
slide = -1
select {
where = colPos = 1
}
}
}
}
}
这提供了一个包含呈现的新变量 HTML。输出可以使用:
{contentrightcolumn -> f:format.raw()}
这可能会引发 XSS 问题,具体取决于渲染链。但在大多数情况下,这应该是解决方案。
还有:
{contentrightcolumn -> f:format.html()}
是可能的,但可能不会达到您的预期,因为某些标签可能会被修改。