Personnaliser les metas des pages commentaires produits (reviews)

  • De le 02 octobre 2009
  • Difficulté : 3/4

Personnaliser les metas des pages commentaires produits (reviews) 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>0.1</version>
        </Magentix_MetasReviews>
    </modules>
    <global>
        <models>
             <metasreviews>
                 <class>Magentix_MetasReviews_Model</class>
             </metasreviews>
        </models>
    </global>
    <frontend>
        <events>
            <controller_action_layout_generate_blocks_after>
                <observers>
                    <magentix_metasreviews_observer>
                        <type>singleton</type>
                        <class>metasreviews/observer</class>
                        <method>editMetas</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 ;)

commentaires

Commentez cet article : Personnaliser les metas des pages commentaires produits (reviews)