我开发了一个使用图像的内容元素。因为它将图像输出为内联样式元素:<div style="/fileadmin/_processed_/2/a/csm_article-image-1.4_a50d0b1375.jpg">[..]</div>
,所以我希望为编辑器的CE抑制FAL字段alt
、title
和description
。
示例:屏幕截图
现在我使用以下类型脚本:
TCEFORM {
sys_file_reference {
alternative.disabled = 1
description.disabled = 1
title.disabled = 1
link.disabled = 1
}
}
但这个解决方案迫使所有CE隐藏文件。元数据。
TCA配置是什么样子的?
编辑:来自@rudy gnodde的解决方案完美运行:
$GLOBALS['TCA']['tt_content']['types']['ce_image']['columnsOverrides']['image']['config']['overrideChildTca']['types'][0]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['types']['ce_image']['columnsOverrides']['image']['config']['overrideChildTca']['types'][1]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['types']['ce_image']['columnsOverrides']['image']['config']['overrideChildTca']['types'][2]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['types']['ce_image']['columnsOverrides']['image']['config']['overrideChildTca']['types'][3]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['types']['ce_image']['columnsOverrides']['image']['config']['overrideChildTca']['types'][4]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['types']['ce_image']['columnsOverrides']['image']['config']['overrideChildTca']['types'][5]['showitem'] = 'crop,--palette--;;filePalette';
如果您使用现有的image
字段,您可以使用覆盖它应该显示的字段
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['overrideChildTca']['types'][0]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['overrideChildTca']['types'][1]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['overrideChildTca']['types'][2]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['overrideChildTca']['types'][3]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['overrideChildTca']['types'][4]['showitem'] = 'crop,--palette--;;filePalette';
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['overrideChildTca']['types'][5]['showitem'] = 'crop,--palette--;;filePalette';
如果是自定义字段,则应将overrideChildTca
中的部件添加到该字段TCA配置的配置中。
这将只显示Image manipulation
字段。
为了修改现有答案,我添加了一些解释、文档链接和Flexform的另一个示例
内联字段类型是(简化的(1:n关系,它将子元素(例如文件或sys_file_reference表元素(附加到父元素(例如tt_content(。
子元素的TCA可以用overrideChildTca重写。类型决定将为子表类型显示什么。
我有一个稍微不同的例子,其中flexform元素被定义为内联,并具有foreign_table=sys_file_reference。
但是,原则上是一样的。
因此,我在现有的TCA中查找系统文件引用(例如BE中的配置模块(,并看到以下内容:
sys_file_reference =>
types =>
0 =>
showitem = --palette--;;basicoverlayPalette, --palette--;;filePalette
....
basicfoverlayPalette应该被删除,我们可以看到它在调色板中包含什么:
palettes =>
basicoverlayPalette =>
label = ...ce.basicoverlayPalette
showitem = title,description
因此,对于子TCA中的所有类型,我们希望从showitem中删除调色板basicoverlayPalette。
对于Flexform,这可能看起来像这样:
<overrideChildTca>
<!-- suppress displaying title and description here -->
<types type="array">
<numIndex index="0" type="array">
<showitem>--palette--;;filePalette</showitem>
</numIndex>
<numIndex index="1" type="array">
<showitem>--palette--;;filePalette</showitem>
</numIndex>
<numIndex index="2" type="array">
<showitem>--palette--;;filePalette</showitem>
</numIndex>
<numIndex index="3" type="array">
<showitem>--palette--;;filePalette</showitem>
</numIndex>
<numIndex index="4" type="array">
<showitem>--palette--;;filePalette</showitem>
</numIndex>
<numIndex index="5" type="array">
<showitem>--palette--;;filePalette</showitem>
</numIndex>
</types>
</overrideChildTca>
您应该使用字段"assets"而不是"image"字段,assets字段将为您提供所有数据,如"title,link,alt etc">