Magento - Как переопределить административный блок Итоги продаж (Mage_Adminhtml_Block_Sales_Totals)

Я пытаюсь переопределить блок "Итоги продаж администратора" (Mage_Adminhtml_Block_Sales_Totals), расположенный в папке "/app/code/core/Mage/Adminhtml/Block/Sales/Totals.php".

Я объявляю свой модуль следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <CompanyName_Adminhtml>
            <version>0.1.0</version>
        </CompanyName_Adminhtml>
    </modules>

    <global>
        <blocks>

            <companyname_adminhtml>
                <class>CompanyName_Adminhtml_Block_Adminhtml_Sales_Totals</class>
            </companyname_adminhtml>

            <adminhtml>
                <rewrite>
                    <sales_totals>CompanyName_Adminhtml_Block_Adminhtml_Sales_Totals</sales_totals>
                </rewrite>
            </adminhtml>

        </blocks>
    </global>
</config>

Мой путь к классу модуля выглядит следующим образом: local/CompanyName_Adminhtml/Block/Adminhtml/Sales/Totals.php

и мой код класса начинается так:

class CompanyName_Adminhtml_Block_Adminhtml_Sales_Totals extends Mage_Adminhtml_Block_Sales_Totals   {
        // block methods goes here..
    }           

К сожалению, переопределение класса не работает, и я не получаю никаких ошибок в файлах журнала. Я использую Magento версии 1.7.0.2

В офисе magento я вижу, что мой модуль включен.

Любая помощь?

1 ответ

Попробуйте переопределить отдельный блок Totals.php, который находится в папке Mage/AdminHtml/Block/Sales/Order/ file, а не в главном файле Totals.php в папке Mage / AdminHtml / Block / Sales /.

Это сработало для меня. Как я хотел показать еще одну строку в блоке итоговых заказов.

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <CompanyName_Adminhtml>
            <version>0.1.0</version>
        </CompanyName_Adminhtml>
    </modules>

    <global>
        <blocks>
           <companyName_adminhtml>
                <class>CompanyName_Adminhtml_Block</class>
            </companyName_adminhtml>
            <companyname_adminhtml>
                <class>CompanyName_Adminhtml_Block_Adminhtml_Sales_Totals</class>
            </companyname_adminhtml>

            <adminhtml>
                <rewrite>
                    <sales_order_totals>CompanyName_Adminhtml_Block_Adminhtml_Sales_Totals</sales_totals>
                </rewrite>
            </adminhtml>

        </blocks>
    </global>
</config>


then class 
class CompanyName_Adminhtml_Block_Adminhtml_Sales_Order_Totalsextends Mage_Adminhtml_Block_Sales_Order_Totals {

    protected function _initTotals() {
        parent::_initTotals();

        $this->_totals['foo_total'] = new Varien_Object(array(
            'code'      => 'purchasewrapping_total',
            'value'     => $this->getSource()->getFooTotal(),
            'base_value'=> $this->getSource()->getBaseFooTotal(),
            'label'     => $this->helper('sales')->__('Foo'),
        ));
        return $this;
    }

}`enter code here`
Mage_Adminhtml_Block_Sales_Order_Totals  is extends at Mage_Adminhtml_Block_Sales_Totals
and here you can extend and write your changes
Другие вопросы по тегам