【问题标题】:Adding the page content to a fluid template将页面内容添加到流体模板
【发布时间】:2013-02-26 04:44:17
【问题描述】:

我是 TYPO3 和 Fluid 的新手,我尝试使用类似于以下的 Fluid 模板来显示页面内容:

<div id="content">
   <f:format.html>{content}</f:format.html>
</div>

页面数据通过后端使用两列布局 (colPos=0, colPos=1) 输入。

我现在尝试在 div 中显示第一列 (colPos=0) 的内容。
目前,我的 TYPO 脚本如下所示:

page = PAGE
page {
   # ...

   5 = FLUIDTEMPLATE
   5 {
        file = fileadmin/templates/default.html

        # ...

        variables {
           pageTitle = TEXT
           pageTitle.data = page:title    

           content = CONTENT
           content {
              table = tt_content
              select {
                 where=colPos=0
              }
              renderObj = COA
              renderObj {
                 10 = TEXT
                 10.field = bodytext
              }
           }
      }
}

它是这样工作的,但我无法摆脱我的 5.variables.content 太复杂的感觉。

我看到了一些使用 content &lt; styles.content.get 作为替代方案的解决方案,但使用它会导致结果 div 为空。

有没有更优雅的方式(即在这种情况下更短)来实现我正在做的事情?

【问题讨论】:

  • 我相信 content &lt; styles.content.get 需要包含 css_styled_content 的静态 TypoScript。你这样做了吗?
  • 感谢您的回复! “CSS 样式内容(css_styled_content)”包含在我上面发布的模板的“包含静态(来自扩展)”部分中。尽管如此,使用 styles.content.get 时内容仍为空。
  • 它应该被包含在包含列表的顶部。如果它位于列表的下方,则有时不会呈现内容。
  • 这是唯一的条目。是否应该包含任何其他模板才能使其正常工作?

标签: typo3 typoscript fluid


【解决方案1】:

关于您的问题,哪种方法更优雅 (我不使用流体,但我认为它是通用的Typoscript):

如果你想使用 css_styled_content,但比快捷键“get”、“getLeft”等更灵活、更透明,请使用:

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

在这种情况下无需指定 content = CONTENT。

按照你上面写的方式,你可能需要添加:

10.parseFunc = < lib.parseFunc_RTE

到您的 renderObj,否则,自动链接的电子邮件地址等将不会在内容中呈现。

如果您想完全控制标记,则使用 CONTENT 对象的原始方法优于 css_styled_content。但是您必须涵盖编辑应该使用的每个字段。

我一直用这篇文章:http://www.typo3wizard.com/en/articles/explaining-the-content-object.html

另一方面,使用 css_styled_content,您可以免费解析所有字段 - 而且您还可以获得它将为您编写的所有标记。

查看 /typo3/sysext/css_styled_content/static/setup.txt 中 csc 的静态模板可能会有所帮助。

【讨论】:

  • 感谢您的回复!但是,当用 content
  • 您可以尝试在没有模板的情况下输出 styles.content.get 吗?只是 page.10 = TEXT 和 page.10
  • 结果也是空的(尝试添加换行时,甚至没有输出 - 但是在同一位置输出纯文本有效) - styles.content.get 似乎没有正确填写。除了像我在开始帖子的 cmets 中描述的那样包括它之外,我还需要设置什么来让 css_styled_content 正常工作吗?
  • 这应该是开箱即用的。你在哪个版本?还有什么。也许删除该模板并重新开始。检查模板中的“根级别”,“删除常量,设置”,当然要选择模板。在根页面的页面设置中选中“用作根页面”。检查是否安装了 csc 扩展(嗯,它是,否则模板不会出现......)。您还可以查看所有模板附带的介绍包。
  • 能不能展示一下非流畅页面模板的TS?啊,看看你要输出的内容是不是真的在col 0!应该是,根据您在开始帖子中的模板,但谁知道
【解决方案2】:

我不使用流体,只是简单的 TS 用于我的项目,但我希望能有所帮助。

如果你没有“触摸”它们,后端的列是这样的:

| col1(左) | col0(正常) | col2(右) | col3(边框)|

我做的是“正常”布局:

page.10 = TEMPLATE
page.10 {
  subparts{
    LEFT-CONTENT < styles.content.getLeft
    CONTENT < styles.content.get
    RIGHT-CONTENT < styles.content.getRight
  }
  marks {
    DESCRIPTION < styles.content.getBorder
  }

如果你需要更多的东西,你可以使用类似的东西来生成一些不在该页面上的内容,并可以使用它在所有页面上显示它。

subparts{
LEFT-CONTENT < styles.content.getLeft
LEFT-CONTENT {
  select.pidInList = 50
  select.where = colPos=0
  select.orderBy = sorting
  wrap = <div class="col100">|</div>
}

【讨论】:

    【解决方案3】:

    page.5.variables.content

    当然,您必须安装 CSS 样式内容 扩展(默认),并且您的 TypoScript 模板中包含 静态模板“CSS 样式内容”(选项卡:包含) .

    【讨论】:

      【解决方案4】:

      替代解决方案:https://fluidtypo3.org/viewhelpers/vhs/development/Content/RenderViewHelper.html(以及 getrandom 获取/渲染对应项)。

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 2016-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-15
        相关资源
        最近更新 更多