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 !
francois
2 octobre 2012 à 21 h 33 minoui un commentaire, MERCI 🙂
Xavier
6 août 2013 à 11 h 43 minBien pratique, merci beaucoup.
Blog e-commerce
14 novembre 2013 à 15 h 20 minBonjour,
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 minj’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 minBonjour !
Savez vous comment récupérer l’url de base de son prestashop équivalente à $_SERVER[‘SERVER_NAME’]
Malek
30 juillet 2016 à 19 h 30 minBonjour,
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 minPour les plugins par ex, il faut utiliser _MODULEDIR pour la racine du path.
igmarketingnetwork.com
27 janvier 2017 à 15 h 57 minMerci 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 minArticle 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