重载购物车页
Mage_Checkout_CartController::indexAction().
第一步:建立相应的文件
app/code/local/MyNameSpace/MyModule/etc/config.xml
app/code/local/MyNameSpace/MyModule/controllers/Checkout/CartController.php
app/etc/modules/MyNameSpace_All.xml
第二步:编辑刚才新建的配置文件 etc/config.xml
写入如下的内容:
第三步:编辑controllers/Checkout/CartController.php
写入如下:
第四步:编辑模块配置文件 app/etc/modules/MyNameSpace_All.xml
写入:
第五步,编辑app/design/frontend/[myinterface]/[mytheme]/layout/checkout.xml
写入:
Mage_Checkout_CartController::indexAction().
第一步:建立相应的文件
app/code/local/MyNameSpace/MyModule/etc/config.xml
app/code/local/MyNameSpace/MyModule/controllers/Checkout/CartController.php
app/etc/modules/MyNameSpace_All.xml
第二步:编辑刚才新建的配置文件 etc/config.xml
写入如下的内容:
<?xml version="1.0"?>
<config>
<modules>
<MyNameSpace_MyModule>
<version>0.1.0</version>
</MyNameSpace_MyModule>
</modules>
<global>
<!-- This rewrite rule could be added to the database instead -->
<rewrite>
<!-- This is an identifier for your rewrite that should be unique -->
<!-- THIS IS THE CLASSNAME IN YOUR OWN CONTROLLER -->
<mynamespace_mymodule_checkout_cart>
<from><![CDATA[#^/checkout/cart/#]]></from>
<!--
- mymodule matches the router frontname below
- checkout_cart matches the path to your controller
Considering the router below, "/mymodule/checkout_cart/" will be
"translated" to "/MyNameSpace/MyModule/controllers/Checkout/CartController.php" (?)
-->
<to>/mymodule/checkout_cart/</to>
</mynamespace_mymodule_checkout_cart>
</rewrite>
</global>
<!--
If you want to overload an admin-controller this tag should be <admin> instead,
or <adminhtml> if youre overloading such stuff (?)
-->
<frontend>
<routers>
<mynamespace_mymodule>
<!-- should be set to "admin" when overloading admin stuff (?) -->
<use>standard</use>
<args>
<module>MyNameSpace_MyModule</module>
<!-- This is used when "catching" the rewrite above -->
<frontName>mymodule</frontName>
</args>
</mynamespace_mymodule>
</routers>
</frontend>
</config>
第三步:编辑controllers/Checkout/CartController.php
写入如下:
<?php
# Controllers are not autoloaded so we will have to do it manually:
//require_once 'Mage/Checkout/controllers/CartController.php';
//don’t break the magento compiler functionality and magento can find your class from compiled folder,better
require_once Mage::getModuleDir('controllers','Mage_Checkout').DS.'CartController.php';
class MyNameSpace_MyModule_Checkout_CartController extends Mage_Checkout_CartController
{
# Overloaded indexAction
public function indexAction()
{
# Just to make sure
error_log('Yes, I did it!');
parent::indexAction();
}
}
第四步:编辑模块配置文件 app/etc/modules/MyNameSpace_All.xml
写入:
<?xml version="1.0"?>
<config>
<modules>
<MyNameSpace_MyModule>
<active>true</active>
<codePool>local</codePool>
</MyNameSpace_MyModule>
</modules>
</config>
第五步,编辑app/design/frontend/[myinterface]/[mytheme]/layout/checkout.xml
写入:
<mynamespace_mymodule_checkout_cart_index>
<update handle="checkout_cart_index"/>
</mynamespace_mymodule_checkout_cart_index>