Перезаписать контроллер администратора в версии 1.6
-
13-12-2019 - |
Вопрос
Я пытаюсь перезаписать контроллер, расположенный по адресу: app/core/code/Mage/Adminhtml/controllers/Catalog/ProductController.php
Прежде всего, я попробовал просто сделать копию в моем локальном каталоге кода app/local/code/Mage/Adminhtml/controllers/Catalog/ProductController.php
сохраняя файл точно таким же и просто создавая его die()
так что я знал, исполняется ли это.Но это не сработало, и я где-то читал, что вы не можете просто поместить контроллер администратора в local
каталог.
Учитывая это, мой следующий вариант - написать модуль и использовать config.xml
чтобы "переписать" контроллер.К счастью, я могу добавить необходимую мне функциональность в модуль, над которым я уже работал, поэтому мне не нужно создавать модуль просто для этой задачи.Так что в моем config.xml
Я добавил:
<config>
....
<admin>
<routers>
<adminhtml>
<args>
<modules>
<Mycompany_Prime before="Mage_Adminhtml">Mycompany_Prime_Adminhtml</Mycompany_Prime>
</modules>
</args>
</adminhtml>
</routers>
</admin>
.....
<admin/>
является прямым потомком <config/>
.
Затем я создал свой новый контроллер под app/code/local/Mycompany/Prime/controllers/Adminhtml/ProductController.php
с:
require_once "Mage/Adminhtml/controllers/Catalog/ProductController.php";
class Mycompany_Prime_Adminhtml_ProductController extends Mage_Adminhtml_Catalog_ProductController {
....
Однако класс никогда не выполняется.Если уж на то пошло, то и сценарий тоже:
die('Here');
require_once "Mage/Adminhtml/controllers/Catalog/ProductController.php";
class Mycompany_Prime_Adminhtml_ProductController extends Mage_Adminhtml_Catalog_ProductController {
Была бы признательна за любую помощь по перезаписи этого контроллера администратора.Я использую Magento версии 1.6
Решение
Ваш контроллер должен быть помещен в файл
app/code/local/Mycompany/Prime/controllers/Adminhtml/Catalog/ProductController.php
вместо app/code/local/Mycompany/Prime/controllers/Adminhtml/ProductController.php
.
Соответствующим образом измените и название класса.