本文中我将Magento演示如何管理用户账户面板里的导航链接:一种去掉账户面板链接时要避免的方式和另一种要执行的方式。 一种删除指定链接的方法是注释掉显示这个链接的动作。我将以账户面板的 “Account Information”链接为例,这个链接位于 app/design/frontend/base/default/layout/customer.xml。 <action method="addLink" translate="label" module="customer"> <name>account</name> <path>customer/account/</path> <label>Account Dashboard</label> </action> 然而,编辑Magento的核心文件从来都不是一个好的想法。我们将用些不一样的东西来替代这个方法。 首先,我们必须编辑我们的config.xml文件,我们要重写Magento的核心文件。 <global> <blocks> <customer> <rewrite> <account_navigation>Alwayly_Core_Block_Customer_Account_Navigation</account_navigation> </rewrite> </customer> </blocks> </global> 接着,我们要定义我们的布局文件: <frontend> <layout> <updates> <alwayly_core> <file>alwayly_core.xml</file> </alwayly_core> </updates> </layout> </frontend> 下一步就是用下面的代码创建Block/Customer/Account/Navigation.php class Alwayly_Core_Block_Customer_Account_Navigation extends Mage_Customer_Block_Account_Navigation { public function removeLinkByName($name) { unset($this->_links[$name]); } } 最后要做的就是创建布局文件app/design/frontend/default/default/layout/alwayly_core.xml <?xml version="1.0" ?> <layout version="0.1.0"> <customer_account translate="label"> <reference name="customer_account_navigation"> <action method="removeLinkByName"><name>billing_agreements</name></action> <action method="removeLinkByName"><name>recurring_profiles</name></action> <action method="removeLinkByName"><name>tags</name></action> <action method="removeLinkByName"><name>my_wishlist</name></action> <action method="removeLinkByName"><name>OAuth Customer Tokens</name></action> <action method="removeLinkByName"><name>my_downloadable_products</name></action> </reference> </customer_account> </layout> 现在,对于每个我们想要移除的导航链接,我们需要加上连接名并把链接名写入名字标签。 下面列举出账户面板导航链接名(按默认显示排列)
添加一个新的导航链接相对来说简单一些。我们要做的只是将以下代码加到我们的布局文件中 <?xml version="1.0" ?> <layout version="0.1.0"> <customer_account translate="label"> <reference name="customer_account_navigation"> <action method="addLink"> <name>test checkout</name> <path>checkout</path> <label>Alwayly Checkout</label> </action> </reference> </customer_account> </layout>(责任编辑:好模板) |