Prestashop: listing des globales Smarty et des constantes de configuration

Voilà un petit pense-bête qui liste toutes les globales Smarty et les constantes configurées dans Prestashop

Cela vous permet d’utiliser dans vos fonctions ou dans vos templates un appel dynamique en gardant la compatibilité avec architecture de Prestashop

Par exemple, si votre domaine est supersonique.net  utilisez la globale Smarty {$base_dir} qui vous permettra d’obtenir la chaine « http://supersonique.net » dans vos URL

Pareil pour accéder à vos images. Utilisez {$img_ps_dir}monfichier.jpg pour obtenir le lien vers  « http://supersonique.net/img/monfichier.jpg »

Et voilà les listes.

Globales SMARTY pour vos templates :

$base_dir { dossier racine de votre boutique }
$base_dir_ssl { dossier racine de votre boutique en utilisant le protocole HTTPS }
$this_path { chemin courant d’un dossier ou d’un fichier }
$this_path_ssl { chemin courant d’un dossier ou d’un fichier en utilisant le protocole HTTPS }
$content_dir { dossier racine de votre boutique en fonction de vos réglages SSL }
$img_ps_dir { dossier racine des images “/img/” }
$img_dir { dossier images dans le thème utilisé }
$css_dir { dossier des css dans le thème utilisé }
$js_dir { dossier JavaScript dans le thème utilisé }
$tpl_dir { dossier racine du thème }
$modules_dir { dossier racine des modules }
$mail_dir { dossier racine des gabarits d’email }
$lang_iso { code ISO du langage courant }
$come_from { adresse de la page précédente [absolue] }
$shop_name { nom de la boutique }
$cart_qties { nombre total de produit dans la commande }
$cart { contenu de la commande}
$currencies { liste des monnaies disponibles }
$id_currency_cookie { id de la monnaie sélectionnée [ dépend du cookie] }
$currency { monnaie active }
$cookie { cookie actif }
$languages { liste des langues disponibles }
$logged { permet de savoir si un utilisateur est connecté }
$page_name { nom de la page courante }
$customerName { nom du client connecté [dépend de la session] }
$priceDisplay { informations sur les tarifs courant affichés [dépend de la monnaie] }

Constantes crées par la configuration Prestashop :

Base et thèmes

define(‘THEMES_DIR‘, PS_BASE_URI.‘themes/’);
define(‘THEME_IMG_DIR‘, THEMES_DIR.THEME_NAME.’/img/’);
define(‘THEME_CSS_DIR‘, THEMES_DIR.THEME_NAME.’/css/’);
define(‘THEME_JS_DIR‘, THEMES_DIR.THEME_NAME.’/js/’);
define(‘THEME_CAT_DIR‘, PS_BASE_URI.‘img/c/’);
define(‘THEME_PROD_DIR‘, PS_BASE_URI.‘img/p/’);
define(‘THEME_PROD_PIC_DIR‘, PS_BASE_URI.‘upload/’);
define(’THEME_MANU_DIR‘, PS_BASE_URI.‘img/m/’);
define(’THEME_SCENE_DIR‘, PS_BASE_URI.‘img/scenes/’);
define(’THEME_SCENE_THUMB_DIR‘, PS_BASE_URI.‘img/scenes/thumbs’);
define(’THEME_SUP_DIR‘, PS_BASE_URI.‘img/su/’);
define(’THEME_SHIP_DIR‘, PS_BASE_URI.‘img/s/’);
define(’THEME_LANG_DIR‘, PS_BASE_URI.‘img/l/’);
define(’THEME_COL_DIR‘, PS_BASE_URI.‘img/co/’);
define(’SUPP_DIR‘, PS_BASE_URI.‘img/su/’);
define(’THEME_DIR‘, THEMES_DIR.THEME_NAME.’/’);
define(’MAIL_DIR‘, PS_BASE_URI.‘mails/’);
define(’MODULE_DIR‘, PS_BASE_URI.‘modules/’);
define(’PS_IMG‘, PS_BASE_URI.‘img/’);
define(’PS_ADMIN_IMG‘, PS_IMG.‘admin/’);

Dossier :

define(’PS_ROOT_DIR‘, realpath($currentDir.’/..’));
define(’PS_CLASS_DIR‘, PS_ROOT_DIR.’/classes/’);
define(’PS_TRANSLATIONS_DIR‘, PS_ROOT_DIR.’/translations/’);
define(’PS_DOWNLOAD_DIR‘, PS_ROOT_DIR.’/download/’);
define(’PS_MAIL_DIR‘, PS_ROOT_DIR.’/mails/’);
define(’PS_MODULE_DIR‘, PS_ROOT_DIR.’/modules/’);
define(’PS_ALL_THEMES_DIR‘, PS_ROOT_DIR.’/themes/’);
define(’PS_THEME_DIR‘, PS_ROOT_DIR.’/themes/’.THEME_NAME.’/’);
define(’PS_IMG_DIR‘, PS_ROOT_DIR.’/img/’);
define(’PS_CAT_IMG_DIR‘, PS_IMG_DIR.‘c/’);
define(’PS_PROD_IMG_DIR‘, PS_IMG_DIR.‘p/’);
define(’PS_SCENE_IMG_DIR‘, PS_IMG_DIR.‘scenes/’);
define(’PS_SCENE_THUMB_IMG_DIR‘, PS_IMG_DIR.‘scenes/thumbs/’);
define(’PS_MANU_IMG_DIR‘, PS_IMG_DIR.‘m/’);
define(’PS_SHIP_IMG_DIR‘, PS_IMG_DIR.‘s/’);
define(’PS_SUPP_IMG_DIR‘, PS_IMG_DIR.‘su/’);
define(’PS_COL_IMG_DIR‘, PS_IMG_DIR.‘co/’);
define(’PS_TMP_IMG_DIR‘, PS_IMG_DIR.‘tmp/’);
define(’PS_PROD_PIC_DIR‘, PS_ROOT_DIR.’/upload/’);
define(’PS_TOOL_DIR‘, PS_ROOT_DIR.’/tools/’);
define(’PS_SMARTY_DIR‘, PS_TOOL_DIR.‘smarty/’);
define(’PS_STEST_DIR‘, PS_TOOL_DIR.‘simpletest/’);
define(’PS_SWIFT_DIR‘, PS_TOOL_DIR.‘swift/’);
define(’PS_FPDF_PATH‘, PS_TOOL_DIR.‘fpdf/’);
define(’PS_PEAR_XML_PARSER_PATH‘, PS_TOOL_DIR.‘pear_xml_parser/’);
define(’PS_CSS_DIR‘, PS_BASE_URI.‘css/’);
define(’PS_JS_DIR‘, PS_BASE_URI.‘js/’);

Bon codage !

9 Comments
  • francois

    2 octobre 2012 à 21 h 33 min Répondre

    oui un commentaire, MERCI 🙂

  • Xavier

    6 août 2013 à 11 h 43 min Répondre

    Bien pratique, merci beaucoup.

  • Blog e-commerce

    14 novembre 2013 à 15 h 20 min Répondre

    Bonjour,

    merci pour cette liste.

    je rencontre un petit obstacle, je fais des liens produits en dur dans mon footer en utilisant cet appel :
    <code>{$base_dir}product.php?id_product=23}</code>

    Je ne trouve pas ce que je dois rajouter pour appliquer la ré-écriture d’url. Un lien natif vers une page CMS est sous cette forme :

    <code>{$link->getCMSLink($cmss->id, $cmss->link_rewrite)|escape:'htmlall':'UTF-8'}</code>

    je vois bien le « link_rewrite » mais comment l’intégrer à première ligne de code ?

    Merci pour votre retour.
    je comprendrais que vous ne fournissiez pas ce genre d’info 😉

    • Blog e-commerce

      14 novembre 2013 à 16 h 38 min

      j’ai trouvé, je donne la réponse pour les autres ça peut servir :

      Exemple :

      {$link->getProductLink(123)}

      la ré-écriture est automatiquement prise en compte.

  • Alan

    19 novembre 2013 à 21 h 39 min Répondre

    Bonjour !

    Savez vous comment récupérer l’url de base de son prestashop équivalente à $_SERVER[‘SERVER_NAME’]

  • Malek

    30 juillet 2016 à 19 h 30 min Répondre

    Bonjour,
    LEs appels vers les js et css dans mon site se font via url. j’ai vu dans header.tpl qu’il y avait {content_dir}. comment puis-je changer ceci par un chemin absolu?

    Merci

    • Mike Castro Demaria

      22 août 2016 à 20 h 55 min

      Pour les plugins par ex, il faut utiliser _MODULEDIR pour la racine du path.

  • igmarketingnetwork.com

    27 janvier 2017 à 15 h 57 min Répondre

    Merci d’avoir écrit cette article! Je suis votre site depuis longtemps mais je n’avais jamais songé à laisser un commentaire.Je me suis
    inscrit à votre blog et j’ai partager votre article sur mon compte Facebook.
    Merci encore pour cet article! Il est très bien rédigé et l’information est
    complète 🙂

  • Samia

    6 juillet 2021 à 22 h 50 min Répondre

    Article techniquement utile !

    Je recherche un moyen sous PrestaShop 1.7 pour récupérer l’id et le nom du produit afin de réécrire le nom de l’image dans un .tpl

    actuellement l’image récupère seulement l’id du produit pour générer l’image en .webp
    ex: 1.webp

Répondre Mike Castro Demaria Annuler la réponse

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Activer les notifications Super merci ! Non merci !
On which category would you like to receive?