Typo3 Custom在内容元素上提交

时间:2019-08-04 14:50:47

标签: typo3 typo3-8.x

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

在打字稿中,我将能够读取此字符串并将其打印在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>



}

2 个答案:

答案 0 :(得分:2)

要保留给定的CI,通常不是让编辑人员手动输入CSS类名称的好选择。更好的方法是让编辑器可以选择一组可能的类。

如果您使用layout记录中已经可用的字段tt_content,就可以这样做。

由于layout字段的类型为int,因此您可能需要对期望的班级名称进行“翻译”,否则您将停留在从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文件,就像在每个流体模板系统中一样。只需将原始文件复制到您自己的空间,然后将新位置添加到模板(布局)路径即可。
最终可能会这样:

[...]
<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/
   }

}

答案 1 :(得分:0)

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

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>
    }