1

アイソトープの電子商取引

バックエンドでは、いくつかの製品属性をチェックボックス/ラジオ ボタン メニューとして作成し、オプション マネージャーを使用して値を設定しました。例: 名前付きフィールドfilter_farben(図を参照:属性フィールドの設定)

製品のフロントエンドで generateAttribute('filter_farben') を使用するか生データをチェックすると、tl_iso_attribute_optionテーブルからのフィールドの ID のみが表示されます (これについては 34 - 2 番目の画像: tl_iso_attribute_option テーブルを参照)。これらのフィールドのラベル (この場合は「Natur」) を取得するにはどうすればよいですか?

ありがとう!!

4

2 に答える 2

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']; 
    } 
于 2015-01-14T09:25:40.810 に答える
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

于 2015-01-12T13:06:42.240 に答える