caly16 Posted September 10, 2012 Share Posted September 10, 2012 (edited) Bonjour, bonsoir, Dans le compte du client connecté (le menu affichant des liens principaux), je souhaite que "Mes Avoirs" soit affiché uniquement si le client dispose d'un avoir . Pareil pour "Mes bons de réductions", je souhaite que le lien soit disponible uniquement si le client possède un bon de réduction. Ainsi par défaut les liens ne doivent pas être visibles si le client n'en possède pas. Je suppose que la modification s'effectue dans le fichier my-account.tpl. Pouvez-vous m'aider à créer une condition Smarty du type : Afficher "bon de réduction" si active=1 de "$Discount" J'essayerai de me débrouiller pour les autres. Merci Edited September 12, 2012 by caly16 (see edit history) Link to comment Share on other sites More sharing options...
caly16 Posted September 12, 2012 Author Share Posted September 12, 2012 Up ! please Link to comment Share on other sites More sharing options...
caly16 Posted September 12, 2012 Author Share Posted September 12, 2012 (edited) J'ai essayé : {if $voucher->active==1} mais aussi {if $discount->active==1} et {if $discountDetail.active == 1} sans résultat Quelqu'un peut m'aider SVP ?? Edited September 12, 2012 by caly16 (see edit history) Link to comment Share on other sites More sharing options...
caly16 Posted September 12, 2012 Author Share Posted September 12, 2012 une petite aide ....please Link to comment Share on other sites More sharing options...
caly16 Posted September 12, 2012 Author Share Posted September 12, 2012 (edited) Je me réponds.... J'ai trouvé ça {if !$discount->active==1} mais il prend en compte toute la table table ps_discount et pas uniquement le champ (ou les champs) du client connecté Il faut que je rajoute une suite qui commence par && ... Un avis , une idéée? Edited September 12, 2012 by caly16 (see edit history) Link to comment Share on other sites More sharing options...
franckm1000 Posted September 12, 2012 Share Posted September 12, 2012 (edited) Pour les avoirs, le problème est que dans la page mon compte tu ne récupères pas les avoirs. En gros, cette page n'affiche pas la variable $ordersSlip. Celle-ci n'est récupérée que dans la page order-slip.tpl. Tu dois donc éditer le fichier controllers/MyAccountController.php. Après: public function process() { Tu ajoutes: global $cookie; $orderslip=OrderSlip::getOrdersSlip($cookie->id_customer); if(empty($orderslip)){$avoirs=0;} else{$avoirs=1;} self::$smarty->assign('avoirs',$avoirs); Ensuite, on va insérer une condition dans le fichier TPL disant que si $avoirs différent de zéro c'est qu'il y a au moins un avoir. Cette ligne là: <li><a href="{$link->getPageLink('order-slip.php', true)}" title="{l s='Credit slips'}"><img src="{$img_dir}icon/slip.gif" alt="{l s='Credit slips'}" class="icon" /></a><a href="{$link->getPageLink('order-slip.php', true)}" title="{l s='Credit slips'}">{l s='My credit slips'}</a></li> Tu l'entoures comme ça: {if $avoirs!=0}la ligne ci-dessus...{/if} Voilà pour les avoirs. Pour les bons de remise, tu peux utiliser la même méthode. Dans le même fichier controller PHP que l'on a modifié, à la suite tu rajoutes: $discounts=Discount::getCustomerDiscounts($cookie->id_lang,$cookie->id_customer); if(empty($discounts)){$remise=0;} else{$remise=1;} self::$smarty->assign('remise',$remise); Et tu fais la même condition dans le tpl sur la ligne du lien bons de réduction avec une condition cette fois sur $remise. Testé sur 1.4.9 Edited September 12, 2012 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
caly16 Posted September 12, 2012 Author Share Posted September 12, 2012 Amazing ! Vraiment MERCI. Une réponse complète et parfaite!! Je vais même l'adapter pour les retours. Je t'invite à en faire un module car j'ai passé 2 jours à rechercher sur le forum mais aussi Google et autres sites, en ayant que des brides, sans aucun résultat concret. Par expérience, lorsque le client va plusieurs fois sur son compte pour suivre sa commande, il voit : - Avoirs, - Bon de réduction, - Retour - (Liste cadeaux)... Ce qui peut l'emmener à faire des déductions, plus particulièrement sur certains articles très élevés.... Link to comment Share on other sites More sharing options...
franckm1000 Posted September 13, 2012 Share Posted September 13, 2012 Je vais me pencher sur ce problème pour voir si on peut faire un module dessus. Link to comment Share on other sites More sharing options...
caly16 Posted September 13, 2012 Author Share Posted September 13, 2012 (edited) Je ne sais pas pourquoi mais "Mes bons de réduction" refuse de s'enlever par la suite (Je suis sous 1.4.8.2) Ça a fonctionné la première fois mais plus maintenant. J'ai essayé en créant un bon de réduction pour un seul client puis supprimer dans le BO (et dans la table discount). J'ai aussi essayé avec un autre utilisateur (sans crée de bon pour lui), "Mes bons de réduction" reste affiché. Voici mon code dans MyaccountController.php global $cookie; $orderReturn=OrderReturn::getOrdersReturn($cookie->id_customer); if(empty($orderReturn)){$retours=0;} else{$retours=1;} self::$smarty->assign('retours',$retours); $discounts=Discount::getCustomerDiscounts($cookie->id_lang,$cookie->id_customer); if(empty($discounts)){$remise=0;} else{$remise=1;} self::$smarty->assign('remise',$remise); $orderslip=OrderSlip::getOrdersSlip($cookie->id_customer); if(empty($orderslip)){$avoirs=0;} else{$avoirs=1;} self::$smarty->assign('avoirs',$avoirs); parent::process() et dans my-account.php (if $returnAllowed && $retours!=0}........ {/if} {if $voucherAllowed && $remise!=0}....... {/if} {if $avoirs!=0}......... {/if} De même si le client en dispose plusieurs (que se soit des réductions, des retours ou des avoirs) faut-il pas mieux remplacer "=1" par des ">=1" dans les "else" de chaque? else{$retours=1;} else{$remise=1;} else{$avoirs=1;} Edited September 13, 2012 by caly16 (see edit history) Link to comment Share on other sites More sharing options...
franckm1000 Posted September 13, 2012 Share Posted September 13, 2012 (edited) C'est bizarre parce que je viens d'essayer à nouveau et ça fonctionne. Si je créé un bon de réduction pour un client, la ligne apparaît dans mon compte. Dès que je le supprime, la ligne disparaît. En fait les else avec le 1 ne sert...à rien. La condition qui nous intéresse c'est quand la variable vaut 0. C'est sur cette valeur qu'on fait le test. J'ai mis le 1 pour être sûr qu'a ce moment la variable ne puisse pas prendre la valeur 0 (valeur gardée en mémoire notamment). Tu es sûr que le les accolades entourent le bon code (la bonne liste <li>) ? Edited September 13, 2012 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
caly16 Posted September 13, 2012 Author Share Posted September 13, 2012 (edited) {if $voucherAllowed && $remise!=0} <li><a href="{$link->getPageLink('discount.php', true)}" title="{l s='Vouchers'}"><img src="{$img_dir}icon/voucher.gif" alt="{l s='Vouchers'}" class="icon" /> {l s='My vouchers'}</a></li>{/if} Je mets l'extrait de my-account.tpl </li> {if $returnAllowed && $retours!=0} <li><a href="{$link->getPageLink('order-follow.php', true)}" title="{l s='Merchandise returns'}"><img src="{$img_dir}icon/return.gif" alt="{l s='Merchandise returns'}" class="icon" /> {l s='My merchandise returns'}</a></li> {/if} {if $voucherAllowed && $remise!=0} <li><a href="{$link->getPageLink('discount.php', true)}" title="{l s='Vouchers'}"><img src="{$img_dir}icon/voucher.gif" alt="{l s='Vouchers'}" class="icon" /> {l s='My vouchers'}</a></li> {/if} {if $avoirs!=0} <li><a href="{$link->getPageLink('order-slip.php', true)}" title="{l s='Credit slips'}"><img src="{$img_dir}icon/slip.gif" alt="{l s='Credit slips'}" class="icon" /> {l s='My credit slips'}</a></li> {/if} {$HOOK_CUSTOMER_ACCOUNT} Je vide bien mon cache à chaque essai et force la compilation (je suis en local). J'ai d'autres bons de réduction désactivés et périmés (date de validité dépassée). Lorsque je clique sur "Bon de réduction" j'obtiens bien "Vous ne possédez pas de bon de réduction." Edited September 13, 2012 by caly16 (see edit history) Link to comment Share on other sites More sharing options...
caly16 Posted September 14, 2012 Author Share Posted September 14, 2012 C'est bon j'ai trouvé !!! (j'ai passé toute la soirée et la journée car mes connaissances sont très faibles) j'ai rajouter en plus : $customer->id J'ai réimporté certaines de mes tables de la version 1.2.5 sur la nouvelle ce qui à peut-être causé plus de difficultés Link to comment Share on other sites More sharing options...
yaco-informatique Posted October 4, 2013 Share Posted October 4, 2013 Bonjour Y'as t il une solution pareil pour prestashop 1.5.4 ??? 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