如何在 TYPO3 版本 9 中包含 Header.html 部分

How to include Header.html partial in TYPO3 ver 9

我想在 TYPO3 中更改 Header 的布局。关于这个有一个 post 但是这个但是我无法让它工作并且 post 已经 2 岁了。使用 TYPO3,大多数东西很快就会过时。这就是。 此外,我还查看了这个 article。我知道它是德语的,也许它有帮助。


所以我从TYPO3系统文件中复制了Header.html,把它放在fileadmin下的一个目录中,然后尝试link到那个目录。

fileadmin/.../Partials/Header/Header.html

在模板设置中,我添加了 partialRootPath

page = PAGE
page {

  shortcutIcon = fileadmin/sitedesign/Resources/Private/Templates/Vave/img/Favicon.ico

  10 = FLUIDTEMPLATE
  10.file = fileadmin/sitedesign/Resources/Private/Templates/Vave/Contact/index.html
  10.partialRootPath {
    20 = fileadmin/Resources/Private/Partials
  }

  includeCSS {
    contactFile1 = fileadmin/sitedesign/Resources/Private/Templates/Vave/Contact/css/Contact.css
  }


}

在 Header.html 中,我创建了一个额外的案例来检查它是否正常工作。

<f:case value="7">
            <p class="{positionClass}">
                    <f:link.typolink parameter="{link}">{header}</f:link.typolink>
            </p>
</f:case>

然后我将页面资源中的新案例添加到 TSConfig。

TCEFORM.tt_content.header_layout {
    addItems.7 = Name1 
}

在 TYPO3 系统文件中更改 Header.html 文件的内容按照我预期的方式工作,所以我很确定我了解基本功能。 TSConfig 部分也可以正常工作,因为我可以在 Header 布局类型字段中 select "Name1"。

但是无论我更改 fileadmin Header.html 版本的哪一部分,都没有任何反应。我检查了那个 Partials 文件夹的路径和所有内容的拼写一百万次,所以我认为这也不是问题所在。

当然我可以只更改系统文件Header.html,但这在很多层面上似乎都是错误的。

感谢您的帮助。

希望这段代码能帮到你!!

page = PAGE
page {
  shortcutIcon = fileadmin/sitedesign/Resources/Private/Templates/Vave/img/Favicon.ico
  10 = FLUIDTEMPLATE
  10 {
    templateName = TEXT
    templateName {
      cObject = TEXT
      cObject {
        data = levelfield:-2,backend_layout_next_level,slide
        override.field = backend_layout
        required = 1
        case = uppercamelcase
        split {
          token = pagets__
          cObjNum = 1
            1.current = 1
        }
      }
      ifEmpty = Innenseite
    }
    #templateName=TEXT
    # templateName.value=index
    layoutRootPaths {
      20 = your layoutRootPaths
    }
    partialRootPaths {
      20 = your partialRootPath
    }
    templateRootPaths {
      20 = your templateRootPath
    }
  }
  includeCSS {
    contactFile1 = fileadmin/sitedesign/Resources/Private/Templates/Vave/Contact/css/Contact.css
  }
}

确保 header 正确包含在主模板中

不要混合使用不同用途的液体!

您想更改内容元素的 header 部分。

但是你把新的部分添加到页面渲染的流畅性中。

如果您使用 FSC(流体样式内容),您的其他部分路径应位于此处:

lib.contentElement {
    partialRootPaths {
        10 = fileadmin/Resources/Private/Partials
    }
}

breaking change: lib.contentElementinstead of lib.fluidContent

补充建议:

  • 注意名称:除了 partialRootPaths 有时存在 partialRootPath(最后没有 s),即 不是 一个 object 数组。这使您可以仅设置 一个 路径(不是具有优先级的通常路径列表)并且优先于 partialRootPaths 中的设置(如果两者都存在)。

  • 将不同的流体用途分开!
    给他们不同的路径。有多种方法。我更喜欢:
    每个扩展程序在以扩展程序命名的文件夹中都有自己的三个文件夹。
    并且还将页面呈现和 CE(内容元素)分开。您自己的 CE 可能会被视为扩展 'FSC'.

  • 的一部分
  • 使用站点扩展。
    所有配置都进入该扩展:typoscript、templates、viewhelpers、TCA、...
    这是该站点的基本配置,也是使用的扩展的附加配置/适配。