Изотоп электронной коммерции
В бэкэнде я сделал некоторые атрибуты продукта как меню «Флажок / переключатель» и поместил значения с помощью диспетчера параметров.
Пример: поле с именем filter_farben
(см. изображение: настройки для поля атрибута)
В интерфейсе продукта, если я использую generateAttribute (‘filter_farben’) или проверяю необработанные данные, я вижу только идентификатор поля из tl_iso_attribute_option
Таблица (34 для этого — см. второе изображение: таблица tl_iso_attribute_option).
Как я могу получить метку этих полей (в данном случае «Natur»)?
Спасибо!!
Тем не менее, я не уверен, чего вы хотите достичь и где находитесь в своем коде. Позвольте мне получить ярлык для вас:
$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
Я нашел решение этой странной вещи. Кажется, он не самый лучший, но работает:
/**
* @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'];
}