Fetard Posted January 26, 2009 Share Posted January 26, 2009 BonjourDéveloppant un module qui doit utiliser des .tpl stockés dans le dossier de chaque thème, je cherche à récupérer le chemin vers ce fameux dossier dans la définition du module.Autant {$theme_dir} correspond au dossier des css d'un thème dans un .tpl, autant je ne vois pas comment le récupérer dans le php du module.Sauriez vous m'éclairer ? Link to comment Share on other sites More sharing options...
Fetard Posted January 26, 2009 Author Share Posted January 26, 2009 En recherchant dans le code : _PS_THEME_DIR renvoit le dossier physique jusqu'au .tplmais j'essaie, dans ce module, d'afficher un .tpl rangé justement dans _PS_THEME_DIRLa syntaxe return $this->display(__FILE__, _PS_THEME_DIR_.'modules/test.tpl',180); n'a pas l'air de fonctionner.... Link to comment Share on other sites More sharing options...
Tox Posted July 31, 2010 Share Posted July 31, 2010 As-tu réussi à pointer vers le répertoire d'un thème dynamiquement ? Link to comment Share on other sites More sharing options...
Yannkee Posted September 27, 2010 Share Posted September 27, 2010 Bj,Il faut assigner ta variable dans ton fichier php avant. Exemple : $smarty->assign('chemin_vers_mon_fichier_css', _THEME_DIR_.'modules/monmodule/css/mon.css'); et dans ton tpl, tu appelles {$chemin_vers_mon_fichier_css} Link to comment Share on other sites More sharing options...
Tox Posted September 28, 2010 Share Posted September 28, 2010 Merci pour l'astuce, par contre comment faire si je veux appeler {$chemin_vers_mon_fichier_css} dans un module ? Link to comment Share on other sites More sharing options...
Yannkee Posted September 28, 2010 Share Posted September 28, 2010 J'ai vu que je n'avais pas forcement repondu a la question initiale...Tu veux l'appeler d'ou ? d'un fichier php ou tpl ? Link to comment Share on other sites More sharing options...
Tox Posted September 28, 2010 Share Posted September 28, 2010 Pour l'instant j'essaie d'afficher le répertoire du thème en cours (themes/montheme/) dans un module pour faire les liens vers mes images. Link to comment Share on other sites More sharing options...
Yannkee Posted September 28, 2010 Share Posted September 28, 2010 pas sur de comprendre ta demandesi tu veux appeler depuis un tpl, quelque soit son emplacement, declaration php faite prealablement vois ma reponse precedentesi tu veux appeler depuis un fichier php tu declares simplement en php $chemin_vers_mon_fichier_ou_mon_dossier_en_php =_THEME_DIR_.'modules/monmodule/mondossier/oumonfichier.extension'; et apres tu appelles $chemin_vers_mon_fichier_ou_mon_dossier_en_php ou tu veux dans ton fichier php... Link to comment Share on other sites More sharing options...
Tox Posted September 28, 2010 Share Posted September 28, 2010 J'ai mis ça dans la page header.php $smarty->assign('dossier_theme', _THEME_DIR_); dans mon .tpl j'ai mis ça : et ça ne marche pas :s Link to comment Share on other sites More sharing options...
YopixelAE Posted September 28, 2010 Share Posted September 28, 2010 Bonjour, {$dossier_theme} ce n'est pas ce que t'as proposé AEOScom ! Link to comment Share on other sites More sharing options...
Yannkee Posted September 28, 2010 Share Posted September 28, 2010 Ca ne marche pas... mais encore, en rendu dans ta page ca donne quoi au niveau de la balise Link to comment Share on other sites More sharing options...
Tox Posted September 28, 2010 Share Posted September 28, 2010 Je ne pense pas que remplacer "chemin_vers_mon_fichier_css" par "dossier_theme" change quelque chose si ?Le code HTLM est : au lieu de : Link to comment Share on other sites More sharing options...
Yannkee Posted September 28, 2010 Share Posted September 28, 2010 non, Felix a du lire trop rapidement, si tu respectes les noms des variables ca ne change rien.Dans le header.php tu dois te retrouver avec $smarty->assign(array( 'HOOK_HEADER' => Module::hookExec('header'), 'HOOK_MENU_TOP' => Module::hookExec('MenuTop'), 'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn'), 'HOOK_TOP' => Module::hookExec('top'), 'static_token' => Tools::getToken(false), 'token' => Tools::getToken(), 'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_, 'content_only' => intval(Tools::getValue('content_only')), 'dossier_theme' => _THEME_DIR_ )); Ca devrait marcher... Sinon essaie dans une paire php/tpl un peu plus simple pour voir ou ca coince... Link to comment Share on other sites More sharing options...
Tox Posted September 28, 2010 Share Posted September 28, 2010 Si je fais l'assign dans header.php et l'appel dans header.tpl ça marche mais si l'appel est dans le .tpl de mon module la valeur n'est pas renvoyée.En fait il faut assigner dans le php qui va appeler le template. function hookLeftColumn($params) { global $smarty; $smarty->assign('dossier_theme', _THEME_DIR_); return $this->display(__FILE__, 'montemplate.tpl'); } En tout cas merci ton aide Link to comment Share on other sites More sharing options...
Yannkee Posted September 28, 2010 Share Posted September 28, 2010 J'ai essaye en faisant un appel dans le bloc newsletter par exemple que j'affiche dans le hook footer en l'occurence mais ca n'a pas d'incidence, ca fonctionne avec ce code.Declare la variable dans le php de ton module (attention je te rappelle que le php du module doit etre a la racine de PS, dans le dossier modules, pas dans le dossier modules de ton theme au cas ou, je me suis fait avoir une bonne paire de fois ) Link to comment Share on other sites More sharing options...
Yannkee Posted September 28, 2010 Share Posted September 28, 2010 ok, j'ai lu le mail pas le post, donc tu y es arrive, et tu as trouve tout seul. Mais la solution que je t'ai proposee fonctionne (au moins sur la version 1.3.1) Link to comment Share on other sites More sharing options...
Yannkee Posted September 30, 2010 Share Posted September 30, 2010 tu peux aussi recuper (j'avais oublie) _PS_THEME_DIR_ (pour la variable php) qui est dans defines.inc.php et {$tpl_dir} qui est declare dans init.php _PS_THEME_DIR_ Link to comment Share on other sites More sharing options...
Tox Posted September 30, 2010 Share Posted September 30, 2010 Oui mais {$tpl_dir} renvoie : home/user/site.com/themes/mon_theme/et non : themes/mon_theme/Mais c'est bon à savoir, merci Link to comment Share on other sites More sharing options...
Yannkee Posted September 30, 2010 Share Posted September 30, 2010 oui tu as raison, excuse moi, je n'ai pas verifie, enfin bon, le principe de declaration vu plus haut reste valable... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now