我想编辑从这里生成的报告,example.com/index.php/admin/sales_order/index/
。我需要在右侧的下拉菜单中添加一个新的报告。控制器未加载?
我通过url将此页面追踪到它的控制器并抛弃了该类。 app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php indexAction()
并得到这个类Ext4mage_Html2pdf_Sales_OrderController
,所以我知道它被一个模块覆盖。在这种情况下,Ext4mage Html2pdf模块。
该控制器仅仅使用覆盖PDF方法,
require_once BP.'/app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php';
class Ext4mage_Html2pdf_Sales_OrderController extends Mage_Adminhtml_Sales_OrderController{
//etc }
所以我创建了一个地方我的新模块,希望能改写这个,因为它是在社区。 app/code/local/Daves/OrderModule/controllers/Sales/OrderController.php
并放置在下面。
require_once 'Mage'.DS.'Adminhtml'.DS.'controllers'.DS.'Sales'.DS.'OrderController.php';
require_once BP.'/app/code/community/Ext4mage/Html2pdf/controllers/Sales/OrderController.php';
class Daves_OrderModule_Sales_OrderController extends Ext4mage_Html2pdf_Sales_OrderController{
public function indexAction(){
die();
return parent::indexAction();
}
}
我预期的功能将是重装后在管理销售/订单页面,我会得到一个空白页,我不知道。这意味着我的控制器没有被加载。
我的IDE是示出了类被扩展,并把一个die()
成indexAction()
方法在Ext4mage_Html2pdf控制器按预期方式工作。这只是因为某种原因错过了我的控制器。
尝试直接使用example.com/admin/daves_ordermodule/sales_order/index
也是一个浏览器中点击控制器抛出一个404
我应该尝试覆盖块呢?
我还没有在我的配置中创建任何时髦的<rewrite>
更新句柄,主要是因为我不确定是否需要它们,或者它们会去哪里。正如我所知,Magento从Zend那里获得了可怕的XML使用,我将在这里粘贴我的配置。
app/etc/modules/Daves_OrderModule.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Daves_OrderModule>
<active>true</active>
<codePool>local</codePool>
<depends> <!-- same as in the /app/etc/Mage_All.xml -->
<Mage_Reports/>
<Mage_Adminhtml/>
<Ext4mage_Html2pdf/>
</depends>
</Daves_OrderModule>
</modules>
</config>
app/code/local/Daves/OrderModule/etc/config.xml
0.1
app/code/community/Ext4mage/Html2pdf/etc/config.xml
具体节点
<admin>
<routers>
<html2pdf>
<use>admin</use>
<args>
<module>Ext4mage_Html2pdf</module>
<frontName>html2pdf</frontName>
</args>
</html2pdf>
<emailattachments>
<args>
<modules>
<Ext4mage_Html2pdf before="Fooman_EmailAttachments">Ext4mage_Html2pdf</Ext4mage_Html2pdf>
</modules>
</args>
</emailattachments>
<adminhtml>
<args>
<modules>
<Ext4mage_Html2pdf before="Mage_Adminhtml">Ext4mage_Html2pdf</Ext4mage_Html2pdf>
</modules>
</args>
</adminhtml>
</routers>
</admin>
您已经完成了比您需要的更多功能: - )...请从Ext4mage_Html2pdf模块中添加相关的''配置文件,您将得到我或其他人的答案。 –
benmarks
2012-04-25 16:06:03
嗨@benmarks我现在已经包括从etc/config的路由器节点为Html2pdf – 2012-04-26 08:29:16
嗨阅读下面的文章是控制器重写最好的解决方案http://www.forum2tech.com/discussion/38/controller-file-was项目1 – 2012-09-22 07:50:43