ultraxa Posted September 6, 2012 Share Posted September 6, 2012 bonjour je souhaiterais recuperer l'id des pack et je n'arrive pas j'ai essayer $packItem.id, $packItem.id_product ni $packItem.id_product_item ... Link to comment Share on other sites More sharing options...
ultraxa Posted September 7, 2012 Author Share Posted September 7, 2012 personne pour m'aider ? Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 1, 2012 Share Posted November 1, 2012 Bonjour ultraxa, Je cherche à faire la meme manip sans succès.. As tu trouvé depuis? Merci pour ton retour! Fred. Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 1, 2012 Share Posted November 1, 2012 (edited) Bonjour à tous, je fais remonter ce sujet. Quelqu'un sait-il comment faire intervenir dans product.tpl les valeurs de la table ps_pack? J'ai beaucoup cherché sans succès.. un éclairage serait le bienvenue!!!! Merci d'avance, Fred marchand sur PS 1.5.2 Edited November 1, 2012 by Frédéric D. (see edit history) Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 2, 2012 Share Posted November 2, 2012 Bonjour à tous, dans product.tpl, {$packs} affiche Array, {$packs->id_product} ne renvoie rien alors que la variable est bien visible dans la console debug..... Je ne comprends rien! HELP !!!! Merci d'avance au pro qui passera par là... Fred marchand sur 1.5.2 Link to comment Share on other sites More sharing options...
franckm1000 Posted November 2, 2012 Share Posted November 2, 2012 (edited) $packs est un tableau multidimensionnel. Il vous affiche donc array = tableau Si vous voulez afficher les infos il faut utiliser une boucle foreach pour lister chaque ligne du tableau: {foreach from=$packs item=pack} {$pack.id_product} {/foreach} Edited November 2, 2012 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 2, 2012 Share Posted November 2, 2012 Bonjour et un grand MERCI à toi franckm1000! Cela fonctionne et me débloque vraiment. Merci également pour beaucoup de tes participations que j'ai déjà consulté. Au plaisir de te lire, Fred. Link to comment Share on other sites More sharing options...
franckm1000 Posted November 2, 2012 Share Posted November 2, 2012 (edited) Pas de souci A noter, pour connaître la structure d'une variable, en plus du debug tu peux utiliser print_r de cette façon: {$ma_variable|print_r} Si tu obtiens un résultat du type: array([0]=>([champs_1]=>valeur_01,[champs_2]=>valeur_02...[champs_n]=>valeur_0n),[1]=>([champs_1]=>valeur_11,[champs_2]=>valeur_12...[champs_n]=>valeur_1n),...,[N]=>[champs_1]=>valeur_N1,[champs_2]=>valeur_N2...[champs_n]=>valeur_Nn)) Alors c'est que tu as un tableau multidimensionnel où tu devras utiliser foreach pour le lister. Edited November 2, 2012 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 4, 2012 Share Posted November 4, 2012 parfait je l'ai fait marcher merci pour cette solution! Je m'y colle toute l'aprem, ça devrait le faire avec ces infos, le reste étant surtout des conditions et de l'affichage. Merci encore, Fred, marchand sur 1.5.2 Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 6, 2012 Share Posted November 6, 2012 Bon je bug complet! Mon objectif est d'afficher les packs dans un onglet de la fiche produit. Je sais faire un nouvel onglet, là-dessus pas de souci. Pour l'instant en utilisant juste: {include file="$tpl_dir./product-list.tpl" products=$packs} lorsqu'on est sur une page produit,le premier pack dans lequel le produit apparaît s'affiche........mais pas les suivants. Cela est normal étant donné que dans la console debug pour la variable $packs n'est chargé que la première ligne [0] Au cas où je ne suis pas clair, le code: {$packs.0.id_product} affiche bien quelque chose mais: {$packs.1.id_product} n'affiche rien... Je pense qu'il faut rajouter quelque chose au fichier product.php en l'overridant mais je ne sais pas quoi... Quelqu'un peut-il m'aider? Merci d'avance pour votre aide! Fred D. Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 6, 2012 Share Posted November 6, 2012 (edited) Je comprends que ce que je dois ajouter doit ressembler à la fonction isPacked de pack.php )... je n'ai pas assez de connaissances encore pour continuer seul... /** * Is product in a pack? * * @static * @param $id_product * @return bool */ public static function isPacked($id_product) { if (!Pack::isFeatureActive()) return false; if (!array_key_exists($id_product, self::$cacheIsPacked)) { $result = Db::getInstance()->getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'pack WHERE id_product_item = '.(int)$id_product); self::$cacheIsPacked[$id_product] = ($result > 0); } return self::$cacheIsPacked[$id_product]; } Edited November 6, 2012 by Frédéric D. (see edit history) Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 6, 2012 Share Posted November 6, 2012 Vraiment je ne vois pas... comment réussir à afficher l'ensemble des packs dans lequel le produit consulté apparait? J'ai pourtant l'impression que PrestaShop nous fournit les variables nécessaires... Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 6, 2012 Share Posted November 6, 2012 (edited) J'ai trouvé un truc qui marche: dans le fichier ProductController.php, à la ligne 207: $this->context->smarty->assign('packs', Pack::getPacksTable($this->product->id, $this->context->language->id, true, 1)); Je supprime le dernier paramètre (ou je le mets à 100..) et les packs suivant dans lequel le produit se retrouve s'affichent! Franckm1000, si tu es toujours dans le coin, pourrais-tu me confirmer que cette solution qui marche tient la route d'un point de vue "developper" ? Merci d'avance pour ton aide!! Fred. Marchand sur la 1.5.2 Edited November 6, 2012 by Frédéric D. (see edit history) Link to comment Share on other sites More sharing options...
franckm1000 Posted November 6, 2012 Share Posted November 6, 2012 (edited) Tu regardes dans le fichier classes/packs.php et la fonction getPacksTable. Le dernier paramètre est $limit donc elle est située à 1. En la mettant à 100 tu récupères les 100 premières valeurs par exemple. Le souci est que la variable que tu changes ici influence certainement à d'autres endroits et tu risques de faire quelques dommages collatéraux... Le mieux est de re-créer une variable smarty et de l'utiliser ensuite. Genre: $is_packs=Pack::getPacksTable($this->product->id, $this->context->language->id, true, 100); $this->context->smarty->assign('is_pack',$is_packs); Et côté TPL tu récupères avec {îs_pack} Mais bon je vois pas très bien ce que tu veux faire et comment y faire donc... Parce que cette variable va te lister les packs mais en amont si je comprends ce que tu veux faire il faudra d'abord sélectionner les packs contenant le produit dans lequel tu te trouves c'est ça ? Edited November 6, 2012 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
Frédéric D. Posted November 7, 2012 Share Posted November 7, 2012 Bonjour Franckm1000 et merci pour ta nouvelle réponse! Je cherche à faire en sorte que lorsqu'un internaute tombe sur une page produit, on lui propose également en plus des accessoires des packs qui contiennent le produit en question. Exemple: Sur la fiche produit de l'appareil photo Canon 650D, je veux proposer un pack numéro 1 contenant cet appareil et une carte mémoire et un pack numéro 2 contenant l'appareil + la carte mémoire + une sacoche adaptée. J'espère être clair... Du coup il faut bien sélectionner les packs contenant le produit. La modification que j'ai effectué dans le fichier ProductController.php associée à la consigne d'affichage dans le product.tpl citée plus haut me donne bien les packs sélectionnés. J'avais trouvé cette piste en analysant les paramètres de la variable $packs dans la console debug. Mais je me doutais qu'il était dangereux de modifier un Controller et c'est pour ça que je voulais avoir ton avis... Je vais essayer de partir de tes derniers conseils et voir comment sélectionner les bons packs ensuite. Fred. 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