Question

Je suis en train d'insérer mon fichier modèle de base en page d'affichage du produit avant le prix en utilisant la mise en page XML.

J'ai essayé cela.

<catalog_product_view>
    <reference name="content">
        <block type="core/template" name="myblock" as="myblock" template="mymodule/mytemplate.phtml"/>
    </reference>
</catalog_product_view>

Mais il affiche au bas du contenu juste avant le pied de page.

Et puis j'essaie d'ajouter before="product.info.simple"

<catalog_product_view>
    <reference name="content">
        <block type="core/template" name="myblock" as="myblock" template="mymodule/mytemplate.phtml" before="product.info.simple"/>
    </reference>
</catalog_product_view>

Mais il affiche au-dessus du contenu juste après fil d'Ariane.

Alors, ce que quelqu'un sait comment le faire juste avant affiche le prix?

Était-ce utile?

La solution

Le problème est que vous pouvez ajouter un seul bloc à un autre bloc qui a le type de core/text_list. Vous avez donc besoin de trouver un bloc plus proche de ce type à un endroit où vous voulez placer votre bloc.

Si vous voulez faire des produits simples seulement (qui suit de votre question) que vous pouvez faire quelque chose comme ceci:

<?xml version="1.0"?>
<layout>
    <PRODUCT_TYPE_simple>
        <reference name="product.info.simple.extra">
            <block type="core/template" name="test" template="test.phtml" before="-"/>
        </reference>
    </PRODUCT_TYPE_simple>
</layout>

pour tous les types de produits c'est le plus proche, vous pouvez obtenir:

<?xml version="1.0"?>
<layout>
    <catalog_product_view>
        <reference name="alert.urls">
            <block type="core/template" name="test" template="test.phtml" after="-"/>
        </reference>
    </catalog_product_view>
</layout>

Autres conseils

L'alternative est de changer le catalogue / produit / modèle de vue et ajouter un

$this->getChildHtml('my_cool_block_name');

et l'ajouter à la local.xml

<catalog_product_view>
    <reference name="product.info">
        <block type="core/template" name="my_cool_block_name" template="test.phtml" after="-"/>
    </reference>
</catalog_product_view>
<?php echo $this->getLayout()->createBlock('core/template')->setTemplate('mymodule/mytemplate.phtml')->toHtml(); ?>

vous utilisez ce code partout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top