typo3 - FLUID 中的条件以检查列是否有内容
问题描述
我正在使用 Ben Kott 为 Typo3 9.5 编写的站点包,并将内容包含到我的流体模板中,如下所示:
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{colPos: '1'}" />
我试图把它包装成一种像液体一样的状态
<f:if condition="<f:cObject typoscriptObjectPath='lib.dynamicContent' data='{colPos: \'1\'}'">
whatever
</f:if>
但它不起作用。我不知道是否有任何错误的语法或是否不可能。
解决方案
{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: {colPos: 1}) -> f:variable(name: 'content')}
<f:if condition="{content}">
There is content. Here it is:
{content -> f:format.raw()}
</f:if>
- 避免对打字稿对象的双重渲染、双重数据库请求等。
- 避免标签属性中的标签语法,这在未来的 Fluid 版本中可能无法做到
为后代编辑:上面代码失败的确切原因似乎是语法错误:
<f:if condition="<f:cObject typoscriptObjectPath='lib.dynamicContent' data='{colPos: \'1\'}'">
应该:
<f:if condition="<f:cObject typoscriptObjectPath='lib.dynamicContent' data='{colPos: \'1\'}' />">
由于内部标签没有关闭。不过,您仍然应该避免使用它 - 改用内联语法。在我上面的代码中,您可以删除该-> f:variable()
部分,然后表达式可以用作标签属性值。
推荐阅读
- jquery - 如何将语法 .live() 转换为 .on() - jquery
- python - 使用 psycopg2 与 postgresql 的连接可以保持 24 小时以上吗?
- database - 如何在 Sequelize 查询中使用不包含
- nix - 查询一个nix程序的“name”属性
- conditional-statements - 在代码复杂性中使用 if else 和 if else if else(深度条件)有什么区别?
- html - SCSS Mixin 无法编译
- python - 如何在熊猫中查找某些列变量的行
- javascript - 允许在页面加载时播放音频
- python - 将输出写入不同的 csv 文件列
- python - 从 numpy 数组在 PyQt5 中显示图像