如何在TYPO3 ver 9中包含Header.html partial

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

我想在TYPO3中更改标题的布局。有一篇关于这个的帖子,但这个但是我不能让它工作,那个帖子是2岁。使用TYPO3,大多数东西都很快就过时了。这是post。另外我看了这个article。我知道它是用德语写的,也许它无论如何都有帮助。


所以我从TYPO3系统文件中复制了Header.html,将它放在fileadmin下的目录中并尝试链接到该目录。

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 Layout Type字段中选择“Name1”。

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

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

感谢您的任何帮助。

typo3 typoscript partials typo3-9.x
2个回答
0
投票

不要混用不同的液体用法!

您想要更改内容元素的标题部分。

但是您将新的部分添加到页面渲染的流体中。

如果你使用FSC(流体样式内容),你的额外部分路径应该在这里:

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

breaking change: lib.contentElementinstead of lib.fluidContent

其他建议:

  • 小心的名字:除了partialRootPaths,有时存在partialRootPath(最后没有s),这不是一个对象数组。这使您只能设置一个路径(不是通常的优先路径列表),如果两个路径都存在,则优先于partialRootPaths中的设置。
  • 分开不同的流体使用! 给他们不同的路径。有多种方式。我更喜欢: 每个扩展程序在为扩展名命名的文件夹中获取它自己的三个文件夹。 并且还分离页面呈现和CE(内容元素)。您自己的CE可能被视为扩展“FSC”的一部分。
  • 使用网站扩展。 所有配置都进入该扩展:typoscript,templates,viewhelpers,TCA,... 这是该站点的基本配置,也是已使用扩展的附加配置/适配。

-1
投票

愿这段代码能帮到你!!

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
  }
}

确保在主模板中正确包含标题

© www.soinside.com 2019 - 2024. All rights reserved.