• 14th, Jun 2010

Magento declare / override Controllers

<!-- ************************************************ -->
<!-- CONTROLLER / DECLARE / Frontend -->
<!-- ************************************************ -->
<!-- USE: http://127.0.0.1/mydebug/ -->
<!-- Note: It is really important that the module name starts with capital letter. If not it would fail in some Unix systems.
        Even the Controller file name should have one capital letter and Controller at the end like: IndexController.php NOT ShowProductsController.php-->
<!-- structure:
		Unexpectedit/mydebug
-->
<config>
        <frontend>
                <routers>
	                <mydebug>
	                        <use>standard</use>
	                        <args>
	                                <module>Unexpectedit_Mydebug</module>
	                                <frontName>mydebug</frontName>
	                        </args>
	                </mydebug>
                </routers>
        </frontend>
</config>
<!-- controller file:
class Unexpectedit_Mydebug_IndexController extends Mage_Core_Controller_Front_Action
{
        public function indexAction(){
        	echo "-Debug module - ";
        }
}
-->
<!-- ************************************************ -->
<!-- CONTROLLER / DECLARE / Frontend with layout file -->
<!-- ************************************************ -->
<!-- USE: http://127.0.0.1/mymodule/ -->

<!-- structure:
	Unexpectedit/Mymodule
-->
   <frontend>

        <routers>
            <mymodule>
                <use>standard</use>
                <args>
                    <module>Unexpectedit_Mymodule</module>
                    <frontName>mymodule</frontName>
                </args>
            </mymodule>
        </routers>

        <layout>
            <updates>
                <mymodule>
                    <file>mymodule.xml</file>
                </mymodule>
            </updates>
        </layout>
    </frontend>
<!-- controller file: Unexpectedit/controllers/IndexController.php
class Unexpectedit_Mymodule_IndexController extends Mage_Core_Controller_Front_Action
{
	public function indexAction()
	{
		$this->loadLayout();
		$this->renderLayout();
	}
}
-->
<!-- layout.xml file: -->
<?xml version="1.0"?>
<layout version="0.1.0">

    <default>
        <reference name="left">
            <block type="mymodule/view" name="left.mymodule_view" after="catalog"></block>
        </reference>
    </default>

      <mymodule_index_index>
        <reference name="content">
            <block type="mymodule/results" name="mymodule_results" after="catalog.leftnav" template="mymodule/results.phtml" />
        </reference>
    </mymodule_index_index>
</layout>

<!-- ************************************************ -->
<!-- CONTROLLER / DECLARE / Admin -->
<!-- ************************************************ -->
<!-- USE: http://127.0.0.1/index.php/customreports/adminhtml_sales/bestseller/key/1eb756c24ee25b303bcf6711da65e4f6/ -->
<!-- structure:
		Unexpectedit/CustomReports
								/controllers
											/Adminhtml
													SalesController.php
-->
<!-- menu link
	<emails translate="title" module="reports">
		<title>Sales Report</title>
		<action>customreports/adminhtml_sales/bestseller</action>
	</emails>
-->
	<admin>
		<routers>
			<customreports>
			<use>admin</use>
			<args>
				<module>Unexpectedit_CustomReports</module>
				<frontName>customreports</frontName>
			</args>
			</customreports>
		</routers>
	</admin>
<!-- controller file:
class Unexpectedit_CustomReports_Block_Adminhtml_Sales_Bestseller extends Mage_Adminhtml_Block_Widget_Grid_Container
{
    public function __construct()
    {
        $this->_controller = 'adminhtml_sales_bestseller';
    	$this->_blockGroup = 'customreports';
        $this->_headerText = 'Bestsellers';
        parent::__construct();
        $this->_removeButton('add');
    }
}
-->

<!-- ************************************************ -->
<!-- CONTROLLER / OVERRIDE / Frontend -->
<!-- ************************************************ -->
<!--
	Source: http://www.magentocommerce.com/wiki/how_to_overload_a_controller
	Files required:
   1. Magento/app/code/local/Unexpectedit/MyCustomer/etc/config.xml
   2. Magento/app/code/local/Unexpectedit/MyCustomer/controllers/AccountController.php

   Note: It's really important called MyCustomer instead of Customer.
-->
<!-- 1.File: Unexpectedit/MyCustomer/etc/config.xml -->
<?xml version="1.0"?>
<config>
    <modules>
        <Unexpectedit_MyCustomer>
            <version>1.00</version>
        </Unexpectedit_MyCustomer>
    </modules>

    <frontend>
		<routers>
            <handpickedcollection_mycustomer>
                <use>standard</use>
                <args>
                    <module>Unexpectedit_MyCustomer</module>
                    <frontName>mycustomer</frontName>
                </args>
            </handpickedcollection_mycustomer>
        </routers>
    </frontend>

    <global>
		<rewrite>
			<handpickedcollection_mycustomer_account>
				<from>#^/customer/account/#</from>
				<to>/mycustomer/account/</to>
			</handpickedcollection_mycustomer_account>
		</rewrite>
    </global>

</config>
<!-- 2.File: Unexpectedit/MyCustomer/controllers/AccountController.php -->
<?php
require_once 'Mage/Customer/controllers/AccountController.php';
class Unexpectedit_MyCustomer_AccountController extends Mage_Customer_AccountController
{
	// Overloaded loginAction
    public function loginAction()
    {
		echo "great!";
        parent::indexAction();
    }
?>

<!-- ************************************************ -->
<!-- CONTROLLER / OVERRIDE / Admin -->
<!-- ************************************************ -->
<!-- USE: http://127.0.0.1/index.php/admin/permissions_user/index/ -->
<!-- structure:
	Unexpectedit/Adminhtml
						/controllers
									/Override
											/Admin
												/Permissions
															UserController.php
-->
	<admin>
		<routers>
			<adminhtml>
				<args>
					<modules>
					 	<Unexpectedit_Adminhtml_Override before="Mage_Adminhtml">Unexpectedit_Adminhtml_Override_Admin</Unexpectedit_Adminhtml_Override>
					</modules>
				</args>
			</adminhtml>
		</routers>
	</admin>

<!-- controller file:
include("Mage/Adminhtml/controllers/Permissions/UserController.php");

class Unexpectedit_Adminhtml_Override_Admin_Permissions_UserController extends Mage_Adminhtml_Permissions_UserController
{
[...]
}
-->

Tags: , , , , , ,

Leave a Reply

*

© 2010 unexpected[it]. All Rights Reserved.