Ändern Sie die Position des Wagenverbaus in Top -Links
Frage
Ich möchte den Wagenlink am Ende der Top -Links setzen - idealerweise verwenden Sie meine local.xml
Datei.
Die meisten Top -Links werden wie folgt hinzugefügt:
<reference name="top.links">
<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></action>
</reference>
wo ich offensichtlich die Position ändern kann.
Aber die Wagenlinks scheinen so hinzugefügt zu werden:
<block type="checkout/links" name="checkout_cart_link">
<action method="addCartLink"></action>
<action method="addCheckoutLink"></action>
</block>
Wie ändere ich die Position eines Links, der das nicht verwendet addLink
Methode?
Lösung
Die Position ist hartcodiert in /app/code/core/Mage/Checkout/Block/Links.php
:
$parentBlock->addLink($text, 'checkout/cart', $text, true, array(), 50, null, 'class="top-link-cart"');
Der Wagen ist POS 50 und der Checkout -Link ist POS 60. Vielleicht besteht der einfachste Weg darin, alle oben zu positionieren. addCartLink()
Methode.
Andere Tipps
Eine andere Möglichkeit, dies zu tun, ist die Erstellung eines kleinen Moduls (hier verfügbar: https://github.com/digitalpianism/easytoplinks)
app/etc/modules/DigitalPianism_EasyToplinks.xml
<?xml version="1.0"?>
<config>
<modules>
<DigitalPianism_EasyToplinks>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Page/>
</depends>
</DigitalPianism_EasyToplinks>
</modules>
</config>
app/code/local/FactoryX/EasyToplinks/etc/config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<DigitalPianism_EasyToplinks>
<version>0.0.5</version>
</DigitalPianism_EasyToplinks>
</modules>
<global>
<blocks>
<page>
<!--
Mage_Page_Block_Template_Links
-->
<rewrite>
<template_links>DigitalPianism_EasyToplinks_Block_Page_Template_Links</template_links>
</rewrite>
</page>
</blocks>
</global>
</config>
app/code/local/FactoryX/EasyToplinks/Block/Page/Template/Links.php
<?php
/**
* Class DigitalPianism_EasyToplinks_Block_Page_Template_Links
*/
class DigitalPianism_EasyToplinks_Block_Page_Template_Links extends Mage_Page_Block_Template_Links
{
/**
* Change the position of an existing to make the layout customization easier
* @param string $url
* @param int $position
* @return $this
*/
public function setPosition($url, $position)
{
// Get the link and delete it from the current position
foreach ($this->_links as $k => $v) {
if ($v->getUrl() == $url) {
$link = $this->_links[$k];
unset($this->_links[$k]);
}
}
if (isset($link)) {
// Add link to new position
$this->_addIntoPosition($link, $position);
}
return $this;
}
}
Jetzt, wo Sie dieses Modul haben, können Sie Ändern Sie die Position leicht über das Layout durch die Nutzung:
<reference name="top.links">
<action method="setPosition">
<url>checkout/cart</url>
<position>99</position>
</action>
</reference>