类的免费输入通常被认为是不好的做法(-> 关注点分离)。
对于这种情况,我使用经典的“header_layout”方法,基于 www.typo3wizard.com/en/snippets/cool-stuff-typoscript/using-the-layout-field-in-tt-content-and-pages.html
这非常有效,编辑可以选择您提供的任何价值。这是一种解决方法,但它已经使用了很长时间。header_layout 框已被使用,因为它位于方便编辑的位置。最初,它旨在为元素选择布局。
在页面 TSConfig 中:
TCEFORM.tt_content {
// Layout-Selector
header_layout.altLabels.0 = Normal
header_layout.altLabels.1 = Kasten
header_layout.altLabels.2 = Bilder 1/2
header_layout.altLabels.3 = Bilder 1/3
header_layout.altLabels.4 = Dokumente 1/2 (mit Rand)
header_layout.altLabels.5 = Dokumente 1/3 (mit Rand)
// everything higher than 5 goes here
header_layout.addItems {
// 6 = Box für wichtige Daten
// 7 = Box für Kosten
// 8 = Box für Arbeiten / Literatur
}
// Remove items if less than 5
// 100 is "hidden"
header_layout.removeItems = 100
}
然后在页面 TS: 假设我们要换行 text 和 textpic 元素:
tt_content.text.stdWrap.outerWrap.cObject=CASE
tt_content.text.stdWrap.outerWrap.cObject=CASE
tt_content.text.stdWrap.outerWrap.cObject{
key.field = header_layout
default=TEXT
default.value=|
1=TEXT
1.value=<aside class="kasten halfimg clearfix">|</aside>
2=TEXT
2.value=<div class="halfimg clearfix">|</div>
3=TEXT
3.value=<div class="thirdimg clearfix">|</div>
4=TEXT
4.value=<div class="halfimg-border clearfix">|</div>
5=TEXT
5.value=<div class="thirdimg-border clearfix">|</div>
}
tt_content.textpic.stdWrap.outerWrap.cObject=CASE
tt_content.textpic.stdWrap.outerWrap.cObject{
key.field = header_layout
default=TEXT
default.value=|
1=TEXT
1.value=<aside class="kasten halfimg clearfix">|</aside>
2=TEXT
2.value=<div class="halfimg clearfix">|</div>
3=TEXT
3.value=<div class="thirdimg clearfix">|</div>
4=TEXT
4.value=<div class="halfimg-border clearfix">|</div>
5=TEXT
5.value=<div class="thirdimg-border clearfix">|</div>
}
因此,基本上,您可以利用 css_styled_content 的渲染并告诉它根据 header_layout 中设置的内容包装该内容元素。