TYPO3 Extension-Builder выбирает выходное значение IRRE во флюиде
Я щелкнул мне небольшое расширение в Extension Builder вместе. Это общий объект (стена) с IRRE-элементами (окна в стене - 1:n). Этот IRRE-элемент имеет поле выбора (цвет окна) с различными значениями. Я добавил значения в папку переопределения, чтобы они не перезаписывались при добавлении другого поля в Extension Builder.
В моем шаблоне я перебираю все n элементов и пытаюсь вывести каждый из них по частям. Но теперь в браузере отображаются только идентификаторы, а не значения.
Вот мой TCA-Override:
$GLOBALS['TCA']['MY_EXTENSIO']['columns']['color']['config']['items'] = [
['Green', 0],
['Red', 1],
['Blue', 2],
['Gray with orange dots', 3],
];
То, как я это делаю в частичном
{window.color} // window is the passed variable of the loop
В бэкэнде все работает просто отлично. Даже если я сохраню данные, перезагрузите... Всегда выбрано название цвета (например, "Синий"). Но во внешнем интерфейсе это просто "2" - идентификатор цвета. Я больше ничего не делал: скорее я сменил контроллер, но не работал многоязычный...
Кто-нибудь из вас имеет для меня подсказку? Я гуглю с часами безрезультатно.
1 ответ
TCA-Override:
$GLOBALS['TCA']['MY_EXTENSIO']['columns']['color']['config']['items'] = [
['Green', '#060'],
['Red', '#F00'],
['Blue', '#00F'], // for better practice I suggest classes like: ['Blue', 'blue-color-code']
['Gray with orange dots', '#999'],
];
Измените тип поля в ext_tables.sql -> не забудьте обновить БД из установочного инструмента
CREATE TABLE tx_hous_domain_model_window (
color varchar(255) DEFAULT '' NOT NULL
);
Просто посмотрите, как должна выглядеть ваша модель:
class Window extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
protected $color = '';
public function getColor() {
return $this->color;
}
public function setColor($color) {
$this->color = $color;
}
}
по вашему мнению:
{window.color} <!-- either you'll get '#00F' for blue or 'blue-color-code' class as per your TCA config -->
Не забудьте очистить кэш инсталляционного инструмента