2016-03-30 23 views
3

我一直在试图让这个过去很多天完成。不太理解逻辑。这是我正在做的。如何实现像Magento相关产品的网格?

我想创建一个Magento 1.9.x扩展为分配视频产品。我已经完成了视频部分。我被困在如何将它们分配给特定产品。我想在产品编辑页面显示网格,就像Related,Upsell,Cross Sell产品一样。这个网格应该填充来自我自定义模型的视频信息。

我已经研究了很多,我可以找到解释如何将其他产品分配给特定产品的文章。我还阅读了Grid Serializer的相关文章。但是没有文章谈及将我的自定义模型(表)实体分配给特定产品。我也尝试去了解相关产品的逻辑,但我并不完全理解它。

我已经完成了这里。我正在网格中显示我的视频。

enter image description here

但我没能拯救他们。当我尝试编辑现有产品时,它们也不工作。这是因为我对逻辑不清楚。有人可以分享一些这方面的灯​​光?将感谢任何形式的帮助。谢谢!

回答

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)设置为关系模型并保存它们来保存关系。

相关问题