Jump to content

Récupérer le chemin vers le dossier du thème courant


Recommended Posts

Bonjour
Dé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

En recherchant dans le code : _PS_THEME_DIR renvoit le dossier physique jusqu'au .tpl

mais j'essaie, dans ce module, d'afficher un .tpl rangé justement dans _PS_THEME_DIR

La 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

  • 1 year later...
  • 1 month later...

pas sur de comprendre ta demande
si tu veux appeler depuis un tpl, quelque soit son emplacement, declaration php faite prealablement vois ma reponse precedente
si 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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...