Bonjour, …en fait bonsoir, ou bonne nuit (faut que je me couche)
Bon je me suis mis à php. Ma petite question (toutes les autres j’ai fini par y répondre, pour l’instant, mais là je sèche): j’ai fait un petit module, qu’on va appeler monmodule, qui fonctionne, tout au moins la partie backoffice que j’ai réalisé.
Là j’ai fait un override de Product.php, pour commencer à réaliser le front office, et j’essaye d’appeler une fonction de monmodule et là c’est le drame. Je précise que le module n’est pas instancié du côté front office.
C:\wamp\www\prestashop\modules\monmodule\monmodule.php:
<?php .... class MonModule extends Module { // fonction qui sert dans le module, qui fonctionne, mais qui ne veut pas être appelée de l'extérieur public function getMesDonnees($id_product) { return Db :: getInstance() -> executeS('SELECT * FROM ..... ); } .... }
C:\wamp\www\prestashop\override\classes\Product.php:
<?php class Product extends ProductCore { // reprise du getProductsProperties en rajoutant une colonne dans le $row public static function getProductsProperties($id_lang, $query_result) { $results_array = array(); if (is_array($query_result)) foreach ($query_result as $row) if ($row2 = Product::getProductProperties($id_lang, $row)) { $toto=Monmodule::getMesDonnees((int)$row2['id_product']); $row2['manouvellevariabledansProduct']=$toto; $results_array[] = $row2; } return $results_array; } }
J’ai beau essayer toutes les écritures, $this-> , $monmodule= new MonModule() et $monmodule->getMesDonnees(), ou Monmodule::getMesDonnees(), rien n’y fait j’ai invariablement Class Not Found.
Je précise que c’est aussi une occasion de me mettre à la POO. Je veux dire qu’il y a là peut-être une évidence. J’ai lu qu’il fallait éviter les static mais de toute façon même en static ça ne marche pas, car ça plante au niveau même de la reconnaissance de la class, il ne la connait définitivement pas.
Je m’y suis au php pour dépanner sur prestashop et en fait c’est un langage amusant et puissant, idem pour Jquery. Donc j’ai modifié un module. Puis là j’en créé un petit.
Prestashop est un peu bordélique, il y a plein de fonctions qui ne resservent pas. Par contre facile à utiliser du côté de l’utilisateur. C’est la version 1.5.4. Et les modules ne font pas 4km donc c’est bien pour se mettre au php sans être perdu.
merci de votre aide