来自官方的论坛 不错的文章 在此记录下来
In this example we’re overloading
Mage_Checkout_CartController::indexAction().
2. Edit /etc/config.xml |
Go to Magento/app/code/local/MyNameSpace/MyModule/etc/config.xml and paste the following xml into it (comments I’m not a 100% sure about are ending with “(?)”):
[by Hendy: The above didn’t work for me when I override catalog/product controller. I had to use:
(notice the missing leading slash)]
by AxelH: Since Magento 1.3 you can simply add your module to the frontend router. Rewrites are not neccessary any more:
Please note that before=”Mage_Checkout” will load your controller first if available and fallback to Magento’s if not.
[Edit by lichal: For me this code doesn’t work, because the controller is in the folder (note the bold folder): ‘Magento/app/code/local/MyNameSpace/MyModule/controllers/Checkout /CartController.php’. In order to fix it the line 14:
Has to be:
end Edit by lichal]
3. Edit /controllers/Checkout/CartController.php |
Paste the following php code into Magento/app/code/local/MyNameSpace/MyModule/controllers/Checkout/CartController.php (the only change we’re doing to the indexAction() is adding an error_log() message):
4. Edit Magento/app/etc/modules/MyNameSpace_All.xml |
(This is to activate your module)
[Edit 2009-07-26 by PhilFreo: Steps 1-4 alone were sufficient for me to overload methods from CartController. I’d like to see some clarification on exactly what steps 5+ are doing and when they are needed.]
[Edit 2009-07-29 by hexdoll: used steps 1-4 to override the customer/account controller, the error_log occurs but the expected interface templates are not shown]
5. Edit Magento/app/design/frontend/[myinterface]/[mytheme]/layout/checkout.xml |
Add the following to use the same update handle as before:
(Note that these tags seem to be case sensitive. Try using all lowercase if this isn’t working for you)
[by Hendy: When I override catalog/product/view using the method described in this Wiki or here , I didn’t have to do the above. However, when using the 'cms way' , I had to update the handle manually.]
6. The above item do not worked for me (updated: 2009-02-19 by: Jonathan M Carvalho) |
After loose so many hours I discovery that the file to change is “Magento/app/design/frontend/[myinterface]/[mytheme]/layout/mymodule.xml”
Update 2009-06-17 by Gabriiiel : added the good syntax (mynamespace_mymodule_checkout_cart_index)
Add the following lines:
Using version 1.2.1
7. Point your browser to /checkout/cart/ |
Take a look in your php error log and you should find ‘Yes, I did it!’.
8. You need to get extra precise with the rewrite regular expression cause this causes a very hard time. In this part. |
<from><![CDATA[#^/checkout/cart/#]]></from>
Will someone please finish this chapter?