Dev_Elisabeth Posted January 19, 2012 Share Posted January 19, 2012 Bonjour, Je voudrais modifier la fiche produit pour ajouter des logos dont j'ai enregistré le nom dans la base de données seulement je n'arrive pas à accéder au réponse de ma requête. Je vous joins le modèle de la base de données et les codes de la page tpl et celle du php. Cordialement, ------------------------------------- SQL : CREATE TABLE ps_fonctionnalite ( id_fc int NOT NULL AUTO_INCREMENT, fc_name varchar(100), fc_nameImage varchar(100), PRIMARY KEY (id_fc)); CREATE TABLE ps_fonctionnalite_attribute ( id_attrib int NOT NULL AUTO_INCREMENT, id_fc int, id_product int, PRIMARY KEY (id_attrib)); ALTER TABLE ps_fonctionnalite_attribute ADD FOREIGN KEY (id_fc) REFERENCES ps_fonctionnalite(id_fc); ALTER TABLE ps_fonctionnalite_attribute ADD FOREIGN KEY (id_product) REFERENCES ps_product(id_product); TPL page product.tpl : <div id="information_contenu"> {assign var=id value=$product->id} {section loop=$list name=product} <center><img src="http://www.lisica-informatique.fr/img/logo/{$list[$id].nameI}" /></center> {/section} </div> PHP page product_req.php : <?php // Extraction des informations require("../tools/smarty/smarty.class.php"); $query = $connexion->prepare("SELECT ps_fonctionnalite_attribute.id_fc, fc_nameImage, fc_name, ps_product.id_product FROM ps_product, ps_product_lang, ps_fonctionnalite, ps_fonctionnalite_attribute WHERE ps_product.id_product=ps_fonctionnalite_attribute.id_product AND ps_fonctionnalite.id_fc=ps_fonctionnalite_attribute.id_fc AND ps_product.id_product=ps_product_lang.id_product AND id_lang=2;"); $query->execute(); $list = array(); while($data = $query->fetch()){ $list[$data['ps_product.id_product']]['id'] = $data['ps_fonctionnalite_attribute.id_fc']; $list[$data['ps_product.id_product']]['name'] = $data['fc_name']; $list[$data['ps_product.id_product']]['nameI'] = $data['fc_nameImage']; } // On lance Smarty $tpl = new Smarty(); $tpl->assign('list', $list); $tpl->display("product.tpl"); ?> Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 20, 2012 Author Share Posted January 20, 2012 Besoin d'un peu d'aide svp ?! Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 23, 2012 Author Share Posted January 23, 2012 Y a quelqu'un ? Link to comment Share on other sites More sharing options...
luci1 Posted January 23, 2012 Share Posted January 23, 2012 Bonjour, Pourquoi ne surcharges-tu pas la classe Product.php directement ? Ainsi tu aurais accès à la variable global $smarty à laquelle tu pourrais assigner ta variable $list . Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 23, 2012 Author Share Posted January 23, 2012 oui j'ai vu que sur certains forums c'est ce qu'il fesait, j'ai donc mis dans le fichier Product.php (classe) : static public function Logo() { $query = "SELECT `fc_name` FROM `'._DB_PREFIX_.'ps_product`, `'._DB_PREFIX_.'ps_product_lang`, `'._DB_PREFIX_.'ps_fonctionnalite`, `'._DB_PREFIX_.'ps_fonctionnalite_attribute` WHERE ps_product.`id_product`=ps_fonctionnalite_attribute.`id_product` AND ps_fonctionnalite.`id_fc`=ps_fonctionnalite_attribute.`id_fc` AND ps_product.`id_product`=ps_product_lang.`id_product` AND `id_lang`=2 ;"; $query->execute(); $list = array(); while($data = $query->fetch()){ $list[$data['ps_product.id_product']]['id'] = $data['ps_fonctionnalite_attribute.id_fc']; $list[$data['ps_product.id_product']]['name'] = $data['fc_name']; $list[$data['ps_product.id_product']]['nameI'] = $data['fc_nameImage']; } return $list; } dans le fichier product.php de www. : $smarty->assign('list', Product::Logo()); et le fichier product.tpl, je n'ai rien changé : {assign var=id value=$product->id} {section loop=$list name=list} <center><img src="http://www.lisica-informatique.fr/img/logo/{$list[$id].nameI}" /></center> {/section} J'ai un peu de mal à comprendre le lien exacte entre tous ces fichiers, même si j'ai compris la notion de template. Link to comment Share on other sites More sharing options...
luci1 Posted January 24, 2012 Share Posted January 24, 2012 Bonjour, Tu souhaites faire ça pour le détail d'un produit ou pour les listing des produits d'une catégorie ? Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 elkastor : En faite, j'ai créé une table me permettant d'enregistrer le nom de Logo tel que "windows7".. et j'aimerais récupérer ce nom "fc_nameImage" (table ps_fonctionnalite) pour afficher le logo sur la fiche produit ET chaque produit a donc plusieurs logos d'attribués (table ps_fonctionnalite_attribute) Après avoir écrit le code sous toutes les façons possibles que propose autant les sujets postés sur ce forum que d'autres, toujours aucun résultat : http://www.siteduzer...ichier-tpl.html http://www.prestasho...ne-requete-sql/ http://www.smarty.ne...pic.php?p=68221 http://emilienmalbra...ans-prestashop/ Link to comment Share on other sites More sharing options...
luci1 Posted January 24, 2012 Share Posted January 24, 2012 OK, Voilà ce que je ferais à ta place, je surchargerai la class product.php, dans le repertoire override/classes/ il faut créer le fichier Product.php : <?php class Product extends ProductCore { } tu y ajoutes ta vriable logos : public $logos; Ensuite tu créé la fonction qui va récuperer les logos associés au produit : /** * Retourne les logos associés au produit * @param $id_product : l'identifiant du produit * @return la liste des logos */ public function get_logos( $id_product ) { global $cookie, $smarty; $logos = array(); $sql = sprintf(" SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product, FROM %s p INNER JOIN %s pl on p.id_product = pl.id_product INNER JOIN %s fa ON fa.id_product = p.id_product INNER JOIN %s f ON f.id_fc = fa.id_fc WHERE pl.id_lang = %d AND id_product = %d", _DB_PREFIX_.'product', _DB_PREFIX_.'product_lang', _DB_PREFIX_.'fonctionnalite', _DB_PREFIX_.'fonctionnalite_attribute', $cookie->id_lang, $id_product) $res = Db::getInstance()->executeS( $sql ); if ( count( $res ) > 0 ) { foreach( $res as $r ) { $logos[ $id_product ]['id'] = $r['id_fc']; $logos[ $id_product ]['name'] = $r['fc_name']; $logos[ $id_product ]['nameI'] = $r['fc_nameImage']; } } return $logos; } Ensuite tu surcharges le constructeur de la classe product : public function __construct($id_product = NULL, $full = false, $id_lang = NULL) { parent::__construct($id_product = NULL, $full = false, $id_lang = NULL); $this->logos = $this->get_logos( $this->id_product ); } Ensuite tu devrais pouvoir retrouver les logos dans le template via {$product.logos} Essaies ça et dis moi si ça fonctionne. Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Merci de votre aide, alors j'obtiens cette erreur en activant config.inc.php Il y a 1 erreur : ce produit n'est plus disponible Pourtant il est bien présent et plus haut il m'indique : Warning: Invalid argument supplied for foreach() in /homez.461/lisicain/www/override/classes/Product.php on line 37 l37 : foreach( $res as $r ) PS : il manquait un ";" à la fin de $sql Petite question dans la requête comment au niveau du traitement sql reconnaît que "p." c'est ps_product ou que "f." c'est ps_fonctionnalite... ? Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Pour la petite question, je viens de comprendre en regardant les propriétés de sprintf %d = double donc soit id_lang ou id_product sinon %s = string donc les "_DB_PREFIX_.' .... ' " Par contre, il est indiqué que l'on peux écrire la position du string s'il en contient plusieurs de cette façon "%1$d" on doit donc l'indiquer non ? Link to comment Share on other sites More sharing options...
luci1 Posted January 24, 2012 Share Posted January 24, 2012 Par contre, il est indiqué que l'on peux écrire la position du string s'il en contient plusieurs de cette façon "%1$d" on doit donc l'indiquer non ? Non, ce n'est pas nécessaire, les arguments sont traités dans l'ordre d'apparition. As tu essayé d'afficher la requête et de l’exécuter directement via phpymadmin pour voir si celle si fonctionne ? Car je n'ai pas tester du coup je ne sais pas si c'est fonctionnel, d'où le ";" manquant. Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 J'ai rajouté les %1$d.. car en faite ils sont pas dans l'ordre ensuite dans phphmyadmin j'ai une erreur de ce type #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM ps_product p INNER JOIN ps_product_lang pl on p.id_product = pl.' at line 3 Je suis entrain de chercher à quoi cela est dû SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product, FROM ps_product p INNER JOIN ps_product_lang pl ON p.id_product = pl.id_product INNER JOIN ps_fonctionnalite_attribute fa ON fa.id_product = p.id_product INNER JOIN ps_fonctionnalite f ON f.id_fc = fa.id_fc WHERE pl.id_lang =2 AND id_product =14 Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 1ere solution une virgule à la fin du SELECT en trop ^^" 2eme problème id_product est ambigu tout à la fin, on y arrive ! Plus d'erreur SQL mais toujours ce foreach qui a un soucis, pourtant la requête marche bien. Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 à la fin tu as AND id_product =14 il faut mettre : AND p.id_product =14 Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Oui c'est ce que j'ai modifié et la requete marche, pas de soucis mais c'est le fichier qui marche pas enfin le foreach Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 oui je n'ai lu en entier ton précédent message, essaye d'afficher $res pour voir ce que tu obtiens print_r($res); Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 j'obtiens un "Array ( )" Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 et avec : echo '<pre>'; print_r($res); echo '</pre>'; Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 toujours un Array ( ) Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 donc $res est vide, remplace la ligne if ( count( $res ) > 0 ) par if(!empty($res)) Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 question bete : dans la requête sql : f = table _DB_PREFIX_.'fonctionnalite_attribute ? et fa = table _DB_PREFIX_.'fonctionnalite' ? Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 non l'inverse effectivement mais ça je l'ai changé fa c'est fonctionnalite_attribute ^^ et le résultat de l'erreur c'est toujours le même un array() Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 perso je mettrai (pour éviter les erreurs) : $sql = 'SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product FROM '._DB_PREFIX_.'product p INNER JOIN '._DB_PREFIX_.'product_lang pl on p.id_product = pl.id_product INNER JOIN '. _DB_PREFIX_.'fonctionnalite_attribute fa ON fa.id_product = p.id_product INNER JOIN '. _DB_PREFIX_.'fonctionnalite f ON f.id_fc = fa.id_fc WHERE pl.id_lang = '.(int)$cookie->id_lang.' AND p.id_product = '.(int)$id_product; $res = Db::getInstance()->ExecuteS($sql); C'est ExecuteS et non executeS Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Oui le executeS je l'avais changé au cas où je savais pas tellement si la majuscule avait de l'importance et comme c'est souvent le cas, je l'avais changé j'ai un peu changé pour éviter les conflits entre les différents guillemets ' et ". et au niveau des coloris c'est plus clair pour moi. $sql = "SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product FROM "._DB_PREFIX_."product' p INNER JOIN "._DB_PREFIX_."product_lang' pl on p.id_product = pl.id_product INNER JOIN ". _DB_PREFIX_."fonctionnalite_attribute' fa ON fa.id_product = p.id_product INNER JOIN ". _DB_PREFIX_."fonctionnalite' f ON f.id_fc = fa.id_fc WHERE pl.id_lang = ".(int)$cookie->id_lang." AND p.id_product = ".(int)$id_product; Comme résultat je vois plus le "array()" mais il y a toujours une erreur Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 non j'ai corrigé la requête sql entre temps, sinon oui il y a des problèmes avec les ' (comme je n'utilise plus le sprintf) reprend la requête sql que j'ai mis dans précédent message ça devrait être meilleur. Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 ok c'est fait le "Array ( )" est de retour ^^" Merci de votre aide, à plusieurs on voit beaucoup plus d'erreurs. Je rejoins le fichier pour que ce soit plus clair sur l'avancement qu'on soit au même point <?php class Product extends ProductCore { public $logos; /** * Retourne les logos associés au produit * @param $id_product : l'identifiant du produit * @return la liste des logos */ public function get_logos( $id_product ) { global $cookie, $smarty; $logos = array(); $sql = 'SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product FROM '._DB_PREFIX_.'product p INNER JOIN '._DB_PREFIX_.'product_lang pl on p.id_product = pl.id_product INNER JOIN '. _DB_PREFIX_.'fonctionnalite_attribute fa ON fa.id_product = p.id_product INNER JOIN '. _DB_PREFIX_.'fonctionnalite f ON f.id_fc = fa.id_fc WHERE pl.id_lang = '.(int)$cookie->id_lang.' AND p.id_product = '.(int)$id_product; $res = Db::getInstance()->ExecuteS($sql); print_r($res); if(!empty($res)) { foreach( $res as $r ) { $logos[ $id_product ]['id'] = $r['id_fc']; $logos[ $id_product ]['name'] = $r['fc_name']; $logos[ $id_product ]['nameI'] = $r['fc_nameImage']; } } return $logos; } public function __construct($id_product = NULL, $full = false, $id_lang = NULL) { parent::__construct($id_product = NULL, $full = false, $id_lang = NULL); $this->logos = $this->get_logos( $this->id_product ); } } ?> Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 si mes souvenirs sont bons print_r($res); est à utiliser avec pre: echo '<pre>'; print_r($res); echo '</pre>'; sinon vers la fin change: $this->logos = $this->get_logos( $this->id_product ); par $this->logos = $this->get_logos( $id_product ); Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 ça change rien Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 bon, on va afficher la totale: change les 2 lignes $res = Db::getInstance()->ExecuteS($sql); print_r($res); par : echo '<br/>id_product : '.$id_product; echo '<br/>sql: '.$sql; if(!$res = Db::getInstance()->ExecuteS($sql)) echo '<br/>PROBLEME AVEC LA REQUETE SQL !!!'; else { echo '<br/>tableau : <br/><pre>'; print_r($res); echo '</pre>'; } Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Juste pour info j'ai été voir le manuel pour print_r($res) en anglais et bon j'ai essayé de faire ça echo '<pre>'; $result=print_r($res); echo $result; echo '</pre>'; et j'obtiens Array ( ) 1 Je vais essayer ce que tu m'as dit. Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 J'obtiens ceci : id_product : sql: SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product FROM ps_product p INNER JOIN ps_product_lang pl on p.id_product = pl.id_product INNER JOIN ps_fonctionnalite_attribute fa ON fa.id_product = p.id_product INNER JOIN ps_fonctionnalite f ON f.id_fc = fa.id_fc WHERE pl.id_lang = 2 AND p.id_product = 0 PROBLEME AVEC LA REQUETE SQL !!! Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 on en reviens à mon message précédent : http://www.prestashop.com/forums/index.php?/topic/151441-probleme-dinterpretation-code-smartyphp/page__view__findpost__p__736615 Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Oui, j'ai bien la même chose que ce message <?php class Product extends ProductCore { public $logos; /** * Retourne les logos associés au produit * @param $id_product : l'identifiant du produit * @return la liste des logos */ public function get_logos( $id_product ) { global $cookie, $smarty; $logos = array(); $sql = 'SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product FROM '._DB_PREFIX_.'product p INNER JOIN '._DB_PREFIX_.'product_lang pl on p.id_product = pl.id_product INNER JOIN '. _DB_PREFIX_.'fonctionnalite_attribute fa ON fa.id_product = p.id_product INNER JOIN '. _DB_PREFIX_.'fonctionnalite f ON f.id_fc = fa.id_fc WHERE pl.id_lang = '.(int)$cookie->id_lang.' AND p.id_product = '.(int)$id_product; echo '<br/>id_product : '.$id_product; echo '<br/>sql: '.$sql; if(!$res = Db::getInstance()->ExecuteS($sql)) echo '<br/>PROBLEME AVEC LA REQUETE SQL !!!'; else { echo '<br/>tableau : <br/><pre>'; print_r($res); echo '</pre>'; } if(!empty($res)) { foreach( $res as $r ) { $logos[ $id_product ]['id'] = $r['id_fc']; $logos[ $id_product ]['name'] = $r['fc_name']; $logos[ $id_product ]['nameI'] = $r['fc_nameImage']; } } return $logos; } public function __construct($id_product = NULL, $full = false, $id_lang = NULL) { parent::__construct($id_product = NULL, $full = false, $id_lang = NULL); $this->logos = $this->get_logos( $id_product ); } } ?> et dans le template j'ai : <div id="information_contenu"> {assign var=id value=$product->id} {$product.logos} </div> ici assign étant inutile vu qu'on l'utilise pas mais je l'ai gardé en mémoire Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 changez parent::__construct($id_product = NULL, $full = false, $id_lang = NULL); par parent::__construct($id_product, false, $id_lang); Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 J'obtiens toujours le meme message avec id_product vide par contre en plus j'ai : Fatal error: Cannot use object of type Product as array in /homez.461/lisicain/www/tools/smarty/compile/50197e4f8b9f1d44cc51fdffb648ff03b47738cc.file.product.tpl.php on line 255 Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 j'ai rien dit ^^ j'avais modifié une ligne entre temps que j'ai remis à l'initiale : et j'ai maintenant : id_product : 14 sql: SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product FROM ps_product p INNER JOIN ps_product_lang pl on p.id_product = pl.id_product INNER JOIN ps_fonctionnalite_attribute fa ON fa.id_product = p.id_product INNER JOIN ps_fonctionnalite f ON f.id_fc = fa.id_fc WHERE pl.id_lang = 2 AND p.id_product = 14 tableau : Array ( [0] => Array ( [id_fc] => 1 [fc_name] => Garantie 1an [fc_nameImage] => 1an.gif [id_product] => 14 ) ) Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Mais j'ai toujours ce problème de FATAL ERROR ça doit être à cause du template cette fois si car le fatal se trouve dans mon div, je dois mal récupérer les valeurs Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 donc maintenant c'est bon, tu as bien id_product, la requete sql est bonne, tu as bien un tableau en retour, il n'y a plus qu'à remettre: $res = Db::getInstance()->ExecuteS($sql); au lieu des lignes qui permettent l'affichage des différents messages et de mettre en forme le infos retournées tu as forcé la compilation et vidé le cache smarty ? Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Je modifie ça. oui à chaque fois, je vide la compilation par contre le cache est toujours vide. Je rajoute : if(!$res = Db::getInstance()->ExecuteS($sql)) echo '<br/>PROBLEME AVEC LA REQUETE SQL !!!'; else { $res = Db::getInstance()->ExecuteS($sql); echo '<br/>tableau : <br/><pre>'; print_r($res); echo '</pre>'; } Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 toujours le même fatal error dans mon div : Fatal error: Cannot use object of type Product as array in /homez.461/lisicain/www/tools/smarty/compile/50197e4f8b9f1d44cc51fdffb648ff03b47738cc.file.product.tpl.php on line 255 Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 ouvre ce fichier pour voir ce qu'il y a en ligne 255 Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 <div id="information_contenu"> <?php $_smarty_tpl->tpl_vars['id'] = new Smarty_variable($_smarty_tpl->getVariable('product')->value->id, null, null);?> l255 : <?php echo $_smarty_tpl->getVariable('product')->value['logos'];?> </div> Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 tu es toujours là ? (je peux te tutoyer?) Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 oui, ou i tu peux, je réfléchi... en mettant le code en commentaire tu as quoi ? <?php class Product extends ProductCore { public $logos; /** * Retourne les logos associés au produit * @param $id_product : l'identifiant du produit * @return la liste des logos */ public function get_logos( $id_product ) { global $cookie, $smarty; $logos = array(); /* $sql = 'SELECT fa.id_fc, f.fc_name, f.fc_nameImage, p.id_product FROM '._DB_PREFIX_.'product p INNER JOIN '._DB_PREFIX_.'product_lang pl on p.id_product = pl.id_product INNER JOIN '. _DB_PREFIX_.'fonctionnalite_attribute fa ON fa.id_product = p.id_product INNER JOIN '. _DB_PREFIX_.'fonctionnalite f ON f.id_fc = fa.id_fc WHERE pl.id_lang = '.(int)$cookie->id_lang.' AND p.id_product = '.(int)$id_product; echo '<br/>id_product : '.$id_product; echo '<br/>sql: '.$sql; if(!$res = Db::getInstance()->ExecuteS($sql)) echo '<br/>PROBLEME AVEC LA REQUETE SQL !!!'; else { echo '<br/>tableau : <br/><pre>'; print_r($res); echo '</pre>'; } if(!empty($res)) { foreach( $res as $r ) { $logos[ $id_product ]['id'] = $r['id_fc']; $logos[ $id_product ]['name'] = $r['fc_name']; $logos[ $id_product ]['nameI'] = $r['fc_nameImage']; } } */ return $logos; } public function __construct($id_product = NULL, $full = false, $id_lang = NULL) { parent::__construct($id_product = NULL, $full = false, $id_lang = NULL); $this->logos = $this->get_logos( $id_product ); } } ?> Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 j'obtiens juste le fatal error (l'affichage du print_r($res) étant en commentaire logique) Link to comment Share on other sites More sharing options...
coeos.pro Posted January 24, 2012 Share Posted January 24, 2012 et met : public function __construct($id_product = NULL, $full = false, $id_lang = NULL) { parent::__construct($id_product , $id_lang); // $this->logos = $this->get_logos( $id_product ); } et essaye de changer parent::__construct($id_product, false, $id_lang); par parent::__construct($id_product, $id_lang); ça dépend de la fonction construct précédente... si ça ce trouve c'est juste ça le problème Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 24, 2012 Author Share Posted January 24, 2012 Avec en plus : $this->logos = $this->get_logos( $id_product ); en commentaire ça change rien En gardant les commentaires et en changeant le parent::construct en plus du fatal error j'ai : Warning: htmlentities() expects parameter 1 to be string, array given in /homez.461/lisicain/www/tools/smarty/plugins/modifier.escape.php on line 30 Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 25, 2012 Author Share Posted January 25, 2012 Bon me revoilà, et toujours sur mon problème si le fatal error indique qu'il ne veut pas que Product retourne un objet de type "array" = tableau comment pourrait-on faire ? par rapport à la lligne255 du compile : <?php echo $_smarty_tpl->getVariable('token')->value['logos']; ?> sur la plus part des pages de prestashop, on voit plutôt <?php echo $_smarty_tpl->getVariable('token')->value; ?> Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 25, 2012 Author Share Posted January 25, 2012 AAAAAAAAAAAAAH ! FINI c'est résolu j'ai tout bêtement essayer de modifier ce qu'il y avait écrit dans product.tpl et à force de tout tester (oui quand on y arrive pas on essai tout) ^^" et j'ai trouvé avec ceci : {assign var=id value=$product->id} {assign var=name value=$product->logos[$id]['nameI']} {$name} alors qu'avant il y avait ceci : {assign var=id value=$product->id} {assign var=name value=$product->logos[$id]['nameI']} {$name} Un Grand Merci à elkastor et coeos.pro, j'ai maintenant fini cette grosse partie sur les logos Je teste tout ça, au cas où si je met deux logos ça marche ^^ Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 25, 2012 Author Share Posted January 25, 2012 Bon avec deux logos ça ne marche pas mais un oui, si je fais un tableau avec une dimension de plus, un $i qui s'incrémenterait peut être ça pourrait marcher, plus qu'à tester. Bon résultat : Product.php $i=0; if(!empty($res)) { foreach( $res as $r ) { $logos[ $id_product ][$i]['id'] = $r['id_fc']; $logos[ $id_product ][$i]['name'] = $r['fc_name']; $logos[ $id_product ][$i]['nameI'] = $r['fc_nameImage']; $i++; } session_start(); $_SESSION['nb']=$i; } product.tpl {assign var=nb value=$smarty.session.nb} {assign var=id value=$product->id} {section name=boucle start=0 loop=$nb step=1} {assign var=name value=$product->logos[$id][$smarty.section.boucle.index]['nameI']} <p style="HEIGHT:25%; WIDTH:25%" ><center><img src="http://www.lisica-informatique.fr/img/logo/{$name}" /></center></p> {/section} Pour l'instant ça marche super bien ! Link to comment Share on other sites More sharing options...
coeos.pro Posted January 25, 2012 Share Posted January 25, 2012 l'important c'est que ça fonctionne Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 25, 2012 Author Share Posted January 25, 2012 Oui, bon maintenant mon cher maître de stage me rajoute des difficultés (normale) mais ce problème est résolu (pour passer le post en résolu par contre je ne sais pas comment faire) Link to comment Share on other sites More sharing options...
luci1 Posted January 25, 2012 Share Posted January 25, 2012 Bonjour, Content que ton problème soit résolu, pour passer le post en RÉSOLU il me semble qu'il faut modifier ton tout premier post . Link to comment Share on other sites More sharing options...
kunx Posted January 25, 2012 Share Posted January 25, 2012 Bonjour! si quelqu'un pourrait m’éclairer sur ce problème. http://www.prestashop.com/forums/topic/152328-creer-et-recuperer-le-resultat-dune-requete-sql/ C'est un peu du même genre et merci dev_elisabeth d'avoir fait parvenir le sujet. :-) merci! Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 27, 2012 Author Share Posted January 27, 2012 Bonjour me revoilà, J'ai un nouveau soucis, je n'arrive pas à avoir via mes modules que j'ai créé le token, j'ai tout essayé les solutions ici : http://www.prestashop.com/forums/topic/39645-resolutoken/ Ca marche bien sur un template en front-office mais pas du tout en back-office. A part défaire la sécurité qu'apporte les tokens ou alors l'écrire en "dur" en le cherchant une fois sur l'url de la page vers laquelle on veut se diriger... Merci de votre aide Link to comment Share on other sites More sharing options...
coeos.pro Posted January 27, 2012 Share Posted January 27, 2012 dans le back office, le token est dans l'URL, suffit de le récupérer avec $token = $_GET['token']; Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 27, 2012 Author Share Posted January 27, 2012 Même ça, ne marche pas, il me met toujours : Clé de sécurité invalide! Est-ce qu'il y aurait un endroit où les tokens sont stockés et que ça ne l'aurait pas fait au moment de création du module ? Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 30, 2012 Author Share Posted January 30, 2012 aucune idée ? Link to comment Share on other sites More sharing options...
coeos.pro Posted January 30, 2012 Share Posted January 30, 2012 tu parles de quel token ? Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 30, 2012 Author Share Posted January 30, 2012 la clé de sécurité qui se trouve sur les liens du back-office (je veux mettre en lien entre deux onglets pour y accéder plus facilement et peut être plus tard fusionner ces deux modules) Link to comment Share on other sites More sharing options...
coeos.pro Posted January 30, 2012 Share Posted January 30, 2012 Va voir dans la classe tools, fonction getAdminTokenLite Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 30, 2012 Author Share Posted January 30, 2012 Fatal error: Call to undefined function getAdminTokenLite() in /homez.461/lisicain/www/modules/Fonctionnalite/AdminFc.php on line 149 Mon appel de la fonction : $token = getAdminTokenLite("AdminFC_Prod"); Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 30, 2012 Author Share Posted January 30, 2012 Rectification : Tools:: getAdminTokenLite("AdminFC_Prod"); c'est correct !!! Merci beaucoup ! Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 31, 2012 Author Share Posted January 31, 2012 Bonjour, j'ai une nouvelle question voilà j'aimerais créer une page totalement indépendante de tout module, il s'agit juste d'une page d'affichage. Seulement, je n'arrive pas à faire le lien entre une page déjà existante dans le back office et ma page que j'ai créé : echo'<a href="http://www.monsite.fr/modules/Fonctionnalite/Fc_Prod.php" style="color:#0186DF;" >Liste des Produits</a><BR /><BR />'; Si je met un lien comme ceci, il se met en front-office et non en back-office... J'avais utilisé ceci dans mon fichier.php <?php include(dirname(__FILE__).'/config/config.inc.php'); include_once(dirname(__FILE__).'/init.php'); ----- VOTRE CONTENU ----- include(dirname(__FILE__).'/header.php'); $smarty->display(_PS_THEME_DIR_.'profile.tpl'); include(dirname(__FILE__).'/footer.php'); ?> Effectivement c'est super.. mais c'est pour ajouter une page en front-office et non back-office. Merci encore de tout votre aide ! Mon projet avance beaucoup ! Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted January 31, 2012 Author Share Posted January 31, 2012 En faite c'est bon j'ai trouvé ^^ Link to comment Share on other sites More sharing options...
Dev_Elisabeth Posted February 3, 2012 Author Share Posted February 3, 2012 Bonjour, Encore une nouvelle question, je suis entrain de faire de l'upload de fichier, tout fonctionne super bien sauf à partir du moment où sur la même page dans un formulaire différent j'ai voulu recréer mon upload en modifiant seulement le nom du "input type="file" " A quoi cela peut être dû ? Sur un forum, j'ai vu que ça doit être dû au nom du formulaire mais ça ne change rien... http://www.developpez.net/forums/d700376/php/langage/fonctions/plusieurs-upload-dimages-meme-page/ Merci de votre aide. Link to comment Share on other sites More sharing options...
kayodebello Posted October 14, 2019 Share Posted October 14, 2019 Je m'appelle Kayode, on m'a diagnostiqué l'hépatite E en novembre dernier, après une fièvre grave, un jaunissement de la peau, une urine foncée, des douleurs abdominales, des vomissements et de la fatigue. On m'a donné un traitement à la ribavirine à l'hôpital, qui s'est apaisé mais qui est revenu après 3 mois. Cette fois, c'était pire, un problème de levier est apparu, aucun espoir de traitement, j'ai perdu l'appétit et mes articulations étaient douloureuses. Mais au début de l’année, ma sœur a eu connaissance en ligne de la recommandation en ligne du docteur IYABIYE concernant le traitement à base de plantes et l’a demandé de l’aider. Je suis devenu totalement guéri après le traitement et toutes les douleurs ont disparu. Je suis retourné à l'hôpital et j'ai été testé négatif. Je dois rester un petit moment pour voir si cela va revenir, mais voici: (JE SUIS LIBRE), vous aussi pouvez être libéré de l'hépatite avec ses médicaments. Contact: +2348072229413 ou +2348158577300 email: [email protected] 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