1

addAttribute()メソッドを使用してインストールスクリプトを介してフォーム要素を追加できることを知っています。ただし、[全般]、[表示設定]などの横にまったく新しいタブを表示したいと思います。複雑にしすぎずにそれを行う最も簡単な方法は何だろうか。

4

2 に答える 2

3

モジュールの他の部分を実行する方法をすでに知っていると仮定します。以下をオーバーライドする必要があります:

Mage_Adminhtml_Block_Catalog_Category_Tabs

config.xmlで、次のことを行います。

    <blocks>           
         <adminhtml>  
            <rewrite> 
                 <catalog_category_tabs>YouModule_Block_Catalog_Category_Tabs</catalog_category_tabs>  
            </rewrite>  
        </adminhtml>  
    </blocks>

_prepareLayout関数をオーバーライドする必要があります。

そして、あなたはこのコードを書きます:

$this->addTab('idname', array(
                'label'     => Mage::helper('catalog')->__('Tab name'),
                'content'   => $this->getLayout()->createBlock('yourmodule/yourblock')->toHtml(),
        ));

    return parent::_prepareLayout();  
于 2012-12-06T19:53:48.383 に答える
2

ブロックを書き換える代わりに、イベントをリッスンしてから、adminhtml_catalog_category_tabsオブザーバーで次のようなことを行うこともできます。

$tabs = $observer->getTabs();
$tabs->addTab('myextratab', array(
    'label'     => Mage::helper('catalog')->__('My Extra Tab'),
    'content'   => 'Here is the contents for my extra tab'
));

これは、異なる拡張機能間で発生する可能性のある書き換えの競合を防ぐのに役立ちます。

于 2014-01-16T21:23:13.087 に答える