如何使用内部幻灯片 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()}

是可能的,但可能不会达到您的预期,因为某些标签可能会被修改。

https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/Fluidtemplate/Index.html