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 !

8 Comments
  • francois

    2 octobre 2012 at 21 h 33 min Répondre

    oui un commentaire, MERCI 🙂

  • Xavier

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

    Bien pratique, merci beaucoup.

  • Blog e-commerce

    14 novembre 2013 at 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 :
    {$base_dir}product.php?id_product=23}

    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 :

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

    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 at 16 h 38 min Répondre

      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 at 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 at 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

  • igmarketingnetwork.com

    27 janvier 2017 at 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 🙂

Post a Comment