Typo3 部分无输出的cobject(类型3,流体)
我在学习本教程时遇到了一个问题: 该部分应渲染两次。但是,仅渲染第一部分。第二个参数是lib.menu,不呈现 模板:Typo3 部分无输出的cobject(类型3,流体),typo3,typoscript,fluid,typo3-8.x,Typo3,Typoscript,Fluid,Typo3 8.x,我在学习本教程时遇到了一个问题: 该部分应渲染两次。但是,仅渲染第一部分。第二个参数是lib.menu,不呈现 模板: <f:section name="pageInfoBoxes"> <f:render partial="Colorbox" arguments="{boxHeader : 'Abstract', boxContent : '{data.title}', boxColor : 'blue'}" /> <f:render partial="Co
<f:section name="pageInfoBoxes">
<f:render partial="Colorbox" arguments="{boxHeader : 'Abstract', boxContent : '{data.title}', boxColor : 'blue'}" />
<f:render partial="Colorbox" arguments="{boxHeader : 'Subpages', boxContent : '{f:cObject(typoscriptObjectPath:'lib.menu')->f:format.raw()}', boxColor : 'red'}" />
</f:section>
Partial colorbox.html:
<div class="box box-{boxColor}">
<h3>{boxHeader}</h3>
<div class="contains">
{boxContent}
</div>
</div>
布局:
<header>
<h1>
<f:link.page pageUid="67" title="Nuremberg Shop">Nuremberg Shop</f:link.page>
</h1>
<f:render section="topMenu" />
</header>
<div class="row">
<div class="span8">fileadmin/.../Layouts/
<f:render section="content"/>
</div>
<div class="span4">
<f:if condition="{contentRight}">
<f:then><f:render section="contentRight"/></f:then>
<f:else><f:render section="pageInfoBoxes"/></f:else>
</f:if>
</div>
</div>
<footer>
<!-- here some stuff for footer... -->
</footer>
我不明白为什么这行渲染不正确:
<f:render partial="Colorbox" arguments="{boxHeader : 'Subpages', boxContent : '{f:cObject(typoscriptObjectPath:'lib.menu')->f:format.raw()}', boxColor : 'red'}" />
我尝试了不同的语法,但没有成功。值得注意的是:
首先,当你有如下情况时
boxContent: '{f:cObject(typoscriptObjectPath:'lib.menu')->f:format.raw()}'
必须用反斜杠转义内部引号:
boxContent: '{f:cObject(typoscriptObjectPath:\'lib.menu\')->f:format.raw()}'
在液体中并没有任何好的方法来预防这些病例,尤其是如果你把它放得更远的话。尽管您可以使用f:variable ViewHelper设置一个临时变量,并将其用作boxContent参数
你在评论中提到的第二部分:
您必须在输出boxContent的位置应用f:format.raw
所以应该是这样的:
boxContent: '{f:cObject(typoscriptObjectPath:\'lib.menu\')}'
在部分情况下,您会:
{boxContent -> f:format.raw()}
viewhelper有一个选项可以禁用转义拦截器,但这仅在直接打印viewhelper的结果时有效。如果将结果存储在变量中并稍后输出变量,则转义仍然应用于变量的输出。如果仅使用cObject渲染部分,会发生什么情况?是呈现zwo次相同部分的问题,还是第二部分的语法问题?当我转义lib.menu“lib.menu”时,我收到前端输出。但是,它显示的HTML和HTML源代码如下所示:lia href=index.php?id=67Home/a/liSorry。你误解我了。我的意思是只渲染第二部分,如下所示:。那会怎么样?我明白了,对不起。根本没有输出。请在问题中添加lib.menu。如果你使用,会发生什么?谢谢,这很有效。前端输出现在看起来正常。再次感谢。