我想在所有热门链接中添加id属性。我有一个解决方案如下
<action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position><liParams>id="myaccount"</liParams></action>
添加liParams适用于“我的帐户”链接,此解决方案不适用于“我的购物车”和“结帐”链接。
答案 0 :(得分:3)
@Nilesh Yadav,购物车和结账链接使用不同的方法来创建顶部链接
<action method="addCartLink"></action>
<action method="addCheckoutLink"></action>
其他使用addLink
函数
结帐和购物车使用课程Mage_Checkout_Block_Links
功能addCheckoutLink and addCartLink
修改xml代码
<reference name="top.links">
<block type="checkout/links" name="checkout_cart_link">
<action method="addCartLink"><liParams>id="my-custom-id"</liParams></action>
<action method="addCheckoutLink"> <liParams>id="my-custom-id"</liParams></action>
</block>
</reference>
和Copy app/code/core/Mage/Checkout/Block/Links.php
到
app/code/local/Mage/Checkout/Block/Links.php
转到addCartLink中的函数修改逻辑
public function addCartLink($liparams=null)
{
.....
if(is_null())
{ $parentBlock->addLink($text, 'checkout/cart', $text, true, array(), 50, null, 'class="top-link-cart"');
}else
{
$parentBlock->addLink($text, 'checkout/cart', $text, true, array(), 50, $liparams, 'class="top-link-cart"');
}
...
另外
public function addCheckoutLink($liparams=null)
{
....
if ($parentBlock && Mage::helper('core')->isModuleOutputEnabled('Mage_Checkout')) {
$text = $this->__('Checkout');
if(is_null()){
$parentBlock->addLink(
$text, 'checkout', $text,
true, array('_secure' => true), 60, null,
'class="top-link-checkout"'
);
}else{
$parentBlock->addLink(
$text, 'checkout', $text,
true, array('_secure' => true), 60, $liparams=null,
'class="top-link-checkout"'
);
}
}
..
}
答案 1 :(得分:3)
结帐链接使用位于app/code/core/Mage/Checkout/Block/Links.php
public function addCartLink()
{
////.....
$parentBlock->addLink($text, 'checkout/cart', $text, true, array(), 50, null, 'class="top-link-cart"');
return $this;
}
您可以看到它不包含任何<liParams>
或<aParams>
。位于addLink()
的{{1}}方法包含如下所示的参数
Mage_Page_Block_Template_Links
因此,您可以执行以下任一操作
覆盖本地的 addCartLink()并添加参数 需要
删除结帐链接,然后再次使用显式网址添加 PARAMS
例如,在您的public function addLink($label, $url='', $title='', $prepare=false, $urlParams=array(),
$position=null, $liParams=null, $aParams=null, $beforeText='', $afterText='')
中,通过local.xml添加自定义链接到Top Links:
local.xml
答案 2 :(得分:0)
addCartLink()功能用于在magento中创建顶级购物车链接。 重写 Mage_Checkout_Block_Links 类并更改 addCartLink()函数,如下所示 或者只需将 app / code / core / Mage / Checkout / Block / Links.php 复制到 app / code / local / Mage / Checkout / Block / Links.php 并编辑
public function addCartLink()
{
$parentBlock = $this->getParentBlock();
if ($parentBlock && Mage::helper('core')->isModuleOutputEnabled('Mage_Checkout')) {
$count = $this->getSummaryQty() ? $this->getSummaryQty()
: $this->helper('checkout/cart')->getSummaryCount();
if ($count == 1) {
$text = $this->__('Cart (%s)', $count);
} elseif ($count > 0) {
$text = $this->__('Cart (%s)', $count);
} else {
$text = $this->__('Cart (0)');
}
$parentBlock->removeLinkByUrl($this->getUrl('checkout/cart'));
$parentBlock->addLink($text, 'checkout/cart', $text, true, array(), 50, 'id="top_cart"', 'class="top-link-cart"'); //add your custom class or id here
}
return $this;
}