Magento — 2 расширения с использованием Sales Order Gri

Привет, пытаемся заставить 2 расширения работать в сетке заказов на продажу, действиях массового заказа Amasty и Orders2CSV.

В настоящее время Orders2CSV находится в списке и отлично работает. Он имеет следующий код для перезаписи Sales_Order_Grid:

    <?php
/**
 * Ext4mage Orders2csv Module
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to Henrik Kier <[email protected]> so we can send you a copy immediately.
 *
 * @category   Ext4mage
 * @package    Ext4mage_Orders2csv
 * @copyright  Copyright (c) 2012 Ext4mage (http://ext4mage.com)
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 * @author     Henrik Kier <[email protected]>
 * */ class Ext4mage_Orders2csv_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid {  const XPATH_CONFIG_SETTINGS_IS_ACTIVE       = 'orders2csv/settings/is_active';

    protected function _prepareMassaction()     {
        parent::_prepareMassaction();
        if (Mage::getStoreConfig(self::XPATH_CONFIG_SETTINGS_IS_ACTIVE)) {

            $this->getMassactionBlock()->addItem('orders2csv', array(
                 'label'=> Mage::helper('sales')->__('Orders2CSV'),
                 'url'  => $this->getUrl('*/sales_order_orders2csv/makecsv'),
            ));
        }     } } ?>

Однако у MassActions есть следующее, что я считаю вместо того, чтобы перезаписывать исходный блок, который он добавляет к нему:

<?php
/**
* @author Amasty Team
* @copyright Copyright (c) 2010-2011 Amasty (http://www.amasty.com)
* @package Amasty_Oaction
*/
class Amasty_Oaction_Block_Adminhtml_Widget_Grid_Massaction extends Mage_Adminhtml_Block_Widget_Grid_Massaction
{
    public function isAvailable()
    {
        Mage::dispatchEvent('am_grid_massaction_actions', array(
            'block' => $this,
            'page'  => $this->getRequest()->getControllerName(),
        ));  

        return parent::isAvailable();
    }    

    public function getJavaScript()
    {
        $result = new Varien_Object(array(
            'js'   => parent::getJavaScript(),
            'page' => $this->getRequest()->getControllerName(),
        ));        

        Mage::dispatchEvent('am_grid_massaction_js', array('result' => $result));

        return $result->getJs();
    }
}

Есть идеи, как добавить код MassAction в код Orders2CSV?

Любая помощь будет принята с благодарностью

Энди


person user2758730    schedule 08.09.2013    source источник


Ответы (2)


Было бы полезно, если бы вы также добавили файл config.xml.

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

person Tobias    schedule 08.09.2013

Как видите, конфликтов нет, так как одно расширение переписывает этот класс:

Mage_Adminhtml_Block_Sales_Order_Grid

а второй переписывает следующий класс:

Mage_Adminhtml_Block_Widget_Grid_Massaction

Наверное, все, что вам нужно, это включить действия в настройках модуля.

person Amasty    schedule 23.07.2014