Arrays 打字稿:如果为空,则覆盖COA

Arrays 打字稿:如果为空,则覆盖COA,arrays,object,typo3,overriding,typoscript,Arrays,Object,Typo3,Overriding,Typoscript,我有两个CoA:lib.productContent和lib.categoryContent,它们包含来自用户函数的数据。 我还有第三个COA-lib.seoColumns——默认情况下应该包含产品COA。如果产品COA为空,则应被类别COA覆盖,但我不知道如何实际检查产品COA是否为空: ########## PRODUCT CONTENT ########## lib.productContent = COA lib.productContent { 10 = USER 10

我有两个CoA:
lib.productContent
lib.categoryContent
,它们包含来自用户函数的数据。 我还有第三个COA-
lib.seoColumns
——默认情况下应该包含产品COA。如果产品COA为空,则应被类别COA覆盖,但我不知道如何实际检查产品COA是否为空:

########## PRODUCT CONTENT ##########
lib.productContent = COA
lib.productContent {
    10 = USER
    10 {
        userFunc = Vendor\Provider\UserFunc\Page->getPageContentByAlias
        alias = TEXT
        alias.data = GP:product
        aliasField.cObject = TEXT
        aliasField.cObject.value = product_alias
    }
}

########## CATEGORY CONTENT ##########
lib.categoryContent = COA
lib.categoryContent {
    10 = USER
    10 {
        userFunc = Vendor\Provider\UserFunc\Page->getPageContentByAlias
        alias = TEXT
        alias.data = GP:category
        aliasField.cObject = TEXT
        aliasField.cObject.value = category_alias
    }
}

########## SEO COLUMNS ##########
lib.seoColumns = COA
lib.seoColumns {
    10 < lib.productContent
    10.stdWrap.override.cObject < lib.categoryContent

    # 10.stdWrap.override.if    <-- IF WHAT ?

    wrap = <seoColumns><![CDATA[|]]></seoColumns>
}
产品内容##########
lib.productContent=COA
lib.productContent{
10=用户
10 {
userFunc=Vendor\Provider\userFunc\Page->getPageContentByAlias
别名=文本
alias.data=GP:product
aliasField.cObject=文本
aliasField.cObject.value=产品\别名
}
}
##########类别内容##########
lib.categoryContent=COA
类目内容{
10=用户
10 {
userFunc=Vendor\Provider\userFunc\Page->getPageContentByAlias
别名=文本
alias.data=GP:category
aliasField.cObject=文本
aliasField.cObject.value=类别\别名
}
}
##########搜索引擎优化专栏##########
lib.seoColumns=COA
自民党{
10
只需以另一种方式执行,因为只有在重写对象中至少存在某些内容时,重写才会执行实际的重写

搜索引擎优化专栏##########
lib.seoColumns=COA
自民党{
10

如果需要,则不需要。只需以另一种方式进行操作,因为当覆盖对象中至少存在某些内容时,“仅覆盖”将执行实际的覆盖

搜索引擎优化专栏##########
lib.seoColumns=COA
自民党{
10

如果需要,则不需要。

最简单的方法是使用stdWrap.ifEmpty功能

lib.seoColumns=COA
自民党{
10.

由于ifEmpty的类型为string/stdWrap,因此它支持stdWrap属性,我们可以使用.cObject加载另一个内容对象。与第二种情况下的COA类似。

最简单的方法是使用stdWrap.ifEmpty函数

lib.seoColumns=COA
自民党{
10.

由于ifEmpty的类型为string/stdWrap,因此它支持stdWrap属性,我们可以使用.cObject加载另一个内容对象。就像第二种情况下的COA一样。

应该也能正常工作,但是在10和ifEmpty之间缺少stdWrap,因为COA不在顶层提供stdWrap。感谢@Joey指出缺少的stdWrap,我修复了它。正好相反-10.stdWrap.ifEmpty;-)这是最后一个工作代码段:10.stdWrap.ifEmpty.cObject########## SEO COLUMNS ########## lib.seoColumns = COA lib.seoColumns { 10 < lib.categoryContent 10.stdWrap.override.cObject < lib.productContent wrap = <seoColumns><![CDATA[|]]></seoColumns> }
lib.seoColumns = COA
lib.seoColumns {
   10. < lib.productContent
   10.stdWrap.ifEmpty.cObject < lib.categoryContent
   wrap = <seoColumns><![CDATA[|]]></seoColumns>
}