在 Contentelement 中使用 v:content.render
Use v:content.render in a Contentelement
我尝试通过局部流体从另一个页面渲染一些元素,并尝试使用 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 页上的元素也是流动内容元素。
我找到了一个有效的解决方案:
<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>
我认为您的第一次尝试更具可读性。 {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.raw>
替换了 <f:format.html>
以防止一些不需要的 <p></p>
我尝试通过局部流体从另一个页面渲染一些元素,并尝试使用 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 页上的元素也是流动内容元素。
我找到了一个有效的解决方案:
<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>
我认为您的第一次尝试更具可读性。 {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.raw>
替换了 <f:format.html>
以防止一些不需要的 <p></p>