有条不紊地添加一个链接到Magento的我的帐户页面

Jos*_*ton 5 magento

我想在"我的帐户"页面上创建一个链接,该链接仅在特定条件下显示.

现在我通过在布局XML文件中添加以下条目来始终显示链接:

<customer_account>
    <reference name="customer_account_navigation">
        <action method="addLink" translate="label" module="nie"><name>nie</name><path>nie</path><label>NIE Admin</label></action>
    </reference>
</customer_account>
Run Code Online (Sandbox Code Playgroud)

我假设有一种方法来编码,以便它只在某些情况下显示.

clo*_*eek 8

购物车和结帐链接已经做了类似的事情,因此可以复制他们的方法.

  1. 创建一个块.它不会直接显示,所以可以是无聊的后代Mage_Core_Block_Abstract.
  2. 给它一个条件逻辑的方法.

    public function addNieLink()
    {
        if (($parentBlock = $this->getParentBlock()) && (CONDITION-GOES-HERE)) {
            $parentBlock->addLink($this->_('NIE Admin'), 'nie', $this->_('NIE Admin'), true, array(), 50, null, 'class="top-link-cart"');
            // see Mage_Page_Block_Template_Links::addLink()
        }
    }
    
    protected function _prepareLayout()
    {
        // Add the special link automatically
        $this->addNieLink();
        return parent::_prepareLayout();
    }
    
    Run Code Online (Sandbox Code Playgroud)

    把你的支票放到位CONDITION-GOES-HERE.

  3. 将您的块添加到链接块.

    <customer_account>
        <reference name="customer_account_navigation">
            <block type="yourmodule/link" name="yourmodule.link" />
        </reference>
    </customer_account>
    
    Run Code Online (Sandbox Code Playgroud)

    (在此处将块类型更正为新创建的链接块)

重要的是它要求getParentBlock()找出链接的去向.