Pregunta

Soy nuevo en Magento, y estoy luchando con este problema.Quiero agregar personalizar Comparar el producto a la página de la cuenta del cliente, así que creé mi bloque de personalización en

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

y en mi local.xml agrego

<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>

Es trabajo, pero ese bloque se llamó 2 veces.Y los productos de compara originales (uno con ventanas nuevas al hacer clic también) también cambió su diseño.¿Cómo debo hacer para arreglarlo?

¿Fue útil?

Solución

El problema fue porque utilizo la misma ruta con el producto de comparación emergente.

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

y este código

 <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>

Cambiar la ventana emergente Compare el diseño del producto.

Entonces, lo que hago aquí solo para crear un nuevo módulo.Crea IndexController con indexAction,

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

y cambie algún código en 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>

Otros consejos

Dado que no estoy seguro de lo que desea lograr, proporcionará 2 soluciones diferentes:

Solution 1. Si necesita eliminar la duplicación en la ventana emergente de los productos de comparación y agregue su propia plantilla de bloqueo de productos personalizados, debe implementar lo siguiente en 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>


Solution 2. Si necesita agregar su bloque de plantilla de productos personalizados de Comparar a la página del panel de la cuenta del cliente, debe implementar lo siguiente en 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>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top