同位素电子商务
在后端我已经将一些产品属性作为Checkbox / Radio按钮菜单,我使用选项管理器放置了值。
示例:名称为filter_farben
的字段(参见图片:settings for attribute field)
如果我使用generateAttribute('filter_farben')或检查原始数据,在产品的前端,我只看到tl_iso_attribute_option
表中字段的ID(34为此 - 请参阅第二张图片: tl_iso_attribute_option table)。
如何获得这些字段的标签(在本例中为'Natur')?
谢谢!
答案 0 :(得分:0)
我仍然不确定你想要实现什么以及你在代码中的位置。让我为你找标签:
$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
答案 1 :(得分: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'];
}