私は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 で不足しているものは何ですか?