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

magento.stackexchange https://magento.stackexchange.com//questions/71285

Вопрос

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top