有条件地隐藏前端插件的 tt_content div
Conditional hiding of tt_content div for plugin in Frontend
我正在使用 TYPO3 8 和 fluid_styled_content。
正在开发具有以下要求的扩展:如果满足特定条件(取决于 URL 查询参数),前端中的插件不应显示任何内容。在这种情况下,插件的流体输出将为空(取决于控制器中设置的变量)。但是 TYPO3 仍然 - 默认情况下 - 呈现一个环绕 div 和 header。
所以,基本上,我得到的是这样的:
<div id="c217" class="...">
<header>
<h2 class="...">Header</h2>
</header>
<p> <!-- plugin output here is empty -- > </p>
</div>
我如何(动态地)防止这种情况发生?
之前有人问过这个问题,但我找到的解决方案不适用于 fluid_styled_content:
你应该使用FSC方式。
所有内容都使用使用布局和部分的模板呈现。除了简单的 CE,您还有一个插件模板,该模板请求呈现 header.
的布局
用你的插件的特殊条件增强(全局)布局以避免header(一定要自己渲染header)或者避免header如果你插件不会呈现任何输出。
编辑:
将覆盖 template-pathes 添加到 FSC:
lib.contentElement {
templateRootPaths {
200 = EXT:your_extension_key/Resources/Private/FSC/Templates/
}
partialRootPaths {
200 = EXT:your_extension_key/Resources/Private/FSC/Partials/
}
layoutRootPaths {
200 = EXT:your_extension_key/Resources/Private/FSC/Layouts/
}
}
现在您可以将 default-layout 从 FSC 文件夹复制到您的布局文件夹,并在该布局中添加一个条件,如果您的插件被渲染,该条件将跳过 header 和全局环绕。
<f:if condition="{data.CType} == 'list' && {data.list_type} == 'myPlugin'">
<f:then>
<f:comment> only plugin output </fcomment>
</f:then>
<f:else>
<f:comment> original output with headers and wrap </fcomment>
</f:else>
</f:if>
我正在使用 TYPO3 8 和 fluid_styled_content。
正在开发具有以下要求的扩展:如果满足特定条件(取决于 URL 查询参数),前端中的插件不应显示任何内容。在这种情况下,插件的流体输出将为空(取决于控制器中设置的变量)。但是 TYPO3 仍然 - 默认情况下 - 呈现一个环绕 div 和 header。
所以,基本上,我得到的是这样的:
<div id="c217" class="...">
<header>
<h2 class="...">Header</h2>
</header>
<p> <!-- plugin output here is empty -- > </p>
</div>
我如何(动态地)防止这种情况发生?
之前有人问过这个问题,但我找到的解决方案不适用于 fluid_styled_content:
你应该使用FSC方式。
所有内容都使用使用布局和部分的模板呈现。除了简单的 CE,您还有一个插件模板,该模板请求呈现 header.
用你的插件的特殊条件增强(全局)布局以避免header(一定要自己渲染header)或者避免header如果你插件不会呈现任何输出。
编辑:
将覆盖 template-pathes 添加到 FSC:
lib.contentElement {
templateRootPaths {
200 = EXT:your_extension_key/Resources/Private/FSC/Templates/
}
partialRootPaths {
200 = EXT:your_extension_key/Resources/Private/FSC/Partials/
}
layoutRootPaths {
200 = EXT:your_extension_key/Resources/Private/FSC/Layouts/
}
}
现在您可以将 default-layout 从 FSC 文件夹复制到您的布局文件夹,并在该布局中添加一个条件,如果您的插件被渲染,该条件将跳过 header 和全局环绕。
<f:if condition="{data.CType} == 'list' && {data.list_type} == 'myPlugin'">
<f:then>
<f:comment> only plugin output </fcomment>
</f:then>
<f:else>
<f:comment> original output with headers and wrap </fcomment>
</f:else>
</f:if>