Contao: Radio/Checkbox 菜单 - 带有选项管理器的产品属性
Contao: Radio/Checkbox menu - Product attribute with Options Manager
同位素电商
在后端,我将一些产品属性设置为 Checkbox/Radio 按钮菜单,并使用选项管理器设置了这些值。
示例:名称为 filter_farben
的字段(见图:settings for attribute field)
在产品的前端,如果我使用 generateAttribute('filter_farben') 或检查原始数据,我只能看到来自 tl_iso_attribute_option
table ( 34 - 见第二张图片:tl_iso_attribute_option table)。
我怎样才能得到这些字段的标签(在本例中 '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'];
}
同位素电商
在后端,我将一些产品属性设置为 Checkbox/Radio 按钮菜单,并使用选项管理器设置了这些值。
示例:名称为 filter_farben
的字段(见图:settings for attribute field)
在产品的前端,如果我使用 generateAttribute('filter_farben') 或检查原始数据,我只能看到来自 tl_iso_attribute_option
table ( 34 - 见第二张图片:tl_iso_attribute_option table)。
我怎样才能得到这些字段的标签(在本例中 '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'];
}