我的xml代码:
<customer_account>
<reference name="example_link">
<action method="addLink" module="example" ifconfig="example/general/enable"><name>my_review</name><path>example/account/list/</path><label>My Review</label></action>
</reference>
</customer_account>
我正在客户帐户中创建新导航现在我想在该导航中添加一个链接,但我想检查该客户是否批准作为卖家,如果它不赞成我不想在该导航中添加链接怎么能我这样做
答案 0 :(得分:3)
您可以在customer_account_navigation中添加一个块,并在该块中,如果条件满足,则将链接添加到父块。
所以你的布局就是这样:
<customer_account>
<reference name="example_link">
<block type="[module]/customer_link" as="[module]_customer_link" name="[module]_customer_link">
<action method="addLinkToParentBlock" />
</block>
</reference>
</customer_account>
你的街区类看起来像这样:
class [Namespace]_[Module]_Block_Customer_Link extends Mage_Core_Block_Abstract
{
public function addLinkToParentBlock()
{
$parent = $this->getParentBlock();
if ($parent) {
if (your condition goes here) {
$parent->addLink(
'Label goes here',
'Url goes here',
'title goes here',
);
}
}
}
}
这样,您的块将被实例化。它没有输出,但会调用方法addLinkToParentBlock
。
答案 1 :(得分:2)
使用处理程序并通过观察者更新.. 事件将是
<controller_action_layout_load_before>
<observers>
<add_link_indashboard>
<type>singleton</type>
<class>seller/observer</class>
<method>addCustomLink</method>
</add_link_indashboard>
</observers>
</controller_action_layout_load_before>
而不是观察者方法
public function addCustomLink(Varien_Event_Observer $observer){
if(Check customer condition ){
Mage::app()->getLayout()->getUpdate()->addHandle('customer_link');
}
}
并在xml中定义链接