- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Доброго времени суток!
Magento начал использовать не так давно, потому застопорился на наверное не сильно сложном вопросом для бывалых, однако ответ на него найти не могу нигде, потому прошу о помощи.
Суть задания - необходимо переопределить один из методов контроллера Core/Mage/Customer/controllers/AccountController.php и добавить новый метод. Так как редактировать данный контроллер является неправильно - его необходимо переопределить. Согласно требований проекта переопределенный контроллер должен находиться по адресу local/New/Mage/Customer/controllers/AccountController.php Для этого создал файлы конфигов, но адреса customer/account/test, customer/account/ajax не отзываются, и customer/account/login не переопределяется. Прошу помощи в данной реализации.
Коды:
app/app/etc/modules/New_Mage_Customer.xml
<?xml version="1.0"?> <config> <modules> <New_Mage_Customer> <active>true</active> <codePool>local</codePool> </New_Mage_Customer> </modules> </config>
app/code/local/New/Mage/Customer/etc/config.xml
<?xml version="1.0"?> <config> <modules> <New_Mage_Customer> <version>0.0.1</version> </New_Mage_Customer> </modules> <frontend> <routers> <customer> <args> <modules> <new_customer before="Mage_Customer">New_Mage_Customer</new_customer> </modules> </args> </customer> </routers> </frontend> </config>
app/code/local/New/Mage/Customer/controllers/AccountController.php
<?php /** * Customer account controller */ require_once 'Mage/Customer/controllers/AccountController.php'; class New_Mage_Customer_AccountController extends Mage_Customer_AccountController { public function ajaxAction() { echo 'ajax!!'; } public function testAction() { echo 'test222'; } public function loginAction() { echo 'index'; } }
Solved! Go to Solution.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Попробуйте уменьшить вложенность папок своего модуля, должно помочь.
Т.е. как то так:
app/code/local/PavelMorgun/Customer/etc/config.xml
<?xml version="1.0"?> <config> <modules> <PavelMorgun_Customer> <version>0.1.0</version> </PavelMorgun_Customer> </modules> <frontend> <routers> <customer> <args> <modules> <pm_customer before="Mage_Customer">PavelMorgun_Customer</pm_customer> </modules> </args> </customer> </routers> </frontend> </config>
app/app/etc/modules/PavelMorgun_Customer.xml:
<?xml version="1.0"?> <config> <modules> <PavelMorgun_Customer> <active>true</active> <codePool>local</codePool> </PavelMorgun_Customer> </modules> </config>
app/code/local/PavelMorgun/Customer/controllers/AccountController.php
<?php require_once(Mage::getModuleDir('controllers','Mage_Customer').DS.'AccountController.php'); class PavelMorgun_Customer_AccountController extends Mage_Customer_AccountController { /** * Customer login form page */ public function loginAction() { if ($this->_getSession()->isLoggedIn()) { $this->_redirect('*/*/'); return; } $this->getResponse()->setHeader('Login-Required', 'true'); $this->loadLayout(); $this->_initLayoutMessages('customer/session'); $this->_initLayoutMessages('catalog/session'); $this->renderLayout(); } }
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Так и сделал. Спасибо. Работает.
Просто думал может не хватает способностей реализовать данную процедуру с таким количеством вложений
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Попробуйте уменьшить вложенность папок своего модуля, должно помочь.
Т.е. как то так:
app/code/local/PavelMorgun/Customer/etc/config.xml
<?xml version="1.0"?> <config> <modules> <PavelMorgun_Customer> <version>0.1.0</version> </PavelMorgun_Customer> </modules> <frontend> <routers> <customer> <args> <modules> <pm_customer before="Mage_Customer">PavelMorgun_Customer</pm_customer> </modules> </args> </customer> </routers> </frontend> </config>
app/app/etc/modules/PavelMorgun_Customer.xml:
<?xml version="1.0"?> <config> <modules> <PavelMorgun_Customer> <active>true</active> <codePool>local</codePool> </PavelMorgun_Customer> </modules> </config>
app/code/local/PavelMorgun/Customer/controllers/AccountController.php
<?php require_once(Mage::getModuleDir('controllers','Mage_Customer').DS.'AccountController.php'); class PavelMorgun_Customer_AccountController extends Mage_Customer_AccountController { /** * Customer login form page */ public function loginAction() { if ($this->_getSession()->isLoggedIn()) { $this->_redirect('*/*/'); return; } $this->getResponse()->setHeader('Login-Required', 'true'); $this->loadLayout(); $this->_initLayoutMessages('customer/session'); $this->_initLayoutMessages('catalog/session'); $this->renderLayout(); } }
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content