过去很多天我一直试图完成这项工作。不太了解逻辑。这就是我在做什么。
我想为为产品分配视频创建 Magento 1.9.x 扩展程序。我已经完成了视频部分。我被困在如何将它们分配给特定产品。我想在产品编辑页面中显示网格,就像Related,Upsell,Cross Sell产品一样。应使用我的自定义模型中的视频信息填充此网格。
我已经研究了很多,我可以找到解释如何将其他产品分配给特定产品的文章。我还阅读了有关 Grid Serializer 的工作的文章。但没有文章谈到将我的自定义模型(表)实体与特定产品分配。我也试图通过相关产品的逻辑,但我不太了解它。
我到这儿做了。我正在网格中显示我的视频。
但我无法保存它们。当我尝试编辑现有产品时,它们也不起作用。这是因为我不清楚逻辑。有人可以分享一下吗?将获得任何形式的帮助。谢谢!
答案 0 :(得分:0)
在网格序列化程序中,您选择了所选视频的参数名称,如:
<action method="initSerializerBlock">
<grid_block_name>[[videos grid class]]</grid_block_name>
<data_callback>getSelectedProducts</data_callback>
<hidden_input_name>selected_videos</hidden_input_name>
<reload_param_name>selected</reload_param_name>
</action>
如果没有,只需添加即可。 现在,您应该创建一个观察者,以便在保存时将所选视频与当前产品相关联,您可以将其添加到adminhtml中的事件catalog_product_prepare_save中。 被调用的方法应该做类似的事情:
$selectedVideos = Mage::app()->getRequest()->getPost('selected_videos', []);
$product->setData('custom_attribute_for_videos',
Mage::helper('adminhtml/js')->decodeGridSerializedInput($selectedVideos)
);
custom_attribute_for_videos是您要用于将视频与产品相关联的产品属性(类型数组)的代码。否则,只要需要,您可以创建联合表(products_videos)并通过将观察者中的数据(视频和产品ID)设置为关系模型并保存它来保存关系。