Как я подавляю поля 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 и т. Д."

Другие вопросы по тегам