2016-03-01 52 views
0

我想重写AW Blog BlogController从社区到我的local_MyCompany文件夹来修改saveAction方法。有人能帮助我吗。Magento,如何重写本地代码池中的社区控制器

下面是社区控制器类路径:

app\code\community\AW\Blog\controllers\Manage\BlogController.php 

这里是我的local_Business路径:

require_once 'AW/Blog/controllers/Manage/BlogController.php'; 

class MyCompany_MyAwBlog_Manage_BlogController extends AW_Blog_Manage_BlogController 
{ 
    public function editAction() 
    { 
     echo 'hello'; die(); 
    } 

} 

这里是我的config.xml文件内容:

<config> 
<modules> 
    <MyCompany_MyAwBlog> 
     <version>0.1.0</version> 
    </MyCompany_MyAwBlog> 
</modules> 
<frontend> 
    <routers> 
     <myawblog> 
      <use>standard</use> 
      <args> 
       <module>MyCompany_MyAwBlog</module> 
       <frontName>myawblog</frontName> 
      </args> 
     </myawblog> 
    </routers> 
</frontend> 
<global> 
    <rewrite>   
     <mycompany_myawblog_blog_manage_blogcontroller> 
      <from><![CDATA[#^/blog/manage_blog/#]]></from> 
      <to>/myawblog/blog_manage_blog/</to> 
     </mycompany_myawblog_blog_manage_blogcontroller> 
    </rewrite> 
</global> 
<admin> 
    <routers> 
     <myawblog> 
      <use>admin</use> 
      <args> 
       <module>MyCompany_MyAwBlog</module> 
       <frontName>admin_myawblog</frontName> 
      </args> 
     </myawblog> 
    </routers> 
</admin> 

回答

1

试试这个

1)控制文件

require_once 'AW/Blog/controllers/Manage/BlogController.php'; 

class MyCompany_MyAwBlog_Manage_BlogController extends AW_Blog_Manage_BlogController 
{ 
    public function editAction() 
    { 
     echo 'hello'; die(); 
    } 

} 

2)的Config.xml

<frontend> 
    <routers> 
     <myawblog> 
      <use>standard</use> 
      <args> 
       <modules> 
        <MyCompany_MyAwBlog before="AW_Blog">MyCompany_MyAwBlog</MyCompany_MyAwBlog> 
       </modules> 
      </args> 
     </myawblog> 
    </routers> 
</frontend> 

更新管理控制器:

尝试以下 -

1)控制器文件

<?php 
require_once 'AW/Blog/controllers/Manage/BlogController.php'; 

class MyCompany_MyAwBlog_Manage_BlogController extends AW_Blog_Manage_BlogController 
{ 
    public function editAction() 
    { 
     echo 'Hi'; 
     die(); 
    } 
} 

2)的config.xml

<admin> 
    <routers> 
     <adminhtml> 
      <args> 
       <modules> 
        <myawblog before="AW_Blog">MyCompany_MyAwBlog_Adminhtml</myawblog> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 

注:

1)require_once 'AW/Blog/controllers/Manage/BlogController.php';

上述控制器路径应该是正确的管理控制器路径。 extend关键字之后的路径的第二个点相同。

2)class MyCompany_MyAwBlog_Manage_BlogController extends AW_Blog_Manage_BlogController

参考网址SUPEE-6788 TECHNICAL DETAILS

+0

它不工作,我的控制器的编辑操作不会被调用 –

+0

@JPBernard你得到任何错误或404页? – Muk

+0

@ Muk,不,我没有错误,也没有404页面。社区行动方法仍然被称为 –

0

由木提供的初始答案不工作对我来说(前端控制器重写)。

但是,随着从刚刚更换节点到它,它的工作。

因为是重生路线。但这里的目标是抓住基本路线,手段。

所以这对我工作的最后config.xml中anwser是:

<frontend> 
<routers> 
    <awblog> 
     <use>standard</use> 
     <args> 
      <modules> 
       <MyCompany_MyAwBlog before="AW_Blog">MyCompany_MyAwBlog</MyCompany_MyAwBlog> 
      </modules> 
     </args> 
    </awblog> 
</routers>