Наложение значка TCA в бэкэнде typo3

Я работаю над расширением, в котором я синхронизирую некоторые данные с другой базой данных, и я хотел показать это в бэкэнде с помощью наложения значка TCA. К сожалению, я не мог понять, как это сделать. Я думал об использовании «ctrl» => «typeicon_classes» (используя поле состояния моей таблицы для выбора значка), это работает по умолчанию (несинхронизированный элемент), но я не могу понять, как установить наложение. Есть идеи, как это сделать?

Моя конфигурация TCA выглядит так:

'ctrl' => [
    ...
    'typeicon_column' => 'state',
    'typeicon_classes' => [
        'new' => 'mimetypes-x-content-login',
        'synced' => 'mimetypes-x-content-login-overlay-approved',
    ]
],

«Синхронизированная» часть не работает должным образом. Я ожидал, что либо добавлю наложение в конце значка, либо добавлю его с пробелом, но оба не сработали.

Любая помощь приветствуется.

PS: Мне это действительно просто нужно в бэкенде TYPO3, очевидное решение для внешнего интерфейса - использовать жидкость или PHP, но я не думаю, что это подходит для списка бэкэндов TYPO3.


person CDRO    schedule 12.12.2018    source источник


Ответы (1)


Вам необходимо зарегистрировать файлы значков. Поскольку ваши файлы значков имеют имена content_login.svg и content_login_overlay_approved.svg, расположенные в каталоге / Resources / Public / Icons /, вы можете зарегистрировать их в < em> ext_localconf.php следующим образом:

if (TYPO3_MODE === 'BE') {
    $icons = [
        'mimetypes-x-content-login' => 'content_login.svg',
        'mimetypes-x-content-login-overlay-approved' => 'content_login_overlay_approved.svg',
    ];
    $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
    foreach ($icons as $identifier => $path) {
        $iconRegistry->registerIcon(
            $identifier,
            \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
            ['source' => 'EXT:YOUREXTENSIONNANME/Resources/Public/Icons/' . $path]
        );
    }
}

Адаптировать yourextensionname

person jokumer    schedule 12.12.2018
comment
Хорошо, поэтому мне нужно взять существующий значок svg из TYPO3, добавить существующий оверлей SVG и создать новый файл svg, верно? - person CDRO; 13.12.2018