Copper Posted January 30, 2018 Share Posted January 30, 2018 Bonjour à tous, je débute dans la programmation sous prestashop et je patine un peu. Je souhaite surcharger la classe product afin d'y ajouter une fonction qui retournerait la valeur du conditionnement d'un produit. Comme je n'y arrivait pas, j'ai PROVISOIREMENT ajouté ma fonction directement dans la classe product. J'ai ajouté à la fin du fichier public function getConditionnement() { return "12"; } Pour l'instant je retourne 12, juste pour avancer pas après pas. Dans mon template je fais {assign var="toto" value=$product->getConditionnement} quand j'affiche toto je n'ai rien Si je fais {assign var="toto" value=$product->getConditionnement()} ma page ne s'affiche plus et si je fais {assign var="toto" value="$product->getConditionnement()"} ca m'affiche : Array->getConditionnement() Bref, je n'arrive pas à afficher la valeur de retour de ma fonction, cad 12. Merci d'avance pour votre aide. Copper Link to comment Share on other sites More sharing options...
Johann Corbel Posted January 30, 2018 Share Posted January 30, 2018 en tout cas, la bonne syntaxe est {assign var="toto" value=$product->getConditionnement()} Quand tu dis que ta page ne s'affiche plus, c'est que tu as une page blanche ? Tu as essayé d'activer le mode debug pour en savoir plus ? Link to comment Share on other sites More sharing options...
Copper Posted January 30, 2018 Author Share Posted January 30, 2018 Bonjour et merci pour ta réponse. Alors je m'explique quand je dis que ma page ne s'affiche plus. En fait voila le bout de code de test aaaaaaa {assign var="toto" value="$product->getConditionnement()"} {$toto} bbbbbbbbb Et la ca m'affiche aaaaaaa et rien d'autre Dans les autres cas ca affichait aaaaa Array->getConditionnement() bbbbb PS : j'ai un doute pour ma fonction getConditionnement, il fallait bien l'ajouter PROVISOIREMENT dans /Classes/product.php ? Link to comment Share on other sites More sharing options...
BeComWeb Posted January 31, 2018 Share Posted January 31, 2018 Comme l'a dit Johann il faut que tu actives le mode debug. Ensuite tu ne nous dis ni dans quel template tu te trouves, ni quelle version de PS tu utilises... Pense à passer l'option de compilation des templates sur "Recompiler les fichiers de templates s'ils ont été mis à jour" et à vider le cache dans le menu "Paramètres avancés > Performances" aussi Link to comment Share on other sites More sharing options...
Copper Posted January 31, 2018 Author Share Posted January 31, 2018 (edited) Oups, 1 000 excuses j'en oublie les bases ! Prestashop 1.7.2 Template de base Voilà ce que donne le mode debug. Ca ne parle malheuresement pas du fichier que j'ai modié :--( Pour info l'appel aux valeur de $product fonctionne (par exemple $product.regular_price). ContextErrorException in smarty_internal_templatebase.php(157) : eval()'d code line 1104: Notice: Array to string conversion in smarty_internal_templatebase.php(157) : eval()'d code line 1104 at ErrorHandler->handleError('8', 'Array to string conversion', '/var/www/grossiste-chaussette.com/htdocs/vendor/prestashop/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code', '1104', array('_smarty_tpl' => object(Smarty_Dev_Template))) in smarty_internal_templatebase.php(157) : eval()'d code line 1104 at content_5a71ee6522ac37_49037791(object(Smarty_Dev_Template)) in smarty_internal_templatebase.php(157) : eval()'d code line 318 at content_5a71ee655ca987_29587639(object(Smarty_Dev_Template)) in smarty_internal_templatebase.php line 188 at Smarty_Internal_TemplateBase->fetch('catalog/product.tpl', null, 'layouts/layout-full-width.tpl', null, false, true, false) in SmartyDev.php line 41 at SmartyDev->fetch('catalog/product.tpl', null, 'layouts/layout-full-width.tpl') in FrontController.php line 671 at FrontControllerCore->smartyOutputContent('catalog/product.tpl') in FrontController.php line 655 at FrontControllerCore->display() in Controller.php line 225 at ControllerCore->run() in Dispatcher.php line 379 at DispatcherCore->dispatch() in index.php line 28 Si cela inspire quelqu'un ? Edited January 31, 2018 by Copper (see edit history) Link to comment Share on other sites More sharing options...
BeComWeb Posted February 1, 2018 Share Posted February 1, 2018 Avec PS 1.7 ce que tu veux faire ne fonctionnera pas. Le contrôleur passe un array à la vue (au template) et plus un objet comme avant. Donc impossible d'invoquer une méthode de l'entité Product dans la vue. Donc il faut que tu changes d’approche et que tu fasses ta modification dans le controleur 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