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?

War es hilfreich?

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top