我需要在目录产品编辑视图的图像选项卡顶部添加一些内容。我不想添加新选项卡,我想在现有选项中包含一些内容(自定义块)。
我已经看过很多关于如何添加全新标签的教程,但没有关于如何编辑现有标签的内容。
我设法在事件上创建一个观察者" core_block_abstract_prepare_layout_after":
<core_block_abstract_prepare_layout_after>
<observers>
<edit_images_tab>
<type>singleton</type>
<class>custom_module/observer</class>
<method>editImagesTab</method>
</edit_images_tab>
</observers>
</core_block_abstract_prepare_layout_after>
并删除并重新创建相同位置的标签:
public function editImagesTab(Varien_Event_Observer $observer) {
$block = $observer->getEvent()->getBlock();
if ($block instanceof Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs) {
$block->removeTab('group_10');
$block->addTabAfter(
'group_10',
array(
'label' => 'Upload Product Files',
'content' => $block->getLayout()->createBlock('adminhtml/catalog_product_helper_form_gallery_content')->toHtml() . 'custom content'
),
'group_9'
);
}
}
无论如何,似乎$ block-&gt; getLayout() - &gt; createBlock(&#39; adminhtml / catalog_product_helper_form_gallery_content&#39;) - &gt; toHtml()不足以重新创建图片标签。
不确定我是否朝着正确的方向前进。
任何提示都将不胜感激。
答案 0 :(得分:1)
我找到了另一种实现目标的方法,这就是我所做的。
我已经覆盖了该类的方法toHtml()&#34; Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery&#34;就这样:
class Custom_Module_Block_Adminhtml_Catalog_Product_Helper_Form_Gallery
extends Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery {
public function toHtml() {
$myBlock = Mage::getSingleton('core/layout')->createBlock('custom_module/custom_block')->toHtml();
return $myBlock . parent::toHtml();
}
}
并在config.xml文件中添加:
<global>
<blocks>
<adminhtml>
<rewrite>
<catalog_product_helper_form_gallery>Custom_Module_Block_Adminhtml_Catalog_Product_Helper_Form_Gallery</catalog_product_helper_form_gallery>
</rewrite>
</adminhtml>
</blocks>
</global>
不确定这是否是最佳方法,但它有效。