2012-03-28 21 views
0

私は多くの属性と属性セットを含むMagentoサイトを持っています。それぞれのカテゴリには独自のセットがあり、顧客はカテゴリと商品のビューにどのカテゴリに属する​​かによって異なる属性を表示することを望んでいます。switch/ifステートメントではこれは簡単に実行できますが、可能であればハードコーディングしたいプロパティを追加して属性を拡張する

私の考えは、呼び出された属性に新しいプロパティを追加することでした。 'display_on_frontend'これをループ内で使用して、属性を表示するかどうかを確認できます。これは可能なのでしょうか?

最初に使用したかったフロントエンドの[プロダクトビュー]ページに[Visible]という名前のプロパティがありますが、その属性を取得するとそのデータでは使用できません。ここで

は、私は、製品のビューの属性

$_attributes = Mage::getModel('catalog/product_attribute_api')->items($_product->getAttributeSetId()); 

foreach ($_attributes as $_attribute) : 
    $attributeFull = Mage::getResourceModel('eav/entity_attribute_collection') 
               ->setCodeFilter($_attribute['code']) 
               ->getFirstItem(); 
endforeach; 

を取得するために使用していたコードだ返されるものの例応答が

[_data:protected] => Array 
    (
     [attribute_id] => 139 
     [entity_type_id] => 4 
     [attribute_code] => safe_working_load_range_tonnes 
     [attribute_model] => 
     [backend_model] => 
     [backend_type] => int 
     [backend_table] => 
     [frontend_model] => 
     [frontend_input] => select 
     [frontend_label] => Safe Working Load (Tonnes) 
     [frontend_class] => 
     [source_model] => eav/entity_attribute_source_table 
     [is_required] => 0 
     [is_user_defined] => 1 
     [default_value] => 
     [is_unique] => 0 
     [note] => 
    ) 

で誰でも拡張する方法上の任意の提案を持っています属性または問題に対処する合理的な方法で?あなたが属性を作成したとき

は、はい/いいえそれはラベルされた「フロントエンドの製品表示ページに表示」のselectがあります、バックエンドではあなたに

答えて

0

ありがとうございます。

[カタログ]> [属性]> [属性の管理]>属性「display_on_frontend」>「フロントエンドプロパティ」>「フロントエンドのプロダクトビューページに表示」を「はい」に変更します。そして、その属性の値にアクセスするための

、あなたは簡単に呼び出すことができます。

$_product->getData("display_on_frontend"); 

またはちょうどキャメルケースゲッター使用:

$_product->getDisplayOnFrontend(); 
+0

こんにちは、マイク、返信するためのおかげで。申し訳ありませんが、私は自分自身を適切に説明していませんが、新しい属性自体ではなく、属性に新しいプロパティを作成する必要があります。それは大丈夫です、時間の不足のために、ハードコーディングされたパスではありますが、別のものになってしまいましたが、もし誰かが知っていれば、それが可能かどうか聞くことに興味があります... – Paul

関連する問題