Добавить настройку сравнения продуктов на страницу учетной записи клиента
-
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>