You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:39:01