kobalt3110 Posted August 23, 2012 Share Posted August 23, 2012 Bonjour à tous et à toutes ! Voici qu'aprés plusieurs heures de luette et de recherches infructueuses, je me présente à vous dans l'espoir dobtenir de l'aide et préserver ma santé mentale ! Voilà mon problème : Je customise Prestashop de manières à ouvrir les fiches produit en AJAX Jquery dans une "lightbox", ce qui fonctionne à merveille, ou presque. Le but est d'afficher la page produit en "content_only" (c'est à dire sans header ni footer) dans cette lightbox, à l'aide de ce paramètre qu'on passe dans l'URL de la page produit : http://www.monsite.com/product.php?id_product=XXX&content_only=1 Jusque là, tout va bien. Mais quand le SEO s'en mèle (= quand je l'active), le content_only est tout simplement ignoré ! "Pourquoi", me demanderez-vous ? Voilà le topo : avec le SEO, l'URL d'une fiche produit récupéré à l'aide de la fonction "getProductLink" de prestashop renvoie un lien de la forme : http://www.monsite.com/fr/id_du_produit-nom_du_produit_reecrit.html Et lorsqu'on accéde à ce type le lien, le système y ajoute la catégorie : http://www.monsite.com/fr/categorie_du_produit/id_du_produit-nom_du_produit_reecrit.html J'ai donc testé : http://www.monsite.com/fr/id_du_produit-nom_du_produit_reecrit.html?content_only=1 qui méne à : http://www.monsite.com/fr/categorie_du_produit/id_du_produit-nom_du_produit_reecrit.html Sans résultat, le content_only est zappé et le header et footer s'affichent Quelqu'un a-t-il une idée pour égler le problème ? D'avance, merci ! Link to comment Share on other sites More sharing options...
kobalt3110 Posted August 23, 2012 Author Share Posted August 23, 2012 Bon... Bah commed'habitude je trouv ela solution 5 minutes aprés avoir posté le problème Ceci étant, pour rendre la chose constructive: voici la solution au problème, ca pourrait éviter des souffrances à d'autres : Le problème n'en est en fait pas un, c'est le fonctionnement normal de prestashop. La fonction de réécriture des URLs produits (getProductLink dans le fichier /classes/Link.php), qui est appellée si le lien demandé ne correpond pas exactement au bon format, ne tien pas compte du tout du paramètre content_only. Pour palier à ce problème, deux solution : 1 - Modifier la fonction en lui ajoutant un nouveau paramètre "content_only" à renseigner à chaque appel de ladite fonction. Il faudra bien sure en suite traiter ce paramètre dans la fonction. Non testé, mais aucune raison pour que ca ne fonctionne pas. 2 - Commenter les lignes de la fonction qui ajoutent la categorie du produit dans l'URL réécrit : if (isset($id_product->category) AND !empty($id_product->category) AND $id_product->category != 'home') $link .= $id_product->category.'/'; else $link .= ''; aux lignes 77 et 108 ! Cette solution fonctionne pour moi ! Link to comment Share on other sites More sharing options...
kobalt3110 Posted August 23, 2012 Author Share Posted August 23, 2012 3ème solution qui évite la destruction e la fonction existante : créer une nouvelle fonction (par exemple nommée getProductLinkContentOnly) dans le même fichier, qui tiendra compte du paramètre content_only. Cela permet d'appeler une fiche produit tanto en content_only, tanto normalement. Inutile si vous n'appellez vos fiches produit qu'en content_only, comme dans mon cas ! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now