内容元素上的 Typo3 自定义字段

Typo3 Custom filed on Content Element

我可以向每个可以添加字符串的内容元素添加自定义字段吗?

在打字错误中,我将能够读取此字符串并将其打印在 class="" 属性中,这可能吗?

每个内容元素都有注释字段,我可以在打字稿中将其标红并粘贴到 class 属性中吗?

CONTENT < styles.content.get
CONTENT.renderObj.stdWrap.dataWrap=<div class="{NOTE??}">|</div>

谢谢

更新:

这样的事情可能吗:

CONTENT < styles.content.get
CONTENT.renderObj.stdWrap {

    key.field = layout

    4 = TEXT        

    4.value = <div class="csc-default blue">|</div>



    5 = TEXT
    5.value = <div class="csc-default meineklasse2">|</div>



    6 = TEXT
    6.value = <div class="csc-default meineklasse3">|</div>



}

为了保持给定的 CI,让编辑者手动输入 CSS-class 名称通常不是一个好的选择。更好的方法是让编辑可以从一组可能的 classes 中选择。

如果您使用 tt_content 记录中已有的字段 layout,就可以做到这一点。

因为 layout 字段的类型是 int 你可能需要 'translation' 到你期望的 class 名字,或者你留在编号 classes比如 frame-layout-1frame-layout-3。这是(在 FSC 中)内置解决方案和可用选项。

您可以增强此选项并对其进行修改。 在页面 TSconfig:

中增强选择
// Adding more layouts:
TCEFORM.tt_content.layout.addItems {
    4 = my special layout
    5 = my other special layout
}

// Modifying layouts names:
TCEFORM.tt_content.layout.altLabels {
    1 = my default layout
}

// remove items
TCEFORM.tt_content.layout.removeItems = 2,3

在 FSC 中,此字段在布局模板 (Resources/Private/Layouts/Default.html) 中进行评估(如果您还使用 frame_class ????)

[...]
<div id="c{data.uid}" class="frame frame-{data.frame_class} frame-type-{data.CType} frame-layout-{data.layout}{f:if(condition: data.space_before_class, then: ' frame-space-before-{data.space_before_class}')}{f:if(condition: data.space_after_class, then: ' frame-space-after-{data.space_after_class}')}">
[...]

但是您可以用自己的文件覆盖 Default.html 文件,就像在每个流体模板系统中一样。只需将原始文件复制到您自己的 space 并将新位置添加到模板(布局)路径。
这可能会以这样的方式结束:

[...]
<div id="c{data.uid}" {f:render.section(name:'layout-selection', arguments={layout:'layout'})} ... >
[...]

<f:section name="layout-selection">
    <f:switch expression="{layout}">
        <f:case value="1">class="normal"</f:case>
        <f:case value="4">class="special"</f:case>
        <f:case value="5">class="very-special"</f:case>
        <f:defaultCase>class="default"</f:defaultCase>
   </f:switch>
</f:section>

根据您的 TYPO3 版本,FSC 的模板路径可以配置如下:
(最多 TYPO3 7):

lib.fluidContent {
   templateRootPaths {
       20 = EXT:my_extension/Resources/Private/Templates/
   }
   partialRootPaths {
       20 = EXT:my_extension/Resources/Private/Partials/
   }
   layoutRootPaths {
       20 = EXT:my_extension/Resources/Private/Layouts/
   }
}

或(自 TYPO3 8 起):(Manual)

lib.contentElement {
   templateRootPaths {
       20 = EXT:my_extension/Resources/Private/Templates/
   }
   partialRootPaths {
       20 = EXT:my_extension/Resources/Private/Partials/
   }
   layoutRootPaths {
       20 = EXT:my_extension/Resources/Private/Layouts/
   }

}

我找到了适合我的解决方案。

tt_content.stdWrap.innerWrap.cObject = CASE
    tt_content.stdWrap.innerWrap.cObject {
        key.field = layout

        4 = TEXT        
        4.value = <div class="blue"><div class="container-fluid"><div class="design">|</div></div></div>

        5 = TEXT
        5.value = <div class="white"><div class="container-fluid"><div class="design">|</div></div></div>

        6 = TEXT
        6.value = <div class="grey"><div class="container-fluid"><div class="design">|</div></div></div>
    }