Wie kann ohne einen Rewrite des Mage_Adminhtml_Block_Sales_Order_Grid eine Massenaktion hinzufügen?
In der config.xml
<events> <core_block_abstract_prepare_layout_before> <observers> <advancedpicklist_prepare_layout_before> <type>singleton</type> <class>meinmodul/observer</class> <method>addPicklistMassaction</method> </advancedpicklist_prepare_layout_before> </observers> </core_block_abstract_prepare_layout_before> </events>
In im Observer.php
function addPicklistMassaction(Varien_Event_Observer $observer) { $block = $observer->getEvent ()->getBlock (); $grid = $block->getLayout ()->getBlock ( 'sales_order.grid' ); if ($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction && $grid != null && $grid instanceof Mage_Adminhtml_Block_Sales_Order_Grid) { $block->addItem ( 'sendPicklist', array ( 'label' => Mage::helper ( 'advancedpicklist' )->__ ( 'Send Picklists' ), 'url' => Mage::app ()->getStore ()->getUrl ( 'advancedpicklist/index/massSendPicklist' ) ) ); } return $this; }
Leider hat der Mage_Adminhtml_Block_Widget_Grid_Massaction noch keinen Parent, wenn die vorhandenen Events ausgeführt werden. Daher schauen wir mit Hilfe des Layouts nach ob wir das „sales_order.grid“ erstellen.
Warum es dafür keinen einfacheren Weg gibt, zum Beispiel indem direkt ein Event dafür angeboten wird, vermag ich nicht sagen.