Как я подавляю поля FAL в CE для редактора?
Я разрабатываю элемент контента, который использует изображение. Потому что он выводит изображение в виде встроенного элемента стиля: <div style="/fileadmin/_processed_/2/a/csm_article-image-1.4_a50d0b1375.jpg">[..]</div>
Хочу подавить FAL-поля alt
, title
, а также description
для СЕ для редактора.
Пример: скриншот
В настоящее время я использую следующий TypoScript:
TCEFORM {
sys_file_reference {
alternative.disabled = 1
description.disabled = 1
title.disabled = 1
link.disabled = 1
}
}
Но это решение заставляет весь CE скрывать файл.metadata.
Как выглядит конфигурация 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';
3 ответа
Если вы используете существующий 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.
Тип поля Inline представляет собой (упрощенно) отношение 1:n, которое прикрепляет дочерние элементы (например, файлы или, скорее, элементы таблицы sys_file_reference) к родительскому элементу (например, tt_content).
TCA дочернего элемента можно переопределить с помощью overrideChildTca. Типы определяют, что будет отображаться для типа дочерней таблицы.
У меня немного другой пример, где элемент flexform определен как встроенный и имеет external_table=sys_file_reference.
Но, в принципе, это одно и то же.
Итак, я смотрю в существующем TCA для sys_file_reference (например, в модуле конфигурации в BE) и вижу следующее:
sys_file_reference =>
types =>
0 =>
showitem = --palette--;;basicoverlayPalette, --palette--;;filePalette
....
Необходимо удалить basicoverlayPalette, мы можем посмотреть, что в ней содержится в палитрах:
palettes =>
basicoverlayPalette =>
label = ...ce.basicoverlayPalette
showitem = title,description
Итак, для всех типов в дочернем TCA мы хотим удалить палитру basicoverlayPalette из showitem.
Для 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 и т. Д."