私は Magento のマスグリッド オプションに取り組んでいます。問題は、indexController が読み込まれないことです。クラスの宣言に問題があると思います。
これは私のconfig.xmlです
<config>
<global>
<blocks>
<adminhtml>
<rewrite>
<sales_order_grid>Comp_Dhl_Block_Sales_Order_Grid</sales_order_grid>
</rewrite>
<events>
<core_block_abstract_prepare_layout_before>
<observers>
<Dhl_core_block_abstract_prepare_layout_before>
<class>Dhl/observer</class>
<method>addMassAction</method>
</Dhl_core_block_abstract_prepare_layout_before>
</observers>
</core_block_abstract_prepare_layout_before>
</events>
</adminhtml>
</blocks>
<admin>
<routers>
<todhl>
<use>admin</use>
<args>
<module>Comp_Dhl</module>
<frontName>todhl</frontName>
</args>
</todhl>
</routers>
</admin>
</global>
</config>
これは私のGrid.phpです
class Comp_Dhl_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid
{
protected function _prepareMassaction()
{
parent::_prepareMassaction();
$this->getMassactionBlock()->addItem(
'to_dhl',
array('label' => $this->__('Sent to [DHL]'),
'url' => $this->getUrl('/*/*/toDhl'),
)
);
}
}
一括オプション: [[DHL] に送信済み] は問題なく表示されます。私は私のURLにこれを持っているので:$this->getUrl('/*/*/toDhl')
私は追加する必要があります:public function toDhlAction()
私のindexController.phpに
私の indexController.php は次のようになります。
class Comp_Dhl_IndexController extends Mage_Adminhtml_Controller_Action
{
public function toDhlAction(){
mail('to@me.com', 'controller works', 'the mass action controller works');
$this->_redirect('*/*/index');
}
}
ここに問題があります。indexController.php がトリガーするはずのメールが届かないからです。
何かご意見は?