Comment insérer modèle de base en page d'affichage du produit avant le prix?
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?
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.