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.
Ce petit bout de code va vous permettre de reprendre automatiquement dans vos fichiers .tpl la base de votre nom de domaine.
Construire une URL Prestashop avec smarty dans vos fichiers tpl
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.
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.
{$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
{$urls.img_ps_url} // URL du répertoire racine de l’image
{$urls.img_cat_url} // Url directory of images of the categories
{$urls.img_lang_url} // Url of the language images directory
{$urls.img_prod_url} // Url of the product images directory
{$urls.img_manu_url} // Url directory of manufacturers images
{$urls.img_sup_url} // Url of the providers directory
{$urls.img_ship_url} // Url directory of images of carriers
{$urls.img_store_url} // Store url
{$urls.img_url} // Url of the image directory of the template
{$urls.css_url} // Template URL directory url
{$urls.js_url} // Template JS directory url
{$urls.pic_url} // Url file directory uploaded
{$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
{$urls.theme_assets} // Url of the “assets” directory of the template / themes / template / assets /
{$urls.actions.logout} // Url to close section in the store
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 !