Ajouter un formulaire d'avis à la page produit Magento 1.9
-
12-12-2019 - |
Question
Je cherche à déplacer le formulaire d'évaluation du produit de /review/product/list/ vers la page produit, sous les avis existants, sur Magento 1.9.0.1 en utilisant un thème enfant de RWD.
Voici l'onglet de révision d'origine dans review.xml :
<catalog_product_view>
<reference name="product.info">
<block type="review/product_view_list" name="product.reviews" as="reviews" template="review/product/view/list.phtml" after="additional">
<action method="addToParentGroup"><group>detailed_info</group></action>
<action method="setTitle" translate="value"><value>Reviews</value></action>
</block>
</reference>
</catalog_product_view>
Cela affiche les avis et le formulaire sur la page produit :
<catalog_product_view>
<reference name="product.info">
<block type="review/product_view_list" name="product.info.product_additional_data" as="product_additional_data" template="review/product/view/list.phtml">
<block type="review/form" name="product.review.form" as="review_form">
<block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label">
<label>Review Form Fields Before</label>
<action method="setMayBeInvisible"><value>1</value></action>
</block>
</block>
</block>
</reference>
</catalog_product_view>
Comment puis-je mettre cela dans l'onglet « avis » ?
La solution
Vous allez dans la bonne direction, mais vous devez apporter quelques modifications :
addToParentGroup
etsetTitle
sont utilisés pour afficher le contenu en cours de révision, alors ajoutez ce code ci-dessous<action method="addToParentGroup"><group>detailed_info</group></action> <action method="setTitle" translate="value"><value>Reviews</value></action>
vous devez changer le nom d'alias du type de bloc
review/product_view_list
àproduct_additional_data_review
commeproduct_additional_data
le nom d'alias existe déjà dans le produit.<block type="review/product_view_list" name="product.info.product_additional_data_review" as="product_additional_data_review" template="review/product/view/list.phtml"> <action method="addToParentGroup"><group>detailed_info</group></action> <action method="setTitle" translate="value"><value>Reviews</value></action> <block type="review/form" name="product.review.form" as="review_form"> <block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label"> <label>Review Form Fields Before</label> <action method="setMayBeInvisible"><value>1</value></action> </block> </block> </block>
Autres conseils
Prenez le catalogue.xml de la valeur par défaut à votre thème et modifiez comme suit
<catalog_product_view translate="label">
<reference name="content">
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
<block type="review/product_view_list" name="product.top.reviews" as="product.top.reviews" template="review/product/view/list.phtml">
<block type="review/form" name="product.review.form" as="review_form" />
</block>
</block>
</reference>
</catalog_product_view>
et dans la page de détail, essayez d'ajouter
<?php echo $this->getChildHtml('review_form') ?>
Merci beaucoup pour l'indice, pour moi, cela a fonctionné très bien.J'ai toujours un problème, les onglets d'examen sont montrons deux fois.Le XML est correctement, jetez un coup d'œil:
<block type="review/product_view_list" name="product.info.product_additional_data_review" as="product_additional_data_review" template="review/product/view/list.phtml">
<action method="addToParentGroup"><group>detailed_info</group></action>
<action method="setTitle" translate="value"><value>Customer Reviews</value></action>
<block type="review/form" name="product.review.form" as="review_form">
<block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label">
<label>Review Form Fields Before</label>
<action method="setMayBeInvisible"><value>1</value></action>
</block>
</block>
</block>
Ajouter <remove name="product.reviews"/>
avant que les balises et la version dupliquée ne disparaissent.De cette façon, le bloc d’avis sera d’abord supprimé, puis il sera à nouveau ajouté avec le nouveau bloc d’avis.
<block type="review/product_view_list" name="product.info.product_additional_data_review" as="product_additional_data_review" template="review/product/view/list.phtml">
<remove name="product.reviews"/>
<action method="addToParentGroup"><group>detailed_info</group></action>
<action method="setTitle" translate="value"><value>Reviews</value></action>
<block type="review/form" name="product.review.form" as="review_form">
<block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label">
<label>Review Form Fields Before</label>
<action method="setMayBeInvisible"><value>1</value></action>
</block>
</block>
</block>
Mettez simplement ce code dans votre review.xml
fichier de thème de mise en page.
<catalog_product_view>
<reference name="product.info">
<block type="review/product_view_list" name="product.reviews" as="reviews" template="review/product/view/list.phtml" after="additional">
<action method="addToParentGroup">
<group>detailed_info</group>
</action>
<action method="setTitle" translate="value">
<value>Reviews</value>
</action>
<block type="review/form" name="product.review.form" as="review_form"/>
<block type="review/product_view_list" name="product.info.product_additional_data" as="product_additional_data_review" template="review/product/view/reviews-in-tab.phtml">
<block type="review/form" name="product.review.form" as="review_form"/>
</block>
</block>
</reference>
</catalog_product_view>