Найкращі способи редагування Magento Top-Links


22

Скажімо, ми хочемо додати піктограму кошика прямо перед посиланням "Мій кошик" на головних посиланнях Magento (див. Верхні посилання нижче).

введіть тут опис зображення

Який найкращий спосіб зробити це?

  1. Зробити щось для toplinks.php?
  2. Зробити щось для links.phtml?
  3. Xml-файл?
  4. Будь-які інші варіанти?

Я розумію, що це можна зробити за допомогою CSS, але в міру того, як зростають мої потреби в налаштуваннях, я хочу знати, як це можна зробити без CSS, щоб я міг налаштувати більш складні речі.

Відповіді:


12

Ні в якому разі не редагуйте файл шаблону ( links.phtml). Це слугує загальним шаблоном для всіх списків посилань. Наприклад, він також використовується для посилань у нижньому колонтитулі.
З toplinks.phpвами ви можете робити все, що завгодно, оскільки застаріле з часу CE v1.4.0.1.
Рекомендую використовувати файли xml, які додають посилання до верхнього контейнера, щоб досягти необхідного. Метод , який викликається при додаванні нового посилання підтримує деякі параметри , які дозволяють додавати класи та інші атрибути на і
addLinklia теги в посиланнях і деякий текст до посилання і після заслання.

public function addLink($label, $url='', $title='', $prepare=false, $urlParams=array(),
        $position=null, $liParams=null, $aParams=null, $beforeText='', $afterText='')
    { ... }

Якщо ви хочете додати іконку в моєму меню рахунків ви можете встановити , $beforeTextщоб <span class="icon"></span>додати деякі стилі на класі значка.
Для посилань на кошик і замовлення це трохи складніше, оскільки вони додаються через об'єкт блоку не безпосередньо з файлу макета.
Якщо вам потрібно щось інше для кошика для кошика чи каси, все, що вам потрібно зробити, це перекрити методи Mage_Checkout_Block_Links::addCartLink()або Mage_Checkout_Block_Links::addCheckoutLink(). Ці 2 дзвінки однаково, addLink()і ви можете передавати йому різні параметри.


1
Це саме те пояснення, яке я шукав. Я, безумовно, маю багато навчання перед собою, але тепер у мене є ідея, з чого почати. Я спробую додати свою піктограму (з завантажувальної програми) із наступним текстом $ beforeText = '<i class = "icon-shopping-cart"> </i>' - Дякую!
Рафаель Рафатпанах

Який XML-файл я би використовував для цього?
Рафаель Рафатпанах

Я пояснив, що для посилань на кошик та замовлення ви не можете цього зробити з файлу макета. Вам потрібно перекрити методMage_Checkout_Block_Links::addCartLink()
Маріус

1
Добре. Я припускаю, що замінить метод, який мені потрібно додати файл до моїх спеціальних файлів тем і викликати там метод, який буде заміняти його попередній екземпляр. Ви б не хотіли вказати мені в правильному напрямку, наприклад, який би файл містив метод Mage_Checkout_Block_Links. Це links.php?
Рафаель Рафатпанах

Якщо ви йдете по маршруту XML (який ви, безумовно, повинні) взяти до відома, що для того, щоб використовувати його <span class="icon"></span>як попередній текст, вам слід його так укласти <![CDATA[<span class="icon"></span>]]>. XML-аналізатор також збирає нові рядки, тому ви повинні поставити його відразу після вступного тегу:<beforeText><![CDATA[<span class="icon"></span>]]></beforeText>
jmk

9

Якщо вам потрібно застосувати спеціальний шаблон лише для топпосилань, ви можете це зробити так у local.xml вашої теми:

<default>
    <reference name="top.links">

        <action method="setTemplate">
            <template>page/template/my_links.phtml</template>
        </action>

    </reference>
<default>

Потім скопіюйте сторінку / шаблон / links.phtml і перейменуйте її на сторінку / template / my_links.phtml і зробіть все, що вам потрібно, у цьому новому файлі шаблону.

Щоб додати спеціальне посилання до Топ-посилань через local.xml:

<reference name="top.links">
    <action method="addLink" translate="label title">
        <label>My Link</label>
        <url>path/to/page</url>
        <title>My link tooltip</title>
        <prepare>true</prepare>
        <urlParams/>
        <position>150</position>
        <liParams>id="my-custom-id"</liParams>
    </action>
</reference>

Також дивіться цю сторінку: http://www.classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way


Використовуючи цей метод, чи зможу я додати HTML між кожним посиланням?
Рафаель Рафатпанах

@RaphaelRafatpanah Так, у links.phtml є цикл <?php foreach($_links as $_link): ?>. Ви можете додати будь-який HTML всередині цього циклу.
zitix

Але тоді це буде додано до кожного посилання, так? Я хочу додати налаштований HTML між кожним посиланням. Крім того, я вважаю, що цикл foreach використовується для посилань нижнього колонтитулу, а також до заголовків, тому якщо я додаю HTML між посиланнями, вони також будуть застосовані до нижнього колонтитулу.
Рафаель Рафатпанах

1
Ось і є фокус: після створення сторінки / шаблону / my_links.phtml (яка є копією оригіналу links.phtml ) і після додавання коду, який я опублікував у ваш local.xml , цей шаблон буде використовуватися лише для візуалізації верхніх посилань. Не посилання нижнього колонтитулу чи будь-які інші посилання.
zitix


0

Знайдіть цей шлях, щоб змінити головні посилання:

/app/design/frontend/base/default/layout/customer.xml  

і шукайте: Увійти (У моєму випадку).

Тепер змінити назву та етикетку із потрібним текстом.


Не слід редагувати основні файли!
Чорний

-1

Вам потрібно відредагувати наступні 2 файли.

app/design/frontend/default/default/layout/checkout.xml

app/design/frontend/default/default/layout/customer.xml

У ці файли додаються посилання name="top.links". Просто прокоментуйте їх.


2
Ласкаво просимо до Magento SE. Хоча ця відповідь працює, питання було чітко про кращі практики та редагування основних файлів - це не що інше, як найкраща практика в Magento.
Фабіан Шменглер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.