Добавить настройку сравнения продуктов на страницу учетной записи клиента

magento.stackexchange https://magento.stackexchange.com//questions/45669

  •  12-12-2019
  •  | 
  •  

Вопрос

Я новичок в Magento и борюсь с этой проблемой.Я хочу добавить настройку сравнения продуктов на страницу учетной записи клиента, поэтому я создал свой блок настройки в

\template\catalog\product\compare\mycompare.phtml

и в моем local.xml я добавляю

<action method="addLink" translate="label" module="catalog">
     <name>catalog.compare.list</name>
     <path>index.php/catalog/product_compare/index/</path>
     <label>My Compare</label>
</action>

<catalog_product_compare_index>
        <label>Catalog Product Compare List</label>
        <!-- Mage_Catalog -->
        <update handle="customer_account"/>
        <reference name="my.account.wrapper">
        <block type="catalog/product_compare_list" name="catalog.compare.list" template="catalog/product/compare/mycompare.phtml"/>
        </reference>
</catalog_product_compare_index>

Это работает, но этот блок вызывался 2 раза.И исходные продукты сравнения (один с новыми окнами при нажатии) также изменили свой макет!Как мне это исправить??

Это было полезно?

Решение

Проблема заключалась в том, что я использую тот же путь, что и всплывающее окно сравнения продуктов.

<path>index.php/catalog/product_compare/index/</path>

и этот код

 <catalog_product_compare_index>
        <label>Catalog Product Compare List</label>
        <!-- Mage_Catalog -->
        <update handle="customer_account"/>
        <reference name="my.account.wrapper">
        <block type="catalog/product_compare_list" name="catalog.compare.list" template="catalog/product/compare/mycompare.phtml"/>
        </reference>
</catalog_product_compare_index>

изменить всплывающее окно сравнения макета продукта.

Итак, я делаю здесь только создание нового модуля.Создавать IndexController с indexAction,

public function indexAction() {
        $this->loadLayout();
        $this->getLayout()->getBlock('head')->setTitle($this->__('My Compare'));
        $this->renderLayout(); 
}

и измените некоторый код в local.xml:

<action method="addLink" translate="label" module="mycompare">
     <name>mycompare</name>
     <path>mycompare/index</path>
     <label>My Compare</label>
</action>

<mycompare_index>
        <label>Catalog Product Compare List</label>
        <!-- Mage_Catalog -->
        <update handle="customer_account"/>
        <reference name="my.account.wrapper">
        <block type="catalog/product_compare_list" name="mycompare" as="mycompare" template="catalog/product/compare/mycompare.phtml"/>
        </reference>
</mycompare_index>

Другие советы

Поскольку я не уверен, чего вы хотите достичь, я предложу два разных решения:

Решение 1. Если вам нужно удалить дублирование во всплывающем окне сравнения продуктов и добавить собственный шаблон блока сравнения продуктов, вам необходимо реализовать следующее в local.xml:

<catalog_product_compare_index>
        <update handle="customer_account"/>

        <reference name="content">
            <action method="unsetChild"><name>catalog.compare.list</name></action>
        </reference>            

        <reference name="my.account.wrapper">
            <block type="catalog/product_compare_list" name="catalog.compare.list" template="catalog/product/compare/mycompare.phtml"/>
        </reference>
</catalog_product_compare_index>

Решение 2. Если вам нужно добавить свой собственный блок шаблонов сравнения продуктов на страницу панели управления учетной записью клиента, вам необходимо реализовать следующее в local.xml:

<customer_account_index>

    <reference name="my.account.wrapper">
        <block type="catalog/product_compare_list" name="catalog.compare.list" template="catalog/product/compare/mycompare.phtml"/>
    </reference>

</customer_account_index>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top