Question

Je suis nouveau sur magento et je suis aux prises avec ce problème.Je souhaite ajouter Personnaliser le produit de comparaison à la page du compte client, j'ai donc créé mon bloc de personnalisation dans

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

et dans mon local.xml j'ajoute

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

C'est du travail, mais ce bloc a été appelé 2 fois.Et les produits de comparaison originaux (dont un avec de nouvelles fenêtres lorsque l'on clique dessus) ont également modifié leur présentation !Comment dois-je faire pour le réparer ??

Était-ce utile?

La solution

Le problème était que j'utilisais le même chemin avec le produit de comparaison contextuel.

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

et ce code

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

modifier la fenêtre contextuelle pour comparer la disposition du produit.

Donc, ce que je fais ici juste pour créer un nouveau module.Créer IndexController avec indexAction,

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

et change du code dans 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>

Autres conseils

Comme je ne suis pas sûr de ce que vous voulez réaliser, je vais vous proposer 2 solutions différentes :

Solution 1. Si vous devez supprimer la duplication dans la fenêtre contextuelle de comparaison de produits et ajouter votre propre modèle de bloc de produits de comparaison personnalisé, vous devez alors implémenter les éléments suivants dans 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 vous devez ajouter votre bloc de modèle de comparaison de produits personnalisé à la page Tableau de bord du compte client, vous devez alors implémenter les éléments suivants dans 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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top