2016-04-06 13 views
0

Manage Products - >Edit製品 - >Images私は2つの新しい列(catalog_product_entity_media_gallery_valueテーブルにあります)を追加しました。Magento管理パネルにカスタムフィールドを保存する方法

これらの2つの列は、メディアがインポートされるたびに入力され、各フィールドには値のみが表示されます(新しい値を入力することはできません)。フロントエンドでも使用されています。 自分のテーマで正しい管理用テンプレートファイルを修正し、新しいproduct.jsを作成して2つの新しいフィールドを表示しました。 これまでのところすべてが意図どおりに機能しています。

しかし、ユーザがImagesセクションで何かを修正しようとすると、イメージのラベルや位置、私の2つのカスタムフィールドは保存されず、MagentoはNULLの値を与えます。

2つの新しい列は入力フィールドではないので、私はMagentoがそれを更新しないと思っていますが、そうではないようです。私は自分のカスタム値を追加できるように、ラベルと位置がImagesセクションのために保存されている場所を見つけようとしていましたが、見つけられませんでした。誰かが正しい方向に私を指摘することができますか?

または、catalog_product_save_afterイベントを聞いて、カスタム値を保存するオブザーバーを作成する方がよいでしょうか?

ご協力いただきありがとうございます。ありがとうございます。

答えて

0

最後に、以前の検索で見つけられませんでした。他人を助けることができる場合に備えて、私は自分自身でそれに答えるだろう。コードはafterSave関数内のMage_Catalog_Model_Product_Attribute_Backend_Mediaクラスにあります。 あなたがしなければならないことは、それを書き換えることだけです。

config.xmlが含まれている必要があり、以下:

<models> 
    <catalog_resource> 
     <rewrite> 
      <product_attribute_backend_media> 
       Namespace_Module_Model_Resource_Product_Attribute_Backend_Media 
      </product_attribute_backend_media> 
     </rewrite> 
    </catalog_resource> 
</models> 

とクラスは次のようになります。Namespace_Module_Model_Product_Attribute_Backend_Media extends Mage_Catalog_Model_Product_Attribute_Backend_Media

関連する問題