在Contentelement中使用v:content.render

时间:2015-02-25 13:14:10

标签: typo3 fluid typo3-6.2.x

我尝试通过Partial中的流体从另一个页面渲染一些元素,并尝试使用v:content.render。正如你在代码中看到的那样,我想用Uid 9从页面中渲染3个元素。但是只要我有v:content.render元素,我就会得到一个空白页面。

所以我的问题是如何使用v:content.render或我有什么选择?或者我还需要使用Typoscript吗?

{namespace v=FluidTYPO3\Vhs\ViewHelpers}
<div class="footer2">

    <v:content.render column="0" limit="3" pageUid="9" as="contentElements">
      <f:for each="{contentElements}" as="contentElement" iteration="footerIteration">
        <f:format.html>{contentElement.bodytext}</f:format.html>
      </f:for>
    </v:content.render>

</div>

我不确定它是否重要,但第9页上的元素也是流动内容元素。

2 个答案:

答案 0 :(得分:2)

我找到了一个有效的解决方案:

<v:variable.set name="contentElements" value="{v:content.get(column:'0', limit:'3', pageUid:'9',  render:'FALSE')}" />

  <f:for each="{contentElements}" as="contentElement" iteration="footerIteration">
    <v:content.render contentUids="{0:contentElement.uid}" />
    <f:format.html>{contentElement.bodytext}</f:format.html>
  </f:for>

答案 1 :(得分:1)

我认为您的首次尝试更具可读性。 {contentElement}已经满足您的需求,如果您将bodytext保留为其默认值render,则没有属性true

<v:content.render column="0" pageUid="9" limit:"3" as="contentElements">
    <f:for each="{contentElements}" as="contentElement">
        <f:format.raw>{contentElement}</f:format.raw>
    </f:for>
</v:content.render>

如果您不知道如何使用as="",请尝试进行调试:

<v:content.render column="0" pageUid="9" limit:"3" as="contentElements">
    <f:for each="{contentElements}" as="contentElement">
        <f:debug inline="true">{contentElement}</f:debug>
    </f:for>
</v:content.render>

然后我将<f:format.html>替换为<f:format.raw>,所以要防止一些不必要的<p></p>