Перезаписать контроллер администратора в версии 1.6


Я пытаюсь перезаписать контроллер, расположенный по адресу: 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

Author: lloiacono, 2015-06-17

1 answers

Ваш контроллер должен быть помещен в файл app/code/local/Mycompany/Prime/controllers/Adminhtml/Catalog/ProductController.php вместо app/code/local/Mycompany/Prime/controllers/Adminhtml/ProductController.php.

Также измените имя класса соответствующим образом.

 1
Author: Marius, 2015-06-17 08:26:49