Jump to content

Bloc nouveaux produit : je n'ai jamais vu un truc pareil !


Recommended Posts

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 by makinero (see edit history)
Link to comment
Share on other sites

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

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