2012-07-17 6 views

答えて

12

ブロックビュースクリプトでは、/wishlist/へのリンクを追加した次を追加しました。

<a href="<?php echo $this->getUrl('wishlist') ?>">Wishlist</a> 
0

クラス 'Mage_Page_Block_Template_Links'を見てみるとよいでしょう。 このクラスでは、次の方法で確認できます。これは、保護された変数$ _linkへのリンクを追加する機能です

public function addLink($label, $url='', $title='', $prepare=false, $urlParams=array(), 
    $position=null, $liParams=null, $aParams=null, $beforeText='', $afterText='') 
{ 
    if (is_null($label) || false===$label) { 
     return $this; 
    } 
    $link = new Varien_Object(array(
     'label'   => $label, 
     'url'   => ($prepare ? $this->getUrl($url, (is_array($urlParams) ? $urlParams : array())) : $url), 
     'title'   => $title, 
     'li_params'  => $this->_prepareParams($liParams), 
     'a_params'  => $this->_prepareParams($aParams), 
     'before_text' => $beforeText, 
     'after_text' => $afterText, 
    )); 

    $this->_links[$this->_getNewPosition($position)] = $link; 
    if (intval($position) > 0) { 
     ksort($this->_links); 
    } 

    return $this; 
} 

を。後でこのリンクはテンプレートによってforeachループで書き込まれます。あなたがして、この変数の値を取得することができます

:ファイル 、例えば

public function getLinks() 
    { 
     return $this->_links; 
    } 

;ページ/テンプレート/ links.phtml

<?php $_links = $this->getLinks(); ?> 
<?php if(count($_links)>0): ?> 
<ul class="links"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>> 
    <?php foreach($_links as $_link): ?> 
     <?php if ($_link instanceof Mage_Core_Block_Abstract):?> 
      <?php echo $_link->toHtml() ?> 
     <?php else: ?> 
      <li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li> 
     <?php endif;?> 
    <?php endforeach; ?> 
</ul> 
<?php endif; ?> 

その後、あなたは新しい関数を作成することができますこのブロックを拡張して、関数removeLinkByUrlとaddLinkを使用することができます。

+0

私はすでにウィッシュリストリンクを削除しています。別のブロックに追加したい –

関連する問題