2016-03-01 3 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';

выше упомянутого пути контроллера должен быть правильный путь управления администратора. То же самое для второй точки для пути после ключевого слова extends.

2) class MyCompany_MyAwBlog_Manage_BlogController extends AW_Blog_Manage_BlogController

URL ссылки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> 

Смежные вопросы