Magento如何在管理面板中保存自定义字段

时间:2016-04-06 08:45:00

标签: php magento

Manage Products - > Edit产品 - > Images我添加了2个新列(位于catalog_product_entity_media_gallery_value表中)。

每次导入媒体时都会填充这两列,每个字段仅显示值(您无法输入新值)。它也用在前端。 我已经在我自己的主题中修改了正确的管理模板文件,并创建了一个新的product.js来显示2个新字段。 到目前为止,一切都按预期工作。

但是,每当用户尝试修改Images部分中的某些内容时,请说明图片的标签或位置,我的2个自定义字段不会保存,Magento会为其提供NULL值。

因为2个新列不是输入字段,我认为Magento不会更新它,但看起来确实如此。我一直试图找到为Images部分保存标签和位置的位置,以便我可以添加自定义值,但我无法找到它。有人能指出我正确的方向吗?

或者听一下catalog_product_save_after事件并创建一个观察者来保存我的自定义值会更好吗?

任何帮助都会很棒,谢谢。

1 个答案:

答案 0 :(得分:0)

终于找到了,我在之前的搜索中错过了它。我会自己回答,以防它可以帮助别人。代码位于afterSave类中,位于<models> <catalog_resource> <rewrite> <product_attribute_backend_media> Namespace_Module_Model_Resource_Product_Attribute_Backend_Media </product_attribute_backend_media> </rewrite> </catalog_resource> </models> 函数内。 你所要做的就是重写它。

Config.xml应包含以下内容:

Namespace_Module_Model_Product_Attribute_Backend_Media extends Mage_Catalog_Model_Product_Attribute_Backend_Media

课程应该是:[WebGet] public List<callersW> GetCallersByCallerIdF(string callerid, string table) { testCDREntities1 context = this.CurrentDataSource; List<callersW> result = context.Database.SqlQuery<callersW>("SELECT CallerId,CalledID,Created, " + " Answered,Destroyed,DisconnectionCode,RTP_Caller_G107MOS,RTP_Caller_LostPackets, " + " RTP_Caller_MaxRfc3550Jitter,RTP_Caller_MeanRfc3550Jitter,RTP_Called_G107MOS, " + " RTP_Called_LostPackets,RTP_Called_MaxRfc3550Jitter,RTP_Called_MeanRfc3550Jitter FROM '"+table+"' where CallerId = '"+ callerid +"'").ToList(); return result; }