1

私はmagentoクラスをオーバーライドしようとしています

class Mage_Adminhtml_Controller_Sales_Invoice extends Mage_Adminhtml_Controller_Action

ディレクターとファイル local/myModules/Adminhtml/Controller/Sales/Invoice.php を作成しました。そのコードは次のとおりです。

include_once("Mage/Adminhtml/controller/Sales/Invoice.php");


class myModules_Adminhtml_Controller_Sales_Invoice extends Mage_Adminhtml_Controller_Sales_Invoice
{
    public function printAction()
   {
    echo "child class";exit;
    if ($invoiceId = $this->getRequest()->getParam('invoice_id')) {
        if ($invoice = Mage::getModel('sales/order_invoice')->load($invoiceId)) {
            $pdf = Mage::getModel('sales/order_pdf_invoice')->getPdf(array($invoice));
            $this->_prepareDownloadResponse('invoice'.Mage::getSingleton('core/date')->date('Y-m-d_H-i-s').
                '.pdf', $pdf->render(), 'application/pdf');
        }
    }
    else {
        $this->_forward('noRoute');
    }
  }
}

local/myModules/Adminhtml/config.xml は

  <?xml version="1.0"?>
  <config>
<modules>
    <myModules_Adminhtml>
        <version>1.1</version>
    </myModules_Adminhtml>
</modules>


<global>
        <blocks>
            <adminhtml>
                <rewrite>
                  <sales_order_view>myModules_Adminhtml_Block_Sales_Order_View</sales_order_view>
                </rewrite>
            </adminhtml>
        </blocks>
    </global>

<admin>
        <routers>
            <adminhtml> 
                <use>admin</use>
                <args>
                    <modules> 
                        <myModules_Adminhtml before="Mage_Adminhtml">myModules_Adminhtml</myModules_Adminhtml>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>

ブラウザで私はURLを持っています

/index.php/admin/sales_order_invoice/print/invoice_id/49191/

ただし、「子クラス」は表示されません。

実際には、請求書の印刷機能をオーバーライドしたいと考えています。XML で不足しているものは何ですか?

4

1 に答える 1