Изменить контроллер по умолчанию в Magento - PullRequest
4 голосов
/ 17 августа 2011

Я создал модули:

app/code/local/MyStore/Welcome

И в этом модуле у меня есть контроллер вроде:

MyStore_Welcome_IndexController

Насколько мне известно, в начале я вижу Magento загрузку Mage_Cms_IndexController контроллера в качестве контроллера по умолчанию.

Теперь я хочу загрузить MyStore_Welcome_IndexController контроллер по умолчанию.

Как я могу это сделать?


Обновление:

Я нашел способ сделать это с помощью функции администратора: Из меню, которое вы выбрали: Система / Конфигурация / Веб: Вы продолжаете выбирать: «Страница по умолчанию» => «Веб-URL по умолчанию» для поля модуля: Image to show how to config

Ответы [ 2 ]

3 голосов
/ 17 августа 2011

Необходимо убедиться, что ваш контроллер extends Mage_Cms_IndexController, а затем переопределить этот контроллер по умолчанию с помощью метода перегрузки контроллера. В этом методе вы создадите плагин как обычно, но вам нужно сделать следующее:

  • добавьте объявление require_once() вверху с относительным путем к перегружаемому контроллеру. Например. :

    require_once 'Mage/Checkout/controllers/OnepageController.php';
    class MyClass_OverloadedCheckout_Checkout_OnepageController extends Mage_Checkout_OnepageController
    
  • Создайте любые методы класса или свойства, которые вы можете добавить в дополнение к стандартным.

  • в вашем config.xml добавьте следующие строки за пределами узла <global>:

      <frontend>
          <routers>
              <myclass_overloadedcheckout>
                  <use>standard</use>
                  <args>
                      <module>Myclass_OverloadedCheckout</module>
                      <frontName>OverloadedCheckout</frontName>
                  </args>
              </myclass_overloadedcheckout>
          </routers>
      </frontend>
    

Что следует запомнить - если вы переписываете какие-либо методы по умолчанию, вам нужно return parent::{methodname} либо до, либо после вашей введенной функциональности, чтобы гарантировать, что поведение по умолчанию продолжает работать.

1 голос
/ 17 августа 2011

Вам следует еще раз подумать, действительно ли вы хотите это сделать, потому что это огромное изменение, но вы можете просто переопределить Mage_Cms_IndexController.Как вы можете переопределить контроллер, вы можете найти, например, здесь .

В любом случае, я бы попытался решить проблему другим способом.Может быть, вы можете использовать шаблон Event / Observer?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...