Editing Magento Top Links – The Better Way
In the past, we showed you how to add, edit, and remove Magento top links. But as some of you Magentians know, the programming methods in Magento are constantly being amended and revised…
So now we’re back to show you a better way to edit Magento top links. The trick this time around is to edit your top links without editing core layout files which may change when you update Magento by utilizing a local .xml file. You can even add your own custom links without touching any template files.
Editing Magento Top Links in Local.xml:
<?xml version="1.0"?> <layout version="0.1.0"> <default> <reference name="root"> <reference name="top.links"> <!-- Add custom links. Pretty self-explanatory. Dig into app/code/core/Mage/Page/Block/Template/Links.php for more info --> <action method="addLink" translate="label title"> <label>About Us</label> <url>about</url> <!-- can use full url also --> <title>About Us</title> <prepare>true</prepare> <!-- set true if adding base url param --> <urlParams helper="core/url/getHomeUrl"/> <!-- base url - thanks @Russ! --> <!-- there are a few param you can send to do different things in <urlParams> dig into app/code/core/Mage/Core/Model/Url.php, around line 803 --> <!-- below adds #add-fragment to the end of your url --> <!-- <urlParams><_fragment>add-fragment</_fragment></urlParams> --> <!-- below adds ?add-query to the end of your url --> <!-- <urlParams><_query>add-fragment</_query></urlParams> --> <!-- below gives you a new session id (i think...)--> <!-- <urlParams><_nosid>true</_nosid></urlParams> --> <!-- below replaces double quotes, single quotes, greater than, and less than signs to their respective url escaped replacements (%22, %27, %3E, %3C) --> <!-- <urlParams><_escape>i'm-a-blog-url</_escape></urlParams> --> <position>1</position> <liParams/> <aParams>class="top-link-about-us"</aParams> <beforeText></beforeText> <afterText></afterText> </action> <!-- Removes 'My Account' link - Default position: 10 --> <action method="removeLinkByUrl"><url helper="customer/getAccountUrl"/></action> <!-- Removes 'Wishlist' link - Default position: 20 --> <!-- for Magento 1.3.x --> <action method="removeLinkByUrl"><url helper="wishlist/"/></action> <!-- for Magento 1.4.x --> <remove name="wishlist_link"/> <!-- Removes 'My Cart' AND 'Checkout' links Default position: 40 and 50 respectively --> <remove name="checkout_cart_link"/> <!-- To re-add 'My Cart' or 'Checkout' after removing both --> <block type="checkout/links" name="checkout_cart_link_custom"> <action method="addCartLink"></action> <action method="addCheckoutLink"></action> </block> </reference> </reference> </default> <customer_logged_out> <!-- Removes 'Log In' link - Default position: 60 --> <reference name="top.links"> <action method="removeLinkByUrl"><url helper="customer/getLoginUrl"/></action> </reference> </customer_logged_out> <customer_logged_in> <!-- Removes 'Log Out' link - Default position: 60 --> <reference name="top.links"> <action method="removeLinkByUrl"><url helper="customer/getLogoutUrl"/></action> </reference> </customer_logged_in> </layout>