我需要在目录产品编辑视图的“图像”选项卡的顶部添加一些内容。我不想添加新标签,我想在现有标签中包含一些内容(自定义块)。
我看过很多关于如何添加一个新标签页的教程,但是关于如何编辑现有标签页却一无所获。
我设法在事件“ 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-> getLayout()-> createBlock('adminhtml / catalog_product_helper_form_gallery_content')-> toHtml()不足以重新创建图像选项卡。
不知道我是否朝着正确的方向前进。
任何提示将不胜感激。
我找到了实现目标的另一种方法,这就是我所做的。
我以这种方式覆盖了类“ Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery”的toHtml()方法:
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>
不知道这是否是最好的方法,但是它是否有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句