将页面内容添加到流体模板

时间:2013-02-26 04:44:17

标签: typo3 typoscript fluid

我是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 < styles.content.get作为替代方案的解决方案,但使用此方法会导致生成的div为空。

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

4 个答案:

答案 0 :(得分:2)

关于你的问题哪种方法更优雅 (我不会使用液体,但我认为它是一般的Typoscript):

如果你想使用css_styled_content,但是比快捷键更具灵活性和透明度&#34; get&#34;,&#34; getLeft&#34;等,用这个:

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的静态模板可能会有所帮助,看看它的作用。

答案 1 :(得分:0)

我不使用液体,只是用于我的项目的普通TS,但我希望得到不好的帮助。

在后端,如果你没有“触碰”em,那么cols是这样的:

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

答案 2 :(得分:0)

page.5.variables.content&lt; styles.content.get

当然,您必须安装 CSS样式内容扩展程序(默认)和TypoScript模板中包含的静态模板“CSS样式内容”(标签:包含)

答案 3 :(得分:0)

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