Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 部分无输出的cobject(类型3,流体)_Typo3_Typoscript_Fluid_Typo3 8.x - Fatal编程技术网

Typo3 部分无输出的cobject(类型3,流体)

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

我在学习本教程时遇到了一个问题:

该部分应渲染两次。但是,仅渲染第一部分。第二个参数是lib.menu,不呈现

模板:

<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。如果你使用,会发生什么?谢谢,这很有效。前端输出现在看起来正常。再次感谢。