jt-espace Posted November 28, 2013 Share Posted November 28, 2013 Bonjour à tous, J'ai un petit problème sur prestashop et la partie front. Je souhaite afficher sur une page que j'ai appelé listeproducts plusieurs informations concernant les produits. Pour l'instant j'ai une fonction dans la classe Product qui effectue une requête sql et me renvoi bien les informations. La voici : public static function getInfosProduct() { $query = 'SELECT ps_product.price, ps_product_lang.name AS namePdt, ps_product_lang.description, ps_product_lang.description_short, ps_supplier.name AS nameSupplier, ps_supplier.id_supplier AS idSup, ps_product.id_product AS idPdt FROM ps_product_lang JOIN ps_product ON ps_product_lang.id_product = ps_product.id_product LEFT JOIN ps_product_supplier ON ps_product.id_product = ps_product_supplier.id_product LEFT JOIN ps_supplier ON ps_product_supplier.id_supplier = ps_supplier.id_supplier LEFT JOIN ps_product_attachment ON ps_product.id_product = ps_product_attachment.id_product'; return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); } Dans mon ListeproductController : $this->context->smarty->assign(array( 'informations' => Product::getInfosProduct(), )); Et dans mon tpl : {foreach from=$informations item=infos} <br /> <h1>{l s='Fiche du circuit '}{$infos.namePdt}</h1> {$idPdt = $infos.idPdt} Id du circuit : {$infos.idPdt} <br /><br /> Résumé : {$infos.description_short} <br /> Description : {$infos.description} <br /> Auteur : {$infos.nameSupplier} <img src="img/su/{$infos.idSup}.jpg" /> <br /><br /> Prix : {round($infos.price,2)}€ <br /><br /> <a href="index.php?controller=ficheproduct&id_product={$infos.idPdt}" class="a">Voir</a> <br /> <br /> <br /> {/foreach} Tout ça marche très bien.Mais mon problème est que j'aimerai afficher aussi des informations en fonction de l'id_product. Par exemple afficher les caractéristiques de chaque produit (j'ai installé le module qui permet d'avoir plusieurs valeurs pour une caractéristique). J'ai tenté plusieurs choses, en vain .. J'arrive juste à afficher les caractéristiques mais e ndehors du foreach de mon code ci-dessus, donc pas avec le produit en question. Merci d'avance. Link to comment Share on other sites More sharing options...
jt-espace Posted November 28, 2013 Author Share Posted November 28, 2013 $sql = Product::getInfosProduct(); foreach($sql as $row){ $id = $row['idPdt']; $this->context->smarty->assign(array( 'informations' => Product::getInfosProductByIdPdt($id) )); } Avec ce code dans le controller j'ai seulement les informations du dernier Produit, il me faudrait juste pouvoir avoir les infos de tous les produits. Link to comment Share on other sites More sharing options...
phili_b Posted November 28, 2013 Share Posted November 28, 2013 et en faisant ça ? $sql = Product::getInfosProduct(); foreach($sql as $row){ $id = $row['idPdt']; $MonTableau [$id] = Product::getInfosProductByIdPdt($id); } $this->context->smarty->assign(array( 'informations' => $MonTableau )); Link to comment Share on other sites More sharing options...
jt-espace Posted December 2, 2013 Author Share Posted December 2, 2013 ça ne fonctionne pas je dois avoir une erreur dans le .tpl mais je ne vois pas ... pour chaque champ j'ai cette erreur par exemple : Notice: Undefined index: namePdt in /home/voyagere/www/cache/smarty/compile/bd/c8/cd/bdc8cd816b56f34a6bc83c74b26bf57d30107162.file.listeproducts.tpl.php on line 58 Merci pour votre réponse. 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