Frage

Was ist der richtige Weg, um beispielsweise eine Methode zu überschreiben, die Mage_Checkout_Block_Links::addCartLink() Methode.

Mein Ziel ist es, ein paar HTML vor dem hinzuzufügen Mage_Checkout_Block_Links::addCartLink() Methode. Ich weiß jedoch nicht, wo ich anfangen soll oder welche Datei unter meinem benutzerdefinierten Thema kopiert und bearbeitet werden soll.

Ich denke über so etwas nach:

public function addLink($beforeText='<i class="icon-shopping-cart"></i>')
War es hilfreich?

Lösung

Hier ist ein kleines Tutorial zum Überschreiben eines Blocks ein Modell oder einen Helfer: http://magedev.com/2009/06/03/magento-overriding-model-block-or-helper/Halten Sie diesen Link Speichern ... Sie werden ihn in Zukunft brauchen. Jetzt für Ihr Problem ... erstellen Sie dem Tutorial im obigen Link Ihre eigene Erweiterung. Lass es 'nennen' EasyLife_Checkout '. Sie müssen Dateien folgen:app/etc/modules/Easylife_Checkout.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Checkout>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Checkout />
            </depends>
        </Easylife_Checkout>
    </modules>
</config>

app/code/local/Easylife/Checkout/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Checkout>
            <version>0.0.1</version>
        </Easylife_Checkout>
    </modules>
        <global>
        <blocks>
            <checkout>
                <rewrite>
                    <links>Easylife_Checkout_Block_Links</links>
                </rewrite>
            </checkout>
        </blocks>
        </global>
</config>

und app/code/local/Easylife/Checkout/Block/Links.php

<?php
class Easylife_Checkout_Block_Links extends Mage_Checkout_Block_Links{
    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->__('My Cart (%s item)', $count);
            } elseif ($count > 0) {
                $text = $this->__('My Cart (%s items)', $count);
            } else {
                $text = $this->__('My Cart');
            }

            $parentBlock->removeLinkByUrl($this->getUrl('checkout/cart'));
            $parentBlock->addLink($text, 'checkout/cart', $text, true, array(), 50, null, 'class="top-link-cart"', '<i class="icon-shopping-cart"></i>');//this will add the link. The last parameter is the 'before text'. You can add an other parameter after that that means $afterText
        }
        return $this;
    } 
}

Löschen Sie den Cache und Sie sollten fertig sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top