makinero Posted June 9, 2015 Share Posted June 9, 2015 (edited) Bonjour à tous, Je fais actuellement des modifs sur un PS1.5. Je dois modifier le fonctionnement du module nouveaux produits : au lieu du fonctionnement classique, il faut que le commerçant puisse choisir ses nouveautés (ce qui n'est d'ailleurs pas idiot dans certains cas et qui pourrait être une fonction de base mais passons ce n'est pas le sujet). En théorie c'est facile à faire : il faut créer une catégorie, y mettre les produits, aller dans blocknewproducts.php, dans : public function hookRightColumn($params) { } Remplacer : $newProducts = Product::getNewProducts((int)($params['cookie']->id_lang), 0, (int)(Configuration::get('NEW_PRODUCTS_NBR'))); Par : $category = new Category(3, (int)$params['cookie']->id_lang); $newProducts = $category->getProducts((int)$params['cookie']->id_lang,1,3); 3 étant la catégorie de nouveautés. Problème : ça ne marche pas, j'ai un message d'erreur PHP sur $newProducts (undefined variable newProducts in blocknewproducts.php on line xxx). Je fais des tests dans tous les sens, je m'envois l'array par mail tout est bien. Rien n'y fait. Je tente avec ce code : $newProducts = Product::getNewProducts((int)($params['cookie']->id_lang), 0, (int)(Configuration::get('NEW_PRODUCTS_NBR'))); $category = new Category(3, (int)$params['cookie']->id_lang); $newProducts = $category->getProducts((int)$params['cookie']->id_lang,1,3); Et là ça marche. Je ne comprends absolument pas pourquoi ! hookRightColumn est une méthode qui ne reçoit pas d'arguments. $newProducts est un array qui est envoyé au template dans une variable smarty. Il ne devrait pas y avoir d'intervention extérieure... J'ai même tenté en mettant : $newProducts = array(); Ça voudrait dire qu'il y aurait une vérification ailleurs mais je ne vois pas où. Si quelqu'un a une idée, je suis preneur parce que là j'en perds mon PHP... Bien entendu j'ai testé avec le cache smarty désactivé. Merci Edited June 9, 2015 by makinero (see edit history) Link to comment Share on other sites More sharing options...
makinero Posted June 10, 2015 Author Share Posted June 10, 2015 Je sais que ce n'est pas une bonne chose de rechercher d'abord les nouveaux produits mais c'est justement la seule chose qui fonctionne ! J'ai essayé avec ton code ça ne marche pas. Il y a le contexte mais j'ai mis (int)$params['cookie']->id_lang pour tester parce que je l'ai vu ailleurs dans le fichier, je voulais voir si ça venait pas de ça (la réponse est non et ça m'aurait étonné). 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