Personnaliser les metas des pages commentaires produits (reviews)
- Par Magentix le 02/10/2009
- Difficulté : 3/4
Sous Magento les metas des pages de commentaires sont identiques à ceux définis pour le produit. Les internautes peuvent y insérer des messages bénéfiques au référencement. Personnaliser les metas de ces pages est donc avantageux...
Par défaut, la page dédiée aux commentaires du produit (review_product_list) ressemble beaucoup à celle du produit. Seuls quelques blocs n'y figurent pas et les commentaires des internautes sont affichés au bas de la page, accompagnés du formulaire.
Ces commentaires sont extrêmement utiles, ils dynamisent la page et génèrent des mots clés. Le problème est que le titre et la description de cette page sont strictement identiques à ceux de la fiche produit... Cela n'est pas forcement pénalisant mais il est fortement conseillé d'éviter les doublons (Google vous les signalera dans le Webmaster Tools).
Un simple petit module permet de palier à cet inconvénient. En voici un exemple.
Architecture du module
- app/code/local/Magentix/MetasReviews/etc/
- config.xml
- app/code/local/Magentix/MetasReviews/Model/
- Observer.php
- app/etc/modules/
- Magentix_MetasReviews.xml
Développement du module
Rien de très complexe, un simple Observer sur l'event controller_action_layout_generate_blocks_after va nous permettre de modifier les metas de notre block head comme bon nous semble :
app/code/local/Magentix/MetasReviews/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Magentix_MetasReviews>
<version>[[blue]]0.1[[/blue]]</version>
</Magentix_MetasReviews>
</modules>
<global>
<models>
<metasreviews>
<class>[[blue]]Magentix_MetasReviews_Model[[/blue]]</class>
</metasreviews>
</models>
</global>
<frontend>
<events>
<controller_action_layout_generate_blocks_after>
<observers>
<magentix_metasreviews_observer>
<type>[[blue]]singleton[[/blue]]</type>
<class>[[blue]]metasreviews/observer[[/blue]]</class>
<method>[[blue]]editMetas[[/blue]]</method>
</magentix_metasreviews_observer>
</observers>
</controller_action_layout_generate_blocks_after>
</events>
</frontend>
</config>
Il ne reste plus qu'à écrire la fonction editMetas...
app/code/local/Magentix/MetasReviews/Model/Observer.php
<?php
class Magentix_MetasReviews_Model_Observer {
public function editMetas($observer) {
$layout = $observer->getLayout();
if($layout->getBlock('product.info.product_additional_data') && $headBlock = $layout->getBlock('head')) {
$headBlock->setTitle($headBlock->getTitle().' - Commentaires des internautes');
}
}
}
Si le block product.info.product_additional_data existe sur la page on récupère le titre défini pour le produit et on y juxtapose simplement une phrase. On peut procéder de la même façon pour la balise meta description.
Cet exemple peut servir de base à un module beaucoup poussé, je vous laisse imaginer les possibilités ;)
merci pour le module, il fonctionne parfaitement.
par contre je suis novice et j'ai bien tenté de faire la même chose pour les meta desc et kw mais je n'y suis pas arrivé... :/ Un petit coup de main serait bienvenu... Merci d'avance.