2010-05-27 1 views
1

Мне нужно добавить новое действие в ActionList на странице Invoices
Я не знаю, где magento создает этот список и как он вызывает выбранное действие, поэтому я думал, что вы, ребята, знаете где я должен начать искать ...Добавить новое действие в ActionList счета-фактуры

Спасибо!
Jonathan

ответ

2

Класс, который вы хотите переопределить, - Mage_Adminhtml_Block_Sales_Invoice_Grid. Скопируйте этот файл в локальном пространстве (так что вы будете иметь app/code/local/Mage/Adminhtml/Block/Sales/Invoice/Grid.php), а затем измените следующие функции:

protected function _prepareMassaction() 
{ 
    $this->setMassactionIdField('entity_id'); 
    $this->getMassactionBlock()->setFormFieldName('invoice_ids'); 

    $this->getMassactionBlock()->addItem('pdfinvoices_order', array(
     'label'=> Mage::helper('sales')->__('PDF Invoices'), 
     'url' => $this->getUrl('*/*/pdfinvoices'), 
    )); 

    // your action goes here 
    $this->getMassactionBlock()->addItem('handle', array(
     'label'=> Mage::helper('sales')->__('Your Action Label'), 
     'url' => $this->getUrl('path/to/your/action'), 
    )); 

    return $this; 
} 

Надежда, что помогает!

Thanks, Joe

+0

спасибо! Единственная мелочь в вашем решении заключается в том, что это не локальный каталог, а основная папка ... – Jonathan

+0

Как я уже сказал в начале сообщения, скопируйте файл из основной папки в локальный каталог. Если вы измените базовую версию, она будет перезаписана при следующем обновлении сценария. В локальной папке (или даже лучше, если вы переопределите блок с одним в своем модуле), вы можете быть более безопасным из этой проблемы и можете обновить. –

Смежные вопросы