Contao: Радио / Флажок — Атрибут продукта с Диспетчером параметров

Изотоп электронной коммерции

В бэкэнде я сделал некоторые атрибуты продукта как меню «Флажок / переключатель» и поместил значения с помощью диспетчера параметров.
Пример: поле с именем filter_farben (см. изображение: настройки для поля атрибута)

В интерфейсе продукта, если я использую generateAttribute (‘filter_farben’) или проверяю необработанные данные, я вижу только идентификатор поля из tl_iso_attribute_option Таблица (34 для этого — см. второе изображение: таблица tl_iso_attribute_option).
Как я могу получить метку этих полей (в данном случае «Natur»)?

Спасибо!!

1

Решение

Тем не менее, я не уверен, чего вы хотите достичь и где находитесь в своем коде. Позвольте мне получить ярлык для вас:

    $objAttribute=$GLOBALS['TL_DCA']['tl_iso_product']['attributes']['filter_faben'];

$strClass=$objAttribute->getFrontendWidget();

$arrData = $GLOBALS['TL_DCA']['tl_iso_product']['fields']['filter_faben'];

$arrField = $strClass::getAttributesFromDca($arrData, 'filter_faben', $arrData['default'], 'filter_faben', tl_iso_product, $objProduct);

echo $arrField['label'];

Так что в зависимости от того, где вы находитесь в коде, я не знаю, где вы собираетесь получить $objProduct

0

Другие решения

Я нашел решение этой странной вещи. Кажется, он не самый лучший, но работает:

   /**
* @param string    $id                 - returned id of attribute
* @param string    $field              - attribute alias
* @return string     $t[0]['label']   - attribute name
*/
function getAttributeNameByID($id, $field) {
$objAttribute=$GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$field];
$t = $objAttribute->getOptionsForProductFilter(array($id));
return $t[0]['label'];
}
0