Mise à jour 15/07/2021 : J’ai ajouté des nouvelles variables et j’ai fait une distinction entre les versions de PS
Quand vous développez un site Prestashop et qu’il a besoin d’être déplacé ou transféré sur une nouvelle URL, il est préférable d’avoir utilisé une variable smarty pour vos liens.
Regardez ma vidéo pour apprendre à créer une variable d’url smarty
Vous pouvez suivre en vidéo l’intégration dans un fichier tpl d’un thème Prestashop une variable. Sinon, vous pouvez continuer mon article blog pour retrouver les différents codes smarty que je mets à disposition.
Construire une URL Prestashop avec smarty dans vos fichiers tpl
Ce petit bout de code va vous permettre de reprendre automatiquement dans vos fichiers .tpl la base de votre nom de domaine.
base url pour Prestashop 1.6
Utilisation du code {$base_dir}:
base url pour Prestashop 1.7
Pour un bon fonctionnement des variables sur cette version, utilisez bien {$urls.base_url} :
Adaptez votre variable si votre site est en https pour les versions 1.5 ou 1.6
Pour Prestashop 1.7 vous n’avez pas besoin de mettre une de ces configurations ci-dessous. Utilisez la variable au-dessus que vous ayez ou non un SSL d’activé sur votre hébergement.
Donc si vous avez votre boutique inférieur à 1.7 et en HTTPS, il faut utilisez {$base_dir_ssl} :
Mais l’idéal, surtout si vous êtes aujourd’hui en HTTP et que demain vous voulez passer en HTTPS voici ce qu’il faut faire :
Multilingues Prestashop : Les variables smarty dont vous avez besoin
Attention, si vous avez un Prestashop en plusieurs langues, évitez d’avoir une redirection 302. Il faut signaler dans votre code que vous avez des langues avec des variations.
Le code smarty de base URL avec les langues sur Prestashop 1.6
Variable smarty urls.base_url pour le multilingue sur Prestashop 1.7
Le code est bien plus court aujourd’hui. Nous utilisons {$language.iso_code} pour récupérer l’ISO de la langue et l’ajouter dans l’URL. J’utilise ce code qui est disponible dans le module ps_languageselector.
Utilisez une variable d’url smarty spécial pour les produits, catégories, cms…
Voici un exemple si par exemple vous souhaitez un lien vers la page cms numéro 1.
Vous devez remplacer mettre dans entity votre choix : product, category, cms… Si je veux faire la même chose pour mon produit numéro 25 voici comment faire.
Liste des variables smarty URL Prestashop 1.7
Je vous mets ici ce que j’ai pu trouver sur différents sujets dans le forum de Prestashop.
Les différentes variables d’URLS adaptées à la version 1.7 pour vous permettre de construire des liens selon vos besoins.
Les variables smarty d’urls de la boutique
{$urls.base_url} // Adresse général de la boutique en ligne
{$urls.current_url} // Adresse actuelle (url) où nous sommes
{$urls.shop_domain_url} // Domaine principal de la boutique
Les variables smarty pour les images
{$urls.img_ps_url} // Url du répertoire racine de l’image
{$urls.img_cat_url} // Url du répertoire des images des catégories
{$urls.img_lang_url} // Url du répertoire des images de la langue
{$urls.img_prod_url} // Url du répertoire des images du produit
{$urls.img_manu_url} // Url répertoire des images fabricants
{$urls.img_sup_url} // Url répertoire des images fournisseurs
{$urls.img_ship_url} // Url répertoire d’images de transporteurs
{$urls.img_store_url} // Url répertoire des images des boutiques
{$urls.img_url} // Url du répertoire des images du template
Les variables d’urls smarty de votre thème
{$urls.css_url} // Template URL directory url
{$urls.js_url} // Template JS directory url
{$urls.pic_url} // Répertoire de fichiers d’URL téléchargé
{$urls.theme_assets} // Url of the “assets” directory of the template / themes / template / assets /
{$urls.actions.logout} // Url to close section in the store
Les variables d’urls smarty pour les pages
{$urls.pages.address} // Url from the “My Address” section
{$urls.pages.addresses} // Url from the “My addresses” section
{$urls.pages.authentication} // Url section of the authentication page
{$urls.pages.cart} // Cart section url (order summary)
{$urls.pages.category} // Url section of categories
{$urls.pages.cms} // Url of the content section
{$urls.pages.contact} – > Url section of the contact form
{$urls.pages.discount} // Url of the discount voucher section
{$urls.pages.guest_tracking} // Tracking url for unregistered clients
{$urls.pages.history} // Url from the order history section
{$urls.pages.identity} // Url of the section “Personal data”
{$urls.pages.index} // Page url
{$urls.pages.my_account} // Url section of my account
{$urls.pages.order_confirmation} // Url section of the order confirmation page.
{$urls.pages.order_follow} – > Url in the “Order Tracking”
{$urls.pages.order} // Url of the order page
{$urls.pages.order_return} // Url of the order return page
{$urls.pages.order_slip} // Url of the order slip page
{$urls.pages.pagenotfound} // Url of section “404 (Page not found)”
{$urls.pages.password} // Url of the section “Recover Password”
{$urls.pages.pdf_invoice} // Pdf invoice page url
{$urls.pages.pdf_order_return} // Pdf order return page url
{$urls.pages.pdf_order_slip} // Pdf order slip url page
{$urls.pages.prices_drop} // Url section we lowered prices / products discount / discounts
{$urls.pages.product} // Product tab url
{$urls.pages.search} // Url of the searcher section
{$urls.pages.sitemap} // Site Map section url
{$urls.pages.stores} // Url of the section “Shops / Our stores”
{$urls.pages.supplier} // Url from the providers section
{$urls.pages.register} // Url log page
{$urls.pages.order_login} // Order login page url
Vous avez besoin d’un développeur Prestashop ?
– J’interviens sur votre site
– Je recherche, j’identifie et je corrige le problème
– Feedback de l’intervention par mail et/ou préconisation pour une prestation complémentaire
…
Nous pouvons travailler ensemble, il suffit de me contacter !
Merci, j’ai pu corrigé un bug d’un module grâce à ton code. Le module en mode SSL appellait le base store url non sécurisé sur mon site sécurisé. Par contre, le code directement dans le lien html en ref no follow n’a pas fonctionné. J’ai du créer une règle {if $force_ssl} mettre le lien URL complet avec et vice versa.
Merci de ton retour !
Bonjour. Est-ce qu’on peut utiliser les variables dans CMS pages en html?
Merci
Non, c’est uniquement dans les fichiers de Prestashop
Merci Matthieu