管理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>
现在,对于每个我们想要移除的导航链接,我们需要加上连接名并把链接名写入名字标签。
下面列举出账户面板导航链接名(按默认显示排列)
- Account Dashboard
- Account Information
- Address Book
- My Orders
- Billing Agreements
- Recurring Profiles
- My Product Reviews
- My Wishlist
- My Applications
- Newsletter Subscriptions
- My Downloadable Products
添加一个新的导航链接相对来说简单一些。我们要做的只是将以下代码加到我们的布局文件中
<?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>
电商网站开发服务。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。