Contao:单选/复选框菜单-带选项管理器的产品属性



同位素电子商务

在后台,我制作了一些产品属性作为复选框/单选按钮菜单,并使用选项管理器设置了值。示例:名称为filter_farben的字段(见图:属性字段设置(

在产品的前端,如果我使用generateAttribute('filter_farben'(或检查原始数据,我只会看到tl_iso_attribute_option表中字段的ID(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']; 
    } 

最新更新