Перезаписать контроллер администратора в версии 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
1 answers
Ваш контроллер должен быть помещен в файл
app/code/local/Mycompany/Prime/controllers/Adminhtml/Catalog/ProductController.php
вместо app/code/local/Mycompany/Prime/controllers/Adminhtml/ProductController.php
.
Также измените имя класса соответствующим образом.