【问题标题】:How to integrate "own" HTML in Typo3如何在 Typo3 中集成“自己的”HTML
【发布时间】:2018-01-08 13:20:39
【问题描述】:

我对 TYPO3 还是很陌生。刚刚学习了如何使用 Fluid 编写模板并集成 Bootstrap 框架。不知怎的,它奏效了。 https://enkomp.com

但我真的不明白,我如何将自己的 HTML(来自模板)集成到 TYPO3 也许我用另一个简单的例子来学习它 - 一个粘性页脚

我已将其放入我的模板 boottpl.html

<footer class="footer">
  <div class="container">
    <p class="text-muted">Place sticky footer content here.</p>
  </div>
</footer>

但是在我的模板文件夹中加载它之后(另一个模板存储和工作的地方),粘性页脚不会出现在前端。 我需要把它放在哪里?

【问题讨论】:

  • 您是否将页面流体模板存储在自己的扩展程序中?或者也许在 /fileadmin/ 下?你能发布你的 TypoScript 模板代码吗?

标签: twitter-bootstrap typo3 fluid


【解决方案1】:

你需要了解typoscript的用法和fluid的文件夹结构。 以及“模板”一词的用法。 在 TYPO3 中,多个项目被称为模板:

  1. 排版记录
  2. 任何类型输出的原型(因此首选 HTML)
    一种。 (旧)标记模板
    湾。任何流体模板(Layouts/Partials/Templates/
    C。 Templates/ 文件夹中的流体模板

首先,您必须增强在印刷模板(a) 中定义的流体模板(b) 的路径。

lib.fluidContent {  
   // use `lib.contentElement` for TYPO3 8
   templateRootPaths {
      200 = EXT:your_extension_key/Resources/Private/FSC/Templates/
   }
   partialRootPaths {
      200 = EXT:your_extension_key/Resources/Private/FSC/Partials/
   }
   layoutRootPaths {
      200 = EXT:your_extension_key/Resources/Private/FSC/Layouts/
   }
}

现在对于每个模板文件 (b),您的文件夹会首先被扫描以查找匹配文件,因此您的模板 (b) 可以覆盖默认文件。

现在你需要知道模板文件的逻辑(c):

任何调用都会转到位于Templates/ 文件夹中的模板文件(c)。
该文件可以以&lt;f:layout name="layoutname" /&gt; 标记开头。
如果给定了该标签,则从布局模板(b)Layouts/layoutname.html开始呈现。
在该文件中,您可以调用部分(默认情况下从您的模板文件 (c))和部分。
所以你用更小的块渲染你的输出,你可以使用多次。

通过这种方式,您也可以只替换一个块(例如部分),而无需复制所有模板文件(b)。

【讨论】:

  • 感谢您的回答。
  • 感谢@Bernd 的回答。我已经增强了 .../templates、.../partials/ 和 .../layouts/ 的路径:10 { file = fileadmin/private/templates/boottpl.html partialRootPath = fileadmin/private/partials layoutRootPath = fileadmin/private/layouts } 我的导航栏和内容容器就是这样工作的。在模板文件中,我使用 标记将它们增强为打字稿文件 - 我尝试了使用粘性页脚的相同方式,但没有出现 - 即使在源代码中也没有。跨度>
  • 对不起@Bernd,我在上面的答案中发布得更好 - 很长时间没有使用 Stackoverflow 并且不熟悉 cmets 中的格式?
  • cmets 中没有换行符 :( 如果您想识别使用过的页脚,请尝试识别模板链。为此,我将模板复制到自己的空间(从不更改原始空间)并在任何地方插入 html标识文件(和部分)的 cmets,如果需要,还可以使用 start 和 stopp 来标识模板的结尾。
  • 如果您使用的是 TYPO3 8 或更高版本,则需要使用 lib.contentElement 而不是 lib.fluidContent,请参阅docs.typo3.org/typo3cms/extensions/fluid_styled_content/8.7/…
【解决方案2】:

感谢您回答@Riccardo 这不是我放入 setup.ts 中的代码(存储在 .../fileadmin/... 下:

page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
    file = fileadmin/private/templates/boottpl.html
    partialRootPath = fileadmin/private/partials
    layoutRootPath = fileadmin/private/layouts

    variables {


    mitte < styles.content.get
    mitte.select.where = colPos=0


    }

}

includeCSS.bootmin = fileadmin/private/frameworks/bootstrap-3.3.7/css/bootstrap.min.css
includeCSS.boot = fileadmin/private/frameworks/bootstrap-3.3.7/css/bootstrap.css
includeCSS.startertemplate = fileadmin/private/styles/starter-template.css

includeJSFooter.jquery = fileadmin/private/frameworks/jquery-3.2.1.min.js
includeJSFooter.bootjs = fileadmin/private/frameworks/bootstrap-3.3.7/js/bootstrap.min.js
}

在我的模板中 .../boottpl.html 我通过 section-tags 建立连接:

<f:section name="content">        
    {mitte -> f:format.raw()}
</f:section>

好吧,对于 name="content" 和 name="navigation" 来说,它确实工作得很好......我想,我已经理解了这个过程 - 但我无法用粘性页脚来管理它?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多