1

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

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

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

我现在正试图colPos=0在 div 中显示第一列 ( ) 的内容。
目前,我的 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

4 回答 4

2

关于你的问题,哪种方法更优雅(我不使用流体,但我认为它是一般的 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 静态模板以了解它的作用可能会有所帮助。

于 2013-02-26T19:20:33.407 回答
0

page.5.variables.content <styles.content.get

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

于 2013-03-05T17:09:55.580 回答
0

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

如果您没有“触摸”它们,则在后端的 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>
}
于 2013-03-01T09:09:37.663 回答
0

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

于 2016-09-03T00:39:00.123 回答