|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
lan19 Smarty Rookie
Joined: 18 Mar 2011 Posts: 12
|
Posted: Fri Mar 18, 2011 9:16 pm Post subject: [Résolu]Récupérer la valeur de counter |
|
|
Bonjour,
J'ai crée une page facture.tpl qui affiche des factures. Une boucle parcours la table des commandes et vérifie si une facture est disponible.
Dans un tableau chaque facture est affichée sur une ligne numérotée
(Le compteur initié par counter fonctionne bien).
Seulement je veux juste récupérer la valeur du compteur quand la boucle est terminée afin de mettre une phrase : Vous avez X factures.
J'ai tenté d'afficher le compteur dans une balise <p> mais il m'incrémente le résultat de +1, ce qui est faux.
Je ne sais pas comment faire autrement . Peut-on m'aider ?
Code: |
{counter name=countinvoice start=1 skip=1 assign=countorders}
{foreach from=$orders item=order name=myLoop}
{if $order.valid >=1}
{counter}
{if $order.id_order|intval == 0}
{l s='No invoice edited.'}
{/if}
{dateFormat date=$order.date_add full=0}
{if $order.total_paid_real|intval == 0}
-
{else}
{displayPrice price=$order.total_paid_real currency=$order.id_currency no_utf8=false convert=false}
{/if}
{$order.payment|escape:'htmlall':'UTF-8'}
{$order.order_state|escape:'htmlall':'UTF-8'}
{/if}
{/foreach}
<p>Vous avez: {counter} factures</p>
|
Last edited by lan19 on Wed Mar 23, 2011 8:13 am; edited 1 time in total |
|
Back to top |
|
matmoch Smarty Rookie
Joined: 11 Mar 2011 Posts: 6
|
Posted: Tue Mar 22, 2011 2:43 pm Post subject: |
|
|
Et si tu faisais partir ton counter de 0 ce serait mieux je pense car tu l'incrémente en fin de boucle donc à ta dernière facture ça te met un +1 en trop.
Sinon ce que tu peut faire c'est un count de ton tableau dans ta partie php tu récupère ça dans une variable nb que tu assign à ton template derrière du coup tu met:
Code: | Vous avez {$nb} facture. |
|
|
Back to top |
|
lan19 Smarty Rookie
Joined: 18 Mar 2011 Posts: 12
|
Posted: Tue Mar 22, 2011 3:13 pm Post subject: |
|
|
Bonjour et merci d'avoir répondu.
Comment je fais le count ? |
|
Back to top |
|
matmoch Smarty Rookie
Joined: 11 Mar 2011 Posts: 6
|
Posted: Tue Mar 22, 2011 3:20 pm Post subject: |
|
|
Il te suffit de faire dans ta partie php un petit $nb = count($tab); avec dans ton $tab ton tableau de factures. |
|
Back to top |
|
lan19 Smarty Rookie
Joined: 18 Mar 2011 Posts: 12
|
Posted: Tue Mar 22, 2011 4:34 pm Post subject: |
|
|
Oui, effectivement cela fonctionne comme cela, mais ca compte toutes les commandes (car cest un tableau de commande que j'ai fait) et pas les factures validées.
Du coup j'ai fait un :
Code: | {assign var='NberLineInvoice' value=$NberLineInvoice+$countorders} |
inséréé après:
Code: | {if $order.valid >=1} |
et j'affiche le nombre de factures validées par :
Ca fonctionne comme je veux.
Pensez-vous que c'est propre comme code ? |
|
Back to top |
|
matmoch Smarty Rookie
Joined: 11 Mar 2011 Posts: 6
|
Posted: Wed Mar 23, 2011 8:04 am Post subject: |
|
|
Pour ma part je trouve ça correcte j'aurai fait de la même façon et puis ça marche c'est donc bon d'après moi. |
|
Back to top |
|
lan19 Smarty Rookie
Joined: 18 Mar 2011 Posts: 12
|
Posted: Wed Mar 23, 2011 8:13 am Post subject: |
|
|
Bonjour,
Très bien. Je vous remercie énormément de m'avoir consacré de votre temps pour m'aider. Problème donc résolu. |
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|