16 Fév 2015
Variables smarty avec base_url pour vos liens Prestashop 1.7

Base URL sur Prestashop

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}:

<a href="{$base_dir}categorie/produit-1.html">votre texte</a>

<img src="{$base_dir}themes/default/img/image-1.png">

base url pour Prestashop 1.7

Pour un bon fonctionnement des variables sur cette version, utilisez bien {$urls.base_url} :

<a href="{$urls.base_url}categorie/produit-1.html">votre texte</a>

<img src="{$urls.base_url}themes/default/img/image-1.png">

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} :

<a href="{$base_dir_ssl}categorie/produit-1.html">votre texte</a>

<img src="{$base_dir_ssl}themes/default/img/image-1.png">

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 :

<a href="{if $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}categorie/produit-1.html">votre texte</a>

<img src="{if $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}themes/default/img/image-1.png">

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

<a href="{if $force_ssl}{$base_dir_ssl}{$lang_iso}{else}{$base_dir}{$lang_iso}{/if}categorie/produit-1.html">votre texte</a>

<img src="{if $force_ssl}{$base_dir_ssl}{$lang_iso}{else}{$base_dir}{$lang_iso}{/if}themes/default/img/image-1.png">

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.

<a href="{$urls.base_url}{$language.iso_code}/categorie/produit-1.html">votre texte</a>

<img src="{$urls.base_url}{$language.iso_code}/themes/default/img/image-1.png">

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 !

2 commentaires sur “Base URL sur Prestashop
  1. 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *