Сегодня руководство предоставило задача разобраться с перегрузки контроллеров в системе Магента. К сожалению я с этим никогда не работал поэтому прошу помощи разобраться. Порывшись на форумах я несколько накинул, однако не могу разобраться почему оно не работает и не выводит в логах нужен мне текс. ниже привожу пример всего что делал.
Сначала я опредилився который контроллер буду перегружаты не отходил от найденной инструкции и перегружав то же контроллер app/code/core/Mage/Checkout/controllers/OnepageController.php
У себя создал контролер с тем же названием
<?php // Подключаем класс родителя. require_once 'Mage/Checkout/controllers/OnepageController.php'; // Наследуем его своим классом class Firm_Blogpost_Checkout_OnepageController extends Mage_Checkout_OnepageController { // Обеспечиваем вызов конструктора базового класса public function _construct() { parent::_construct(); } // Перегружаем наш метод saveBillingAction() public function saveBillingAction() { // Сначала вызываем этот метод из базового класса parent::saveBillingAction(); // А теперь здесь добавляем нужный нам функционал Mage::log('Hello from overloaded Controller!'); } }
потом добавил запись в свой конфиг файл
<?xml version="1.0"?> <config> <modules> <Firm_Blogpost> <version>0.1.0</version> </Firm_Blogpost> </modules> <global> <rewrite> <!-- Здесь,в общем,после узла <rewrite> идет узел со следующим названием: <пространство имен_имя модуля_имя перегружаемого модуля_имя контроллера(без слова Controller)_имя метода экшена(без слова Action)> --> <firm_blogpost_checkout_onepage_savebilling> <from><![CDATA[#^/checkout/onepage/saveBilling/$#]]></from> <to>/blogpost/checkout_onepage/saveBilling/</to> </firm_blogpost_checkout_onepage_savebilling> </rewrite> <helpers> <blogpost> <class>Firm_Blogpost_Helper</class> </blogpost> </helpers> <blocks><blogpost><class>Firm_Blogpost_Block</class></blogpost></blocks> <models> <blogpost> <class>Firm_Blogpost_Model</class> <resourceModel>blogpost_mysql4</resourceModel> </blogpost> <blogpost_mysql4> <class>Firm_Blogpost_Model_Mysql4</class> <entities> <blogred> <table>bloging</table> </blogred> </entities> </blogpost_mysql4> </models> <resources> <blogpost_setup> <setup> <module>Firm_Blogpost</module> </setup> <connection> <use>core_setup</use> </connection> </blogpost_setup> <blogpost_write> <connection> <use>core_write</use> </connection> </blogpost_write> <blogpost_read> <connection> <use>core_read</use> </connection> </blogpost_read> </resources> </global> <admin> <routers> <blogpost> <use>admin</use> <args> <module>Firm_Blogpost</module> <frontName>blogpost</frontName> </args> </blogpost> </routers> </admin><adminhtml> <menu> <blogpost module="blogpost"> <title>Blogpost</title> <sort_order>100</sort_order> <children> <blogred module="blogpost"> <title>Manage Blogred</title> <sort_order>0</sort_order> <action>blogpost/adminhtml_blogred</action> </blogred> </children> </blogpost> </menu> <acl> <resources> <all> <title>Allow Everything</title> </all> <admin> <children> <blogpost translate="title" module="blogpost"> <title>Blogpost</title> <sort_order>1000</sort_order> <children> <blogred translate="title"> <title>Manage Blogred</title> </blogred> </children> </blogpost> </children> </admin> </resources> </acl> <layout> <updates> <blogpost> <file>blogpost.xml</file> </blogpost> </updates> </layout> </adminhtml> </config>