Pourquoi l'onglet des avis ne s'affiche pas correctement avec mon thème ?

Si vous constatez que l'onglet "avis" du module n'apparait pas avec les onglets des données extra produit, c'est sûrement que votre thème ne respecte pas les standards PrestaShop en terme de structure HTML.

(Ceci est aussi vrai pour les versions de PS 1.6 avec les thèmes qui incluent les onglets dans les pages produit. Dans ce cas, vous devriez mettre à jour votre module avec une version 4.0.x et bénéficier de l'option qui vous permettra d'afficher les avis dans les onglets de la page produit)

L'onglet "avis" doit apparaitre de la manière suivante sur votre page produit : 

Si ce n'est pas le cas, c'est que certains éléments HTML ont été modifiés dans votre thème. Voici le code source d'un thème standard, pour que vous puissiez donner l'information à la personne en charge de votre boutique : webmaster / technicien / agence web (fichier concerné : template product.tpl) :

Les 2 IDs "more_info_tabs" et "more_info_sheets" sont indispensables pour que la gestion de surbrillance et de contenu des onglets fonctionne.

La classe CSS "block_hidden_only_for_screen" doit aussi exister dans les feuilles de style de Prestashop (theme/votre_theme/css/global.css).

L'un des effets attendu par le module, c'est lorsque vous cliquez sur le bouton "lire les avis", un effet d'ascenseur se fait et met en surbrillance notre onglet "avis", permettant ainsi d'afficher le contenu de l'onglet, c.à.d les avis clients. Cela ne peut se faire uniquement que si la structure HTML est repsectée avec les balises <li><a></a></li>.

Voici le code de notre module qui fait cet effet, template : templates/hook/reviews.tpl, ligne 91 :

onclick="$('a#more_info_tab_reviews[href=#idTab{$iIdTab}]').trigger('click'); $.scrollTo( 'a#more_info_tab_reviews', 1200 );"

########## IMPORTANT #############

Au sujet de la surbrillance des onglets, vous devez regarder le template : templates/hook/product-tab-content.tpl, ligne 167 à 191, vous avez ce code javascript :

function deactivateReviewTab() {
    if ($('#more_info_tabs').length != 0) {
       $("#more_info_tabs li").each(function(i, elt)
       {
          if ($(this).find('a[href=#idTab1]').length != 0 ) {
            $('a', this).addClass('selected');
         }
        else {
          $('a', this).removeClass('selected');
       }
    });
  }
  if ($('#more_info_sheets').length != 0) {
     $("#more_info_sheets").children().each(function(i, elt)
     {
          if ($(this).attr('id') == 'idTab1') {
             $(this).removeClass('block_hidden_only_for_screen');
          }
         else if ($(this).attr('id') != '') {
            $(this).addClass('block_hidden_only_for_screen');
        }
    });
  }
}
setTimeout(function() {deactivateReviewTab()}, 3000);

A chaque fois que la page produit est affichée, 2 possibilités s'offrent à vous sur la gestion des onglets de la partie extra produit d'un produit :

- si un utilisateur a posté un avis ou s'il a cliqué sur un numéro de page avis pour afficher la page produit avec telle page avis, dans ce cas-là notre onglet "avis" est automatiquement affiché. Il est facile d'identifier si vous êtes dans ce cas en regardant simplement l'URL active de votre navigateur. si celle-ci comprend l'un des 2 paramètres suivants : bPost=true ou iPage=x, normalement, vous ne devez pas rencontrer de problème dans ce cas précis.

- si un utilisateur a simplement cliqué sur le lien d'une page produit et qu'il est redirigé sur la fiche produit, alors notre onglet "avis" restera actf pendant quelques secondes dans l'unique but de laisser le temps à l'API Javascript Facebook de faire afficher les boutons "j'aime" dans notre onglet et ensuite de rendre actif le premier onglet de la partie "données extra produit" d'un template de base. Ceci est fait pour que seuls les naviagteurs I.E et Firefox affichent correctement les boutons j'aime.

Si votre thème n'est pas un thème standard ou si celui-ci a été modifié pour gérer différemment les onglets de la fiche produit, c'est-à-dire ne pas contenir l'onglet "en savoir plus" comme ci-dessous avec l'ID 1, alors vous devez modifier la ligne du code Javascript au-dessus qui teste l'ID tab 1 comme suit :

if ($(this).find('a[href=#idTab1]').length != 0 ) { => remplacez l'ID 1 par celui de votre onglet par défaut.

########## / IMPORTANT #############

Si toutefois, cela n'était pas suffisant, vous pouvez consulter cette autre de nos FAQs au sujet des problèmes d'intégration : http://faq.businesstech.fr/faq.php?id=43

 

 

Autres FAQ dans la même catégorie