在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事件并创建一个观察者来保存我的自定义值会更好吗?
任何帮助都会很棒,谢谢。
答案 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;
}