Jump to content

Problème page profuit + content_only + SEO


kobalt3110

Recommended Posts

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...