biogelix Posted February 1, 2019 Share Posted February 1, 2019 Bonjour à tous, je rencontre une difficulté sur prestashop, j'ai créer mon plugin et j'obtiens une erreur qui me dit comme quoi le Template n'est pas trouvé, or, il est belle et bien présent. No template found for /modules/monmodule/views/templates/fronthistory.tpl at line 68 in file classes/Smarty/TemplateFinder.php Merci par avance de votre aide Link to comment Share on other sites More sharing options...
Eolia Posted February 1, 2019 Share Posted February 1, 2019 Et il y a quoi dans votre ligne d'appel à votre tpl après les assign() ? Link to comment Share on other sites More sharing options...
doekia Posted February 1, 2019 Share Posted February 1, 2019 ou bel est bien pas présent avec ce path? Link to comment Share on other sites More sharing options...
biogelix Posted February 1, 2019 Author Share Posted February 1, 2019 $this->setTemplate(_PS_MODULE_DIR_ . 'monmodule/views/templates/fronthistory.tpl'); Link to comment Share on other sites More sharing options...
doekia Posted February 1, 2019 Share Posted February 1, 2019 $this->setTemplate('fronthistory.tpl'); ou selon le cas (dans un controller) $this->setTemplate(_PS_THEME_DIR_.'fronthistory.tpl'); Link to comment Share on other sites More sharing options...
biogelix Posted February 1, 2019 Author Share Posted February 1, 2019 Merci pour ta réponse, les deux ne fonctionnent pas Link to comment Share on other sites More sharing options...
doekia Posted February 1, 2019 Share Posted February 1, 2019 Surtout ne prend pas la peine ni de dire que tu code en 1.7, ni même si tu es dans un controller module ou un hook module On doit deviner ? Moi je devine que tu nous prend pour tes boys Link to comment Share on other sites More sharing options...
Eolia Posted February 1, 2019 Share Posted February 1, 2019 Le code est pourtant clair^^ /** * Assigns module template for page content * * @param string $template Template filename * @throws PrestaShopException */ public function setTemplate($template) { if (!$path = $this->getTemplatePath($template)) { throw new PrestaShopException("Template '$template' not found"); } $this->template = $path; } /** * Finds and returns module front template that take the highest precedence * * @param string $template Template filename * @return string|false */ public function getTemplatePath($template) { if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template)) { return _PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template; } elseif (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/views/templates/front/'.$template)) { return _PS_THEME_DIR_.'modules/'.$this->module->name.'/views/templates/front/'.$template; } elseif (Tools::file_exists_cache(_PS_MODULE_DIR_.$this->module->name.'/views/templates/front/'.$template)) { return _PS_MODULE_DIR_.$this->module->name.'/views/templates/front/'.$template; } return false; } Si vous utilisez /views/template/ alors il faut ajouter front/ dans le chemin (et créer le répertoire)^^ Link to comment Share on other sites More sharing options...
biogelix Posted February 1, 2019 Author Share Posted February 1, 2019 4 minutes ago, Eolia said: Le code est pourtant clair^^ /** * Assigns module template for page content * * @param string $template Template filename * @throws PrestaShopException */ public function setTemplate($template) { if (!$path = $this->getTemplatePath($template)) { throw new PrestaShopException("Template '$template' not found"); } $this->template = $path; } /** * Finds and returns module front template that take the highest precedence * * @param string $template Template filename * @return string|false */ public function getTemplatePath($template) { if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template)) { return _PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template; } elseif (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/views/templates/front/'.$template)) { return _PS_THEME_DIR_.'modules/'.$this->module->name.'/views/templates/front/'.$template; } elseif (Tools::file_exists_cache(_PS_MODULE_DIR_.$this->module->name.'/views/templates/front/'.$template)) { return _PS_MODULE_DIR_.$this->module->name.'/views/templates/front/'.$template; } return false; } Si vous utilisez /views/template/ alors il faut ajouter front/ dans le chemin (et créer le répertoire)^^ Merci beaucoup pour ta réponse, j'ai également essayé : $this->setTemplate(_PS_MODULE_DIR_ . 'monmodule/views/templates/front/history.tpl'); Et j'ai bien crée le dossier front/ (j’accède bien au fichier avec cette URL dans filezilla ) Link to comment Share on other sites More sharing options...
Eolia Posted February 1, 2019 Share Posted February 1, 2019 si tu utilises front, la syntaxe est $this->setTemplate('fronthistory.tpl'); Prestashop cherchera tous les chemins dispo comme l'indique la fonction. Maintenant ce code est pour les 1.6 donc ils ont peut-être modifié la fonction, je n'ai pas le temps de vérifier. Link to comment Share on other sites More sharing options...
biogelix Posted February 1, 2019 Author Share Posted February 1, 2019 @Eolia Merci pour ton aide, j'ai également essayé mais rien à faire, de plus si je met $this->setTemplate('fronthistory.tpl'); presta va aller chercher le Template de base or, moi je l'ai refait dans mon module.Encore merci Link to comment Share on other sites More sharing options...
Eolia Posted February 1, 2019 Share Posted February 1, 2019 ton controleur extend quoi ? module ? moduleFront ? FrontController ? Parce que là j'ai l'impression qu'on est pas dans un contexte module à te lire... Link to comment Share on other sites More sharing options...
biogelix Posted February 1, 2019 Author Share Posted February 1, 2019 @Eolia Je suis dans /override/controllers/front/HistoryController.php et ma classe extends de HistoryControllerCore Link to comment Share on other sites More sharing options...
Eolia Posted February 1, 2019 Share Posted February 1, 2019 Ah ben ca change tout, on est pas du tout dans un contexte module en fait et c'est normal que cela appelle le template par défaut vous devez passer par un hook comme c'est expliqué dans ForntController.php 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