Typo3 没有在前端渲染自定义内容元素

问题描述 投票:0回答:1

我有以下问题。

我在单独的扩展中创建了一个自定义内容元素,如 Typo3 文档中所述。

Doc 自定义内容元素

在这种情况下,一切都会正常进行,直到渲染前端为止。没有显示错误,并且Typo3的核心内容元素(例如项目符号)显示正常。按照文档中的建议,我根据 sitepackage 文档构建了自己的页面扩展。

文档站点包

因此我有两个扩展。 sitepackage中,内容通过数据处理输出到Default.html中。

代码Default.html通过数据处理渲染内容

<f:layout name="Default" />
<f:section name="Main">
    <main role="main" class="mainContainer">
        <div class="row">
            <div class="col-md-12">
                <f:for each="{mainContent}" as="contentElement">
                    <f:cObject
                    typoscriptObjectPath="tt_content.{contentElement.data.CType}"
                    data="{contentElement.data}"
                    table="tt_content"
                    />
                </f:for>
            </div>
        </div>
    </main>
</f:section>

我的 setup.typoscript 文件如下所示。 自定义内容元素的 setup.typoscript

lib.contentElement {
  templateRootPaths.200 = EXT:accordion_contentelement/Resources/Private/Templates/
}

tt_content {
    accordion_contentelement =< lib.contentelement
    accordion_contentelement {
        templateName = AccordionElement
    }
}

站点包的setup.typoscript

@import 'EXT:fluid_styled_content/Configuration/TypoScript/setup.typoscript'
@import 'EXT:site_package/Configuration/TypoScript/Setup/CssFileInclusion.typoscript'

page = PAGE
page {
  typeNum = 0
}

page.10 = FLUIDTEMPLATE
page.10 {
  templateName = TEXT
  templateName {
    cObject = TEXT
    cObject {
      data = pagelayout
      required = 1
      case = ucfirst
      split {
        token = pagets__
        cObjNum = 1
        1.current = 1
      }
    }

    ifEmpty = Default
    }

    templateRootPaths {
        0 = EXT:site_package/Resources/Private/Templates/Page/
        1 = {$page.fluidtemplate.templateRootPath}
    }

    partialRootPaths {
        0 = EXT:site_package/Resources/Private/Partials/Page/
        1 = {$page.fluidtemplate.partialRootPath}
    }

    layoutRootPaths {
        0 = EXT:site_package/Resources/Private/Layouts/Page/
        1 = {$page.fluidtemplate.layoutRootPath}
    }
    dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        10 {
            levels = 1
            includeSpacer = 1
            as = mainnavigation
        }
        20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
        20 {
            table = tt_content
            orderBy = sorting
            where = colPos = 0
            as = mainContent
        }
    }
}

config {
  # Adjust the title tag to be displayed as “website - page title”
  pageTitleSeparator = -
  pageTitleSeparator.noTrimWrap = | | |

  # Display the Admin Panel at the bottom of pages to logged in backend users
  admPanel = 1
}

我还尝试使用 lib.dynamicContent 获得具有相同结果的输出,没有错误消息,并且前端中只有标准内容元素。

setup.typoscript 中的代码

lib.dynamicContent = COA
lib.dynamicContent {
   10 = LOAD_REGISTER
   10.colPos.cObject = TEXT
   10.colPos.cObject {
      field = colPos
      ifEmpty.cObject = TEXT
      ifEmpty.cObject {
         value.current = 1
         ifEmpty = 0
      }
   }
   20 = CONTENT
   20 {
      table = tt_content
      select {
         orderBy = sorting
         where = {#colPos}={register:colPos}
         where.insertData = 1
      }
   }
   90 = RESTORE_REGISTER
}

代码 Default.html 通过 lib.dynamicContent 渲染内容

<f:layout name="Default" />
<f:section name="Main">
    <main role="main" class="mainContainer">
        <div class="row">
            <div class="col-md-12">
                <f:cObject typoscriptObjectPath="lib.dynamicContent" data="{colPos: '0'}" />
            </div>
        </div>
    </main>
</f:section>

我使用Typo3版本12.4.7。

希望有人能帮忙。谢谢你

typo3 typo3-extensions fluid-styled-content typo3-12.x
1个回答
0
投票

下一步调试:
之后:

tt_content {
    accordion_contentelement =< lib.contentelement
    accordion_contentelement {
        templateName = AccordionElement
    }
}

删除配置并构建一个静态配置:

tt_content {
    // remove 
    accordion_contentelement >
    // define anew
    accordion_contentelement = TEXT
    accordion_contentelement.value = <p>my static text </p>
}
© www.soinside.com 2019 - 2024. All rights reserved.