我尝试通过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页上的元素也是流动内容元素。
答案 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>