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

时间:2015-01-09 15:20:30

标签: php contao

同位素电子商务

在后端我已经将一些产品属性作为Checkbox / Radio按钮菜单,我使用选项管理器放置了值。 示例:名称为filter_farben的字段(参见图片:settings for attribute field

如果我使用generateAttribute('filter_farben')或检查原始数据,在产品的前端,我只看到tl_iso_attribute_option表中字段的ID(34为此 - 请参阅第二张图片: tl_iso_attribute_option table)。 如何获得这些字段的标签(在本例中为'Natur')?

谢谢!

2 个答案:

答案 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']; 
    }