Переопределить контроллер AdminHtml в бэк-офисе - PullRequest
0 голосов
/ 20 марта 2019

Я хочу переопределить класс Mage_Adminhtml_Catalog_CategoryController (контроллер для категорий в бэк-офисе Magento).Я думаю, что мой config.xml где-то не так, и я подозреваю, что тег <to> является проблемой.Когда я пытаюсь получить доступ к http://mywebsite/index.php/admin_k/catalog_category/index/key/somerandomkey/,, у меня появляется ошибка 404.

Мой config.xml:

<?xml version="1.0"?>
<config>
  <modules>
    <Cheek_Lookbook>
      <version>0.0.1</version>
    </Cheek_Lookbook>
  </modules>
  <global>
        <rewrite>        
            <cheek_lookbook_adminhtml_catalog_categorycontroller>
                <from><![CDATA[#^/admin_k/catalog_category/#]]></from> 
                <to>/admin_k/lookbook/adminhtml_catalog_category/</to>
            </cheek_lookbook_adminhtml_catalog_categorycontroller>
        </rewrite>
    <helpers>
      <lookbook>
        <class>Cheek_Lookbook_Helper</class>
      </lookbook>
    </helpers>
        <blocks>
            <lookbook>
                <class>Cheek_Lookbook_Block</class>
            </lookbook>
            <adminhtml>
                <rewrite>
                    <catalog_category_tab_product>Cheek_Lookbook_Block_Adminhtml_Catalog_Category_Tab_Product</catalog_category_tab_product>
                </rewrite>
            </adminhtml>
        </blocks>
        <resources>
            <lookbook_setup>
                <setup>
                    <module>Cheek_Lookbook</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </lookbook_setup>
            <lookbook_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </lookbook_write>
            <lookbook_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </lookbook_read>
        </resources>
  </global>
    <admin>
        <routers>
            <lookbook>
                <use>admin</use>
                <args>
                    <module>Cheek_Lookbook</module>
                    <frontName>admin_lookbook</frontName>
                </args>
            </lookbook>
        </routers>
  </admin>
</config> 

Я много чего пробовал (добавляя, /lookbook/ после /admin_k в URL настройте значение в <to> ...), но я не могу понять, что не так.

Здесь мой класс контроллера:

<?php
require_once "Mage/Adminhtml/controllers/Catalog/CategoryController.php";  
class Cheek_Lookbook_Adminhtml_Catalog_CategoryController extends Mage_Adminhtml_Catalog_CategoryController {

    public function postDispatch()
    {
        parent::postDispatch();
        Mage::dispatchEvent('controller_action_postdispatch_adminhtml', array('controller_action' => $this));
    }

    public function indexAction() 
    {
        Mage::log('There we aren't', null, 'someRandomLogs.log');
        parent::indexAction();
    }
}

У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 26 марта 2019

Через несколько дней я наконец понимаю, почему он не работал должным образом.

Часть <rewrite> (...) <from> (...) <to> (...) - это старый способ сделать это.

В Magento 1.9.3, еслиВы хотите переопределить контроллер adminhtml, вы должны сделать что-то вроде этого:

<?xml version="1.0"?>
<config>
  <modules>
    <Cheek_Lookbook>
      <version>0.0.1</version>
    </Cheek_Lookbook>
  </modules>
  <global>
    (...)
  </global>
    <admin>
        <routers>
            (...)
            <adminhtml>
                    <args>
                        <modules>
                            <Cheek_Lookbook before="Mage_Adminhtml">Cheek_Lookbook_Adminhtml</Cheek_Lookbook>
                        </modules>
                    </args>
            </adminhtml>
        </routers>
  </admin>
</config> 

Это было для моего личного случая, пожалуйста, найдите «пустой» шаблон для копирования ниже:

<?xml version="1.0"?>
<config>
  <modules>
    <Namespace_Module>
      <version>Your.own.version</version>
    </Namespace_Module>
  </modules>
  <global>
    (...)
  </global>
    <admin>
        <routers>
            (...)
            <adminhtml>
                    <args>
                        <modules>
                            <Namespace_Module before="Mage_Adminhtml">Namespace_Module_Adminhtml</Namespace_Module>
                        </modules>
                    </args>
            </adminhtml>
        </routers>
  </admin>
</config>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...