TYPO3如何通过Typoscript将frame_class追加到layout外层类名中
实现方案
可以通过调整Typoscript的包裹规则实现两层类合并,具体步骤如下:
1. 移除原有独立的frame层包裹
首先需要清除默认渲染逻辑里frame对应的外层div,避免重复嵌套:
# 清除默认frame的内层包裹配置 tt_content.stdWrap.innerWrap > # 若使用fluid_styled_content扩展,额外添加以下配置禁用frame默认类渲染 tt_content.default.settings.frameClass >
2. 重写layout层的包裹规则,合并两个类名
修改layout外层div的渲染逻辑,把frame_class的值追加到类属性中:
tt_content.stdWrap.wrap.cObject = COA tt_content.stdWrap.wrap.cObject { # 拼接div开头和类属性起始 10 = TEXT 10.value = <div class=" # 输出layout类名 20 = TEXT 20.field = layout_class 20.required = 1 # 输出frame类名,前面留空格分隔 30 = TEXT 30.field = frame_class 30.required = 1 30.noTrimWrap = | | | # 拼接标签结束符和闭合标签 40 = TEXT 40.value = ">|</div> }
补充说明
如果你使用的是Fluid模板渲染内容,也可以直接修改对应内容模板的layout部分,直接将{data.frame_class}变量拼到外层div的class属性中,配置起来更直观易维护。
你之前的写法仅将frame类名添加到了内层包裹,没有移除原有的frame外层div,因此无法实现嵌套合并的效果。
内容的提问来源于stack exchange,提问作者HoffErik-JohnerInst
相关产品推荐
相关产品推荐

