将自定义类添加到愿望清单顶部链接
Posted
技术标签:
【中文标题】将自定义类添加到愿望清单顶部链接【英文标题】:Add custom class to wishlist top link 【发布时间】:2015-02-11 08:40:16 【问题描述】:我想在愿望清单链接中添加一个自定义类以进行样式设置。
我尝试将wishlist.xml 更改为此:
<reference name="top.links">
<block type="wishlist/links" name="wishlist_link" />
<action method="addLinkBlock"><blockName>wishlist_link</blockName><prepare/><liParams>class="test"</liParams><position>10</position></action>
</reference>
但是类没有设置
我还尝试将 code/core/Mage/Wishlist/Block/Links.php 更改为:
protected function _tohtml()
if ($this->helper('wishlist')->isAllow())
$text = $this->_createLabel($this->_getItemCount());
$this->_label = $text;
$this->_title = $text;
$this->_aParams = 'class="test"';
$this->_url = $this->getUrl('wishlist');
return parent::_toHtml();
return '';
但它仍然没有设置类。
这是我的 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 $i=0; ?>
<?php foreach($_links as $_link): ?>
<?php if ($_link instanceof Mage_Core_Block_Abstract):?>
<?php echo $_link->toHtml() ;?>
<?php else: ?>
<?php $i++; ?>
<li class="<?php if($_link->getIsFirst()): ?>first<?php elseif($_link->getIsLast()): ?>last<?php else: ?>menu<?=$i?><?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; ?>
结果,wishlist 是唯一没有类的顶部链接。
【问题讨论】:
【参考方案1】:很有趣,没试过这个,但试一试不会花很多钱;)
在您的布局文件中:
<reference name="wishlist_link">
<action method="setAParams">
<param><![CDATA[class="myclass"]]></param>
</action>
</reference>
【讨论】:
成功了!谢谢。我是 Magento 的新手,我已经和这个小东西战斗了这么久!有没有办法使用相同的逻辑改变位置? 是的,布局的动作标签非常强大。我已经编辑了我的答案,请检查 ;) 如果我的编辑不起作用,恐怕您将不得不在自己的模块中覆盖 Mage_Wishlist_Block_Links 类并更改 $_position 属性 它似乎不会影响 XML 的位置。到时候我会覆盖。感谢您的宝贵时间! 不客气,为您的问题提供了良好的格式;)。奇怪的是 setPosition 不起作用,它也应该起作用,也许仔细检查你的缓存?好吧,在认为这看起来很正常之后,我认为当我们调用块时,块已经在 top.links 块中,所以位置属性已经被 top.links 块“消耗”了以上是关于将自定义类添加到愿望清单顶部链接的主要内容,如果未能解决你的问题,请参考以下文章