Как переопределить ссылки блокировки проверки Mage


Как правильно переопределить метод, например, метод Mage_Checkout_Block_Links::addCartLink().

Моя цель - добавить немного HTML перед методом Mage_Checkout_Block_Links::addCartLink(). Однако я не знаю, с чего начать или какой файл скопировать и отредактировать в моей пользовательской теме.

Я думаю о чем-то подобном:

public function addLink($beforeText='<i class="icon-shopping-cart"></i>')
Author: 7ochem, 2013-04-16

1 answers

Вот небольшой учебник о том, как переопределить блок модели или помощника: http://magedev.com/2009/06/03/magento-overriding-model-block-or-helper / Сохраните эту ссылку...вам это понадобится в будущем. Теперь о вашей проблеме... следуя руководству по ссылке выше Создайте свое собственное расширение. Давайте назовем это "easylife_checkout". Вам понадобятся следующие файлы: 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>

И 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;
    } 
}

Очистите кэш, и вы должны быть сделано.

 7
Author: Marius, 2013-04-16 17:28:38