当需要在用户中心增加左侧菜单和自定义功能页面的时候,就需要一下配置:
1、自定义一个模块,在模块的config.xml里面定义该模块在前端布局的文件为xxx.xml。如下:
<frontend>
<routers>
<vip>
<use>standard</use>
<args>
<module>Xms_Vip</module>
<frontName>vip</frontName>
</args>
</vip>
</routers>
<layout>
<updates>
<vip>
<file>xms.xml</file>
</vip>
</updates>
</layout>
<translate>
<modules>
<Xms_Vip>
<files>
<default></default>
</files>
</Xms_Vip>
</modules>
</translate>
</frontend>
上图中layout中的配置即为定义模块所有方法的布局文件为xms.xml。
2、定义controller,同时在该controller中的_construct限定只有登录状态才能访问,并在具体的访问方法中输出页面。
<?php
class Xms_Vip_CustomerController extends Mage_Core_Controller_Front_Action
{
protected function _construct()
{
$isLogin=Mage::getSingleton('customer/session')->isLoggedIn();
if(!$isLogin){
$message = $this->__('Please login in first.');
Mage::getSingleton('core/session')->addError(Mage::helper('core')->escapeHtml($message));
$this->alert_message('/customer/account/login',$message);
}
}
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
}
3、新建app\design\frontend\base\default\layout\xms.xml定义index的方法对应的输出布局文件,这里有两个关键点,一个是追加菜单到左侧,一个是继承左侧的布局。
<customer_account translate="label">
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="vip"><name>vip_customer</name><path>vip/customer/</path><label>VIP Customer</label></action>
</reference>
</customer_account>
<vip_customer_index translate="label">
<label>VIP Customer</label>
<update handle="customer_account"/>
<reference name="content">
<block type="core/template" name="vip.customer" template="xms/vip/customer.phtml"/>
</reference>
</vip_customer_index>
最终效果展示如下: