TYPO3 Partials 渲染不正常
TYPO3 Partials rendering does not work properly
问题如下。我做了一个扩展,我有一个列表视图和详细视图。列表视图工作正常。当我进入详细视图并尝试通过 Show.html 呈现部分时,问题出现了。
结构后会详细说明问题
这是结构:
↳ 私人
↳ 部分
↳ 详情
↳ 公寓
↳ 模板
↳ ImmobilieImport
↳ 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
知道发生了什么事吗?如果您需要更多信息,请随时询问。
此致
我找到了我的问题的解决方案,我会详细解释,所以如果其他人有同样的问题,他可以找到答案。
The problem could be very common if someone using FlexForm settings.
在我的列表视图中,我有一个 <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
这实际上只是列表视图,它是这样写的,因为它是 "Controller action combinations"。
在我的控制器上并列出操作:
$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
更改为详细视图(显示)并且我也将流体 (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);
现在一切正常。
问题如下。我做了一个扩展,我有一个列表视图和详细视图。列表视图工作正常。当我进入详细视图并尝试通过 Show.html 呈现部分时,问题出现了。 结构后会详细说明问题
这是结构:
↳ 私人
↳ 部分
↳ 详情
↳ 公寓
↳ 模板
↳ ImmobilieImport
↳ 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
知道发生了什么事吗?如果您需要更多信息,请随时询问。
此致
我找到了我的问题的解决方案,我会详细解释,所以如果其他人有同样的问题,他可以找到答案。
The problem could be very common if someone using FlexForm settings.
在我的列表视图中,我有一个 <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
这实际上只是列表视图,它是这样写的,因为它是 "Controller action combinations"。
在我的控制器上并列出操作:
$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
更改为详细视图(显示)并且我也将流体 (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);
现在一切正常。