我想覆盖“Oauth”中出现的magento核心控制器类。模块。 法/的Oauth /控制器/ Adminhtml /的Oauth / AuthorizeController.php
模块声明xml:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<DS_Adminextended>
<active>true</active>
<codePool>local</codePool>
</DS_Adminextended>
</modules>
</config>
&#13;
我的config.xml是:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<DS_Adminextended>
<version>1.0.0</version>
</DS_Adminextended>
</modules>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<DS_Adminextended before="Mage_Adminhtml">DS_Adminextended</DS_Adminextended>
</modules>
</args>
</adminhtml>
</routers>
</admin>
</config>
&#13;
我也使用过这个,但是要保留:
<modules>
<DS_Adminextended before="Mage_Adminhtml">DS_Adminextended_Adminhtml_Oauth</DS_Adminextended>
</modules>
&#13;
并扩展了AuthorizeController.php:
<?php
require_once("Mage/Oauth/Adminhtml/Oauth/AuthorizeController.php");
die('bla bla bla');
class DS_Adminextended_Adminhtml_Oauth_AuthorizeController extends Mage_Oauth_Adminhtml_Oauth_AuthorizeController {
public function indexAction()
{
echo 'extendedController';exit;
$this->_initForm();
$this->_initLayoutMessages($this->_sessionName);
$this->renderLayout();
}
}
&#13;
但它没有包含扩展文件。 这个&#39; Adminhtml&#39;出现在Mage / Oauth文件夹中,而不是Mage:Adminhtml 所以问题是我们如何在非管理模块下扩展管理控制器类,如: 1)Mage / Oauth / controllers / Adminhtml / Oauth / AuthorizeController.php 要么 2)Mage / Widget / controllers / Adminhtml / Widget / InstanceController.php
我在上面的代码中缺少什么?
答案 0 :(得分:0)
你在require_once路径中犯了一个错误,错过了controllers目录。 尝试
require_once 'Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php';
答案 1 :(得分:0)
我找到了解决方案:
<admin>
<routers>
<adminhtml>
<args>
<modules>
<DS_Adminextended before="Mage_Oauth">DS_Adminextended_Adminhtml</DS_Adminextended>
</modules>
</args>
</adminhtml>
</routers>
</admin>
&#13;
如果您想扩展Mage :: admin中不存在的管理模块,这是正确的配置文件 魔术在这里:
<modules><DS_Adminextended before="Mage_Oauth">DS_Adminextended_Adminhtml</DS_Adminextended></modules>
&#13;
你必须放置&#34; Mage_Oauth&#34;之前改为&#34; Mage_Adminhtml&#34;即使它出现在adminhtml中。其次 控制器调用的路径应为&#34; DS_Adminextended_Adminhtml &#34;即使您的基础控制器内部还有一个目录,就像我的情况一样,根据核心目录&#39; DS_Adminextended_Adminhtml_Oauth &#39;
希望这会对某人有所帮助并节省时间,如果有帮助,请排名: - )