首页 文章

自定义内容元素与IRRE通过Typoscript - >空数组

提问于
浏览
1

我在所有页面上通过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

2 回答

  • 0

    不幸的是,我找不到令人满意的解决方案 . 最后,我将内容元素构建为普通元素而不是IRRE,然后与typoscript的集成按预期工作 .

  • 0

    也许你错过了pid ;-)

    dataProcessing {
            10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
            10 {
                ....
                pidInList.field = pid
    

    在这种情况下你可以简化我的意见where子句:

    where.dataWrap = tt_content={field:uid}
    

    因为你不能与外面的变种相匹配

相关问题