Magento Oauth Adminhtml控制器类覆盖

时间:2015-05-21 19:32:50

标签: magento

我想覆盖“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;
&#13;
&#13;

我的config.xml是:

&#13;
&#13;
<?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;
&#13;
&#13;

我也使用过这个,但是要保留:

&#13;
&#13;
<modules>
 <DS_Adminextended before="Mage_Adminhtml">DS_Adminextended_Adminhtml_Oauth</DS_Adminextended>
 </modules>
&#13;
&#13;
&#13;

并扩展了AuthorizeController.php:

&#13;
&#13;
<?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;
&#13;
&#13;

但它没有包含扩展文件。 这个&#39; Adminhtml&#39;出现在Mage / Oauth文件夹中,而不是Mage:Adminhtml 所以问题是我们如何在非管理模块下扩展管理控制器类,如: 1)Mage / Oauth / controllers / Adminhtml / Oauth / AuthorizeController.php 要么 2)Mage / Widget / controllers / Adminhtml / Widget / InstanceController.php

我在上面的代码中缺少什么?

2 个答案:

答案 0 :(得分:0)

你在require_once路径中犯了一个错误,错过了controllers目录。 尝试

require_once 'Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php';

答案 1 :(得分:0)

我找到了解决方案:

&#13;
&#13;
<admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <DS_Adminextended before="Mage_Oauth">DS_Adminextended_Adminhtml</DS_Adminextended>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
&#13;
&#13;
&#13;

如果您想扩展Mage :: admin中不存在的管理模块,这是正确的配置文件 魔术在这里:

&#13;
&#13;
<modules><DS_Adminextended before="Mage_Oauth">DS_Adminextended_Adminhtml</DS_Adminextended></modules>
&#13;
&#13;
&#13;

你必须放置&#34; Mage_Oauth&#34;之前改为&#34; Mage_Adminhtml&#34;即使它出现在adminhtml中。其次 控制器调用的路径应为&#34; DS_Adminextended_Adminhtml &#34;即使您的基础控制器内部还有一个目录,就像我的情况一样,根据核心目录&#39; DS_Adminextended_Adminhtml_Oauth &#39;

希望这会对某人有所帮助并节省时间,如果有帮助,请排名: - )