Jump to content

Surcharger un template de thème : Prestashop 1.5.4


Recommended Posts

Bonjour bonjour ! 

 

Après divers recherche je ne trouve pas de résultat m'amenant à résoudre mon problème.

Le contexte : Dans le cadre d'un stage, je dois créer un module qui vise à remplacer la partie "Quick Overview" de product.tpl (chemin complet : prestashop/themes/*votre-theme*/product.tpl

 

J'ai bien réussi à créé mon hook en suivant cette astuce et donc en mettant directement mon hook dans product.tpl.

Sauf que ce n'est pas pratique lors de l'installation : Y-a t-il un moyen d'automatiser cela? (création d'un hook dans un template de thème)

 

J'ai essayé la function hookDisplayOverrideTemplate mais je dois mal l'utiliser. En copiant l'intégralité de product.tpl dans un template de mon module (prestashop/modules/mymodule/views/front/montemplate.tpl) ça me renvoie un message d'erreur : 

 

Fatal error: Uncaught exception 'SmartyException' with message 'Unkown resource type ' <script type="text/javascript"> // <![CDATA[ // PrestaShop internal settings var currencySign = '€'; var currencyRate = '1'; var currencyFormat = '2'; var currencyBlank = '1'; var taxRate = 20; var jqZoomEnabled = false; //JS Hook var oosHookJsCodeFunctions = new Array(); // Parameters var id_product = '1'; var productHasAttributes = true; var quantitiesDisplayAllowed = true; var quantityAvailable = 159; var allowBuyWhenOutOfStock = false; var availableNowValue = 'En stock'; var availableLaterValue = ''; var productPriceTaxExcluded = 124.58194 - 0.000000; var productBasePriceTaxExcluded = <br /> <b>Notice</b>'' in C:\xampp\htdocs\dev\prestashop\tools\smarty\sysplugins\smarty_resource.php:445 Stack trace: #0 C:\xampp\htdocs\dev\prestashop\tools\smarty\sysplugins\smarty_resource.php(515): Smarty_Resource::load(Object(Smarty), '\r\n\n\r\n<script ty...') #1 C:\xampp\htd in C:\xampp\htdocs\dev\prestashop\tools\smarty\sysplugins\smarty_resource.php on line 445

   

Est-ce que quelqu'un pourrait m'aider? Ça transparaît sûrement, mais je précise que je suis un sacré débutant sur Prestashop, du coup désolé si vous voyez des abberrations !

Edited by Metalovichinkov (see edit history)
Link to comment
Share on other sites

J'ai trouvé la solution, et en effet, j'utilisais mal la fonction en question..

 

Ce que je faisais : 

public function hookDisplayOverrideTemplate($params)
{
      if ($params['controller']->php_self == 'product')
        return $this->display(__FILE__, '/views/templates/front/product.tpl');
}

Ce qu'il faut faire : 

public function hookDisplayOverrideTemplate($params)
{
      if ($params['controller']->php_self == 'product')
        return dirname(__FILE__).'/views/templates/front/product.tpl';
}

En gros, le "$this->display(); était de trop.

 

Cependant, je cherche toujours une solution pour surcharger un template particulier et non pas l'override comme ici. Un genre de méthode qui permettrait de dire "remplace cette div par ce hook" par exemple.

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