[英]TYPO3 Partials rendering does not work properly
问题如下。 我做了一个扩展,其中有一个列表视图和详细信息视图。 列表视图工作正常。 当我进入详细视图并尝试通过Show.html渲染部分时,会出现问题。 该问题将在结构后详细说明。
结构如下:
↳私人的
↳部分
↳详细
↳公寓
↳模板
mobil固定进口
↳List.html
↳Show.html
所以在Show.html上我有这个:
<f:render partial="Detail/Apartment" arguments="{_all}" />
在Apartment.html上,我有一个要读取的变量:
{immobilieImport.street}
当我调用列表视图并单击一个对象时,它会将我重定向到详细信息视图,如预期那样。 我得到正确的价值观,一切正常。 但是,当我返回另一个对象并单击它以访问详细视图时,它不会呈现局部视图或Show.html。
我在配置no_cache = 0
上也关闭了页面属性上的缓存。
当我使用<f:debug>{immobilieImport}</f:debug>
我会获得所有正确的值,但它不会在前端显示html。
TYPO3版本7.6.23
有什么想法吗? 如果您需要更多信息,请随时询问。
最好的祝福
我找到了解决我的问题的方法,我将详细解释它,因此,如果其他人遇到相同的问题,他可以找到答案。
如果有人使用FlexForm设置,则该问题可能很常见。
在我的列表视图中,我有一个<f:if>
语句,在该语句中我评估创建日期是否少于30天。 通过让用户自己定义时间,我使其变得灵活。 为了使用户能够这样做,您需要在FlexForm上添加设置。 所以在我的FlexForm上,我有这个:
<settings.timeToGetOld>
<TCEforms>
<label>Number of days that stays as "New"</label>
<displayCond>FIELD:switchableControllerActions:=:ImmobilieImport->list;ImmobilieImport->show</displayCond>
<config>
<type>input</type>
<size>6</size>
<max>6</max>
<eval>int</eval>
<default>30</default>
</config>
</TCEforms>
</settings.timeToGetOld>
FIELD:switchableControllerActions:=:ImmobilieImport-> list; ImmobilieImport-> show
实际上,这仅是列表视图,其编写方式是因为它是“控制器动作组合”。
在我的控制器和列表操作上:
$this->view->assign('settings', $this->settings);
然后在我的液体上:
f:if condition="{f:format.date(date: '{immobilieImport.creationDate}', format: 'Y-m-d')} > {f:format.date(date: 'now-{settings.timeToGetOld} days', format: 'Y-m-d')}"><span class="new_object">New</span>
当我尝试在“详细信息视图”上使用该评估时出现问题。 由于我没有为“详细视图”指定任何设置字段,因此流体引擎无法处理评估,因此不显示任何内容会通过错误进行评估。 考虑到它读取文档从上到下的事实,因此当Fluid Engine遇到问题时,它停止了工作。
在找出问题所在之后,我在FlexForm上又添加了一个设置:
<settings.timeToGetOldDetailView>
<TCEforms>
<label>Number of days that stays as "New"</label>
<displayCond>FIELD:switchableControllerActions:=:ImmobilieImport->show</displayCond>
<config>
<type>input</type>
<size>6</size>
<max>6</max>
<eval>int</eval>
<default>30</default>
</config>
</TCEforms>
</settings.timeToGetOldDetailView>
现在,我仅将displayCond
更改为“ Detail View”(显示),并将我的“ Fluid”(Show.html)也更改为{settings.timeToGetOldDetailView}
:
f:if condition="{f:format.date(date: '{immobilieImport.creationDate}', format: 'Y-m-d')} > {f:format.date(date: 'now-{settings.timeToGetOldDetailView} days', format: 'Y-m-d')}"><span class="new_object">New</span>
我也在我的控制器上添加了这个:
$this->view->assign('settings', $this->settings);
现在一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.