Typo3 Fluid模板-如何为不同的页面设置不同的模板

时间:2019-07-02 14:38:07

标签: typo3 typoscript fluid typo3-9.x

我正在尝试从头开始构建一个带有typo3 9.5的网站,并为不同的页面设置不同的模板文件。我该如何实现?

我正在关注https://docs.typo3.org/m/typo3/tutorial-sitepackage/master/en-us/TypoScriptConfiguration/Index.html的教程,并尝试了Typo3 Fluid Templates How to add multiple templates上没有成功的解决方案

现在所有页面都加载默认模板,并且如果我将默认cObject设置为Alternative,即使将Typo3的TCA正确设置为每个页面,它也会将Alternative.html加载到所有页面:

  • 所有页面的后端布局为[默认]
  • 联系人设置为[替代]。

_

page = PAGE
page {
   typeNum = 0

   // Part 1: Fluid template section
   10 = FLUIDTEMPLATE
   10 {
      templateName = TEXT
      templateName.stdWrap.cObject = CASE
      templateName.stdWrap.cObject {
        key.data = pagelayout

        pagets__default = TEXT
        pagets__default.value = Default

        default = TEXT
        default.value = Default

        pagets__alternative = TEXT
        pagets__alternative.value = Alternative

        alternative = TEXT
        alternative.value = Alternative

      }


      templateRootPaths {
         0 = EXT:photo/Resources/Private/Templates/Page/
         1 = {$page.fluidtemplate.templateRootPath}
      }
      partialRootPaths {
         0 = EXT:photo/Resources/Private/Partials/Page/
         1 = {$page.fluidtemplate.partialRootPath}
      }
      layoutRootPaths {
         0 = EXT:photo/Resources/Private/Layouts/Page/
         1 = {$page.fluidtemplate.layoutRootPath}
      }
      dataProcessing {
      10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
      10 {
         levels = 1
         includeSpacer = 1
         as = mainnavigation
         }
      }
   }

例如,我想对除联系页面以外的所有页面使用default.html模板,它将具有自己的模板(site_template / Resources / Private / Templates / Page / Alternative.html)。

1 个答案:

答案 0 :(得分:1)

第一
您应该使用更大的数字作为模板的路径。
数字越大,覆盖具有相同名称的文件的优先级越高。


没有字段pagelayout。都可以使用layout或更好的backend_layoutbackend_layout_next_levelexample configuration,并充分利用子页面的配置)。

您的键值(pagets__defaultpagets__alternative)已经暗示了backend_layout的用法(pagets__*是TSconfig页中定义的后端布局的常用键)。 / p>

文档中的示例可能需要更正。 (已提交拉取请求)