Наложение значка 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.
1 ответ
Вам необходимо зарегистрировать ваши файлы значков. Если ваши файлы значков называются content_login.svg и content_login_overlay_approved.svg, расположенные в каталоге /Resources/Public/Icons/, вы можете зарегистрировать их в 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]
);
}
}
Адаптируйте свое имя