From 0a9fa843fb8270744ca119150681c69f92def3b7 Mon Sep 17 00:00:00 2001 From: yannick Date: Mon, 9 Oct 2006 15:55:58 +0000 Subject: [PATCH] sync with EN --- .../language-function-section.xml | 881 +++++++++--------- 1 file changed, 456 insertions(+), 425 deletions(-) diff --git a/docs/fr/designers/language-builtin-functions/language-function-section.xml b/docs/fr/designers/language-builtin-functions/language-function-section.xml index 1813f487..6463c987 100644 --- a/docs/fr/designers/language-builtin-functions/language-function-section.xml +++ b/docs/fr/designers/language-builtin-functions/language-function-section.xml @@ -1,26 +1,19 @@ - + {section},{sectionelse} - - Les balises section sont utilisées pour - parcourir un tableau de données - (tout comme {foreach}). - Toutes les balises {section} doivent être utilisées - de paire avec les balises {/section}. Les paramètres - requis sont name et loop. - Le nom de la {section} est, selon votre choix, composé de lettres, - chiffres et underscores. Les sections peuvent être imbriquées, - mais leurs noms doivent être uniques. La variable de parcours - (généralement un tableau de données) détermine le nombre de fois - que la section sera parcourue. Lorsque l'on affiche une variable - dans une section, le nom de la section doit précéder - la variable entre crochets []. {sectionelse} - est exécuté lorsqu'aucune valeur n'est trouvée dans la variable à - parcourir. - + + Une {section} + sert à boucler dans des tableaux de données, + contrairement à {foreach} + qui est utilisé pour boucler dans un + simple tableau associatif. + Chaque balise {section} doit aller de paire avec une + balise {/section} fermante. + + @@ -33,7 +26,7 @@ Nom attribut Type Requis - Defaut + Défaut Description @@ -50,20 +43,22 @@ mixed Oui n/a - valeur qui détermine le nombre de fois que la boucle sera exécutée. + Valeur qui détermine le nombre de fois que la boucle sera exécutée start entier Non 0 - La position de l'index ou la section commencera son + + La position de l'index ou la section commencera son parcours. Si la valeur donnée est négative, la position de départ est calculée depuis la fin du tableau. Par exemple, s'il existe 7 valeurs dans le tableau à parcourir et que start est à -2, l'index de départ sera 5. Les valeurs incorrectes (en dehors de la portée du tableau) sont automatiquements - tronquées à la valeur correcte la plus proche. + tronquées à la valeur correcte la plus proche + step @@ -73,49 +68,104 @@ La valeur du pas qui sera utilisé pour parcourir le tableau.Par exemple, step=2 parcourera les indices 0,2,4, etc. Si step est négatif, le tableau sera parcouru en sens - inverse. + inverse max entier Non - 1 + n/a Définit le nombre maximum de fois que le tableau sera - parcouru. + parcouru show booléen - Non - true + No + &true; Détermine s'il est nécessaire d'afficher la - section ou non. + section ou non - - {section} + + + Les paramètres requis sont name et loop. + - + + Le name de la {section} est, selon votre choix, + composé de lettres, chiffres et underscores, comme pour les + variables PHP. + + + + Les sections peuvent être imbriquées mais leurs noms doivent être uniques. + + + + L'attribut loop, habituellement un tableau de valeurs, + détermine le nombre de fois que + {section} doit boucler. + + + + Lors de l'affichage d'une variable dans une {section}, le nom de la + {section} doit être fournis après le nom de la variable entre crochets []. + + + + {sectionelse} est exécuté lorsqu'aucune valeur n'est trouvée dans la variable à + parcourir. + + + + {section} a également ces propres variables qui gérent les propriétés + de la {section}. + Ces propriétés sont accessibles comme ceci : + {$smarty.section.name.property} + où name est l'attribut name. + + + + Les propriétés de {section} sont + index, + index_prev, + index_next, + iteration, + first, + last, + rownum, + loop, + show, + total. + + + + + Boucler dans un simple tableau avec {section} + +assign() un tableau à Smarty + + assign('custid',$data); - ?> ]]> - + +Le template qui affiche le tableau - {/section}
-{* Affiche toutes les valeurs du tableau $custid dans le sens inverse *} +{* Affiche toutes les valeurs du tableau $custid, en ordre inverse *} {section name=foo loop=$custid step=-1} {$custid[foo]}
{/section} @@ -135,17 +185,87 @@ id: 1001
id: 1000
]]> - - Voici d'autres exemples sans tableaux assignés. - - +
+ + + + {section} sans un tableau assigné + {section name=bar loop=21 max=6 step=-2} -{$smarty.section.bar.index} + {$smarty.section.bar.index} +{/section} +]]> + + + L'exemple ci-dessus affichera : + + + +20 18 16 14 12 10 +]]> + + + + + + Nommage d'une {section} + + Le name de la {section} peut être ce que vous + voulez, voir les variables PHP. + Il sera utilisé pour référencer les données de la {section}. + + + + + + + + + Boucler dans un tableau associatif avec {section} + + Voici un exemple d'affichage d'un tableau associatif de données avec + {section}. Ce qui suit est le script PHP assignant + le tableau $contacts à Smarty. + + + 'John Smith', 'home' => '555-555-5555', + 'cell' => '666-555-5555', 'email' => 'john@myexample.com'), + array('name' => 'Jack Jones', 'home' => '777-555-5555', + 'cell' => '888-555-5555', 'email' => 'jack@myexample.com'), + array('name' => 'Jane Munson', 'home' => '000-555-5555', + 'cell' => '123456', 'email' => 'jane@myexample.com') + ); +$smarty->assign('contacts',$data); +?> +]]> + + +Le template pour afficher $contacts + + + name: {$contacts[customer].name}
+ home: {$contacts[customer].home}
+ cell: {$contacts[customer].cell}
+ e-mail: {$contacts[customer].email} +

{/section} ]]>
@@ -154,16 +274,34 @@ id: 1000
-20 18 16 14 12 10 +

+ name: John Smith
+ home: 555-555-5555
+ cell: 666-555-5555
+ e-mail: john@myexample.com +

+

+ name: Jack Jones
+ home phone: 777-555-5555
+ cell phone: 888-555-5555
+ e-mail: jack@myexample.com +

+

+ name: Jane Munson
+ home phone: 000-555-5555
+ cell phone: 123456
+ e-mail: jane@myexample.com +

]]>
-
+
- {section}, variable de parcours - + {section} démontrant l'utilisation de la variable <varname>loop</varname> + Cet exemple suppose que $custid, $name + et $address sont tous des tableaux contenant le même + nombre de valeurs. Tout d'abord, le script PHP qui assigne les tableaux à Smarty. + assign('custid',$id); $fullnames = array('John Smith','Jack Jones','Jane Munson'); $smarty->assign('name',$fullnames); -$addr = array('253 N 45th', '417 Mulberry ln', '5605 apple st'); +$addr = array('253 Abbey road', '417 Mulberry ln', '5605 apple st'); $smarty->assign('address',$addr); ?> ]]> - + +La variable loop détermine uniquement le nombre + de fois qu'il faut boucler. + Vous pouvez accéder à n'importe quelle variable du template dans la + {section} - nom : {$name[customer]}
- addresse : {$address[customer]}
-

+{section name=customer loop=$custid} +

+ id: {$custid[customer]}
+ name: {$name[customer]}
+ address: {$address[customer]} +

{/section} ]]>
@@ -202,45 +338,34 @@ $smarty->assign('address',$addr); - id : 1000
- nom : John Smith
- addresse : 253 N 45th + id: 1000
+ name: John Smith
+ address: 253 Abbey road

- id : 1001
- nom : Jack Jones
- addresse : 417 Mulberry ln + id: 1001
+ name: Jack Jones
+ address: 417 Mulberry ln

- id : 1002
- nom : Jane Munson
- addresse : 5605 apple st + id: 1002
+ name: Jane Munson
+ address: 5605 apple st

]]>
- - nom de {section} - - - id: {$idCLient[monTableau]}
- name: {$noms[monTableau]}
- address: {$addresses[monTableau]} -

-{/section} -]]> -
-
+ - sections imbriquées + {section} imbriquée + + Les sections peuvent être imbriquées autant de fois que vous le voulez. + Avec les sections imbriquées, vous pouvez accéder aux structures de données + complexes, comme les tableaux multi-dimentionnels. Voici un script PHP qui assigne les + tableaux. + assign('address',$addr); $types = array( - array( 'home phone', 'cell phone', 'e-mail'), - array( 'home phone', 'web'), - array( 'cell phone') -); + array( 'home phone', 'cell phone', 'e-mail'), + array( 'home phone', 'web'), + array( 'cell phone') + ); $smarty->assign('contact_type', $types); $info = array( - array('555-555-5555', '666-555-5555', 'john@myexample.com'), - array( '123-456-4', 'www.example.com'), - array( '0457878') -); + array('555-555-5555', '666-555-5555', 'john@myexample.com'), + array( '123-456-4', 'www.example.com'), + array( '0457878') + ); $smarty->assign('contact_info', $info); ?> -]]> - + ]]> + +Dans ce template, $contact_type[customer] est un tableau de + types de contacts. - id: {$idClient[client]}
- nom: {$nom[client]}
- addresse: {$addresse[client]}
- {section name=contact loop=$type_contact[client]} - {$type_contact[client][contact]}: {$info_contact[client][contact]}
+{section name=customer loop=$custid} +
+ id: {$custid[customer]}
+ name: {$name[customer]}
+ address: {$address[customer]}
+ {section name=contact loop=$contact_type[customer]} + {$contact_type[customer][contact]}: {$contact_info[customer][contact]}
{/section} {/section} ]]> @@ -296,175 +416,92 @@ $smarty->assign('contact_info', $info); -id: 1000
-nom: John Smith
-addresse: 253 N 45th
-telephone: 555-555-5555
-telephone portable: 555-555-5555
-e-mail: john@myexample.com
-
-id: 1001
-nom: Jack Jones
-addresse: 417 Mulberry ln
-telephone: 555-555-5555
-telephone portable: 555-555-5555
-e-mail: jack@myexample.com
-
-id: 1002
-nom: Jane Munson
-addresse: 5605 apple st
-telephone: 555-555-5555
-telephone portable: 555-555-5555
-e-mail: jane@myexample.com
-
+
+ id: 1000
+ name: John Smith
+ address: 253 N 45th
+ home phone: 555-555-5555
+ cell phone: 666-555-5555
+ e-mail: john@myexample.com
+
+ id: 1001
+ name: Jack Jones
+ address: 417 Mulberry ln
+ home phone: 123-456-4
+ web: www.example.com
+
+ id: 1002
+ name: Jane Munson
+ address: 5605 apple st
+ cell phone: 0457878
]]>
- - Sections et tableaux associatifs - - +Exemple avec une base de données et {sectionelse} + Les résultats d'une recherche dans une base de données + (e.g. ADODB ou PEAR) sont assignés à Smarty + + 'John Smith', 'home' => '555-555-5555', - 'cell' => '666-555-5555', 'email' => 'john@myexample.com'), - array('name' => 'Jack Jones', 'home' => '777-555-5555', - 'cell' => '888-555-5555', 'email' => 'jack@myexample.com'), - array('name' => 'Jane Munson', 'home' => '000-555-5555', - 'cell' => '123456', 'email' => 'jane@myexample.com') -); -$smarty->assign('contacts',$data); - +$sql = 'select id, name, home, cell, email from contacts ' + ."where name like '$foo%' "; +$smarty->assign('contacts', $db->getAll($sql)); ?> ]]> - + +Le template pour afficher le résultat de la base de données dans un tableau HTML - nom: {$contacts[client].name}
- telephone: {$contacts[client].home}
- portable: {$contacts[client].cell}
- e-mail: {$contacts[client].email} -

-{/section} -]]> -
- - L'exemple ci-dessus affichera : - - - -nom: John Smith
-telephone: 555-555-5555
-portable: 555-555-5555
-e-mail: john@myexample.com -

-

-nom: Jack Jones
-telephone: 555-555-5555
-portable: 555-555-5555
-e-mail: jack@myexample.com -

-

-nom: Jane Munson
-telephone: 555-555-5555
-portable: 555-555-5555
-e-mail: jane@myexample.com

-

-]]> -
-
- - Exemple avec une base de données (eg. en utilisant Pear ou Adodb) - -assign('contacts',$db->getAll($sql) ); - -?> -]]> - - - - -  Name>HomeCellEmail - {section name=co loop=$contacts} - - view - {$contacts[co].name} - {$contacts[co].home} - {$contacts[co].cell} - {$contacts[co].email} - - {/section} + Name>HomeCellEmail +{section name=co loop=$contacts} + + view + {$contacts[co].name} + {$contacts[co].home} + {$contacts[co].cell} + {$contacts[co].email} + +{sectionelse} + Aucun élément n'a été trouvé +{/section} ]]> - - - - {sectionelse} - - -{sectionelse} - Aucune valeur dans $idClient. -{/section} -]]> - + - - Les sections ont leur propre variable de gestion des propriétés. - Elles sont de la forme: - {$smarty.section.sectionname.varname} - - - Depuis Smarty 1.5.0, la syntaxe pour les propriétés des sections - a été changée de {%sectionname.varname%} à - {$smarty.section.nomSection.nomVariable}. L'ancienne syntaxe est toujours - supportée, mais vous ne verrez que des exemples avec la nouvelle syntaxe - dans le manuel. - + - index + .index - Index est utilisé pour afficher l'index de parcours courant, commence par - 0 (ou l'attribut start s'il est fourni), et s'incrémente de 1 (ou de la valeur - de l'attribut step s'il est fourni). + index contient l'index courant du tableau, en commençant par zéro ou par + start s'il est fourni. Il s'incrémente d'un en un ou de + step s'il est fourni. Note technique - Si les attributs step et start ne sont pas modifiés, alors index - fonctionne de la même façon que iteration, à l'exception qu'il commence - par 0 plutôt que par 1. + Si les propriétés step et start + ne sont pas modifiés, alors le fonctionnement est le même que celui de la propriété + iteration, + mise à part qu'il commence à zéro au lieu de un. - propriété de {section} index +Exemple avec la propriété <varname>index</varname> + +FYI +$custid[customer.index] et +$custid[customer] sont identiques. + + +{section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}
{/section} ]]>
@@ -481,61 +518,61 @@ Affiche le r
+ - index_prev + .index_prev - index_prev est utilisé pour afficher l'index de parcours - précédent de la boucle. Au premier passage, il vaut -1. + index_prev est l'index de la boucle précédente. + Lors de la première boucle, il vaut -1. - index_next + .index_next - index_next est utilisé pour afficher la valeur théorique suivante de - index. Dans la dernière boucle, celà reste la valeur incrémentée, - qui respecte l'attribut step si donné. + index_next est l'index de la prochaine boucle. + Lors de la prochaine boucle, il vaudra un de moins que l'index courant, suivant + la configuration de l'attribut step, s'il est fourni. - propriété de {section} index_next et index_prev - +Exemple avec les propriétés <varname>index</varname>, <varname>index_next</varname> + et <varname>index_prev</varname> + assign('custid',$data); - +$smarty->assign('rows',$data); ?> ]]> - + +Le template pour afficher le tableau ci-dessus dans un tableau HTML - - - indexid - index_prevprev_id - index_nextnext_id - - {section name=cus loop=$custid} - - {$smarty.section.cus.index}{$custid[cus]} - {$smarty.section.cus.index_prev}{$custid[cus.index_prev]} - {$smarty.section.cus.index_next}{$custid[cus.index_next]} - - {/section} + + indexid + index_prevprev_id + index_nextnext_id + +{section name=row loop=$rows} + + {$smarty.section.row.index}{$rows[row]} + {$smarty.section.row.index_prev}{$rows[row.index_prev]} + {$smarty.section.row.index_next}{$rows[row.index_next]} + +{/section} ]]> - - - L'exemple ci-dessus affichera : - - + + + L'exemple ci-dessus affichera un tableau HTML contenant : + + + - iteration + .iteration - iteration est utilisé pour afficher la valeur courante de l'iteration. - - - NOTE: Cette valeur n'est pas affectée par les attributs start, step et - max, à l'inverse de la propriété index. - L'itération commence par - 1 et non par 0 (comme le fait index). rownum est un alias de iteration, - ils fonctionnent de la même façon. + iteration contient l'itération courante de la boucle et commence à un. + + + Ceci n'est pas affecté par les propriétés {section} + start, step et + max contrairement à la propriété + index. + iteration commence également à un au lieu de zéro + contrairement à index. + rownum + est un alias de iteration, ils sont identiques. + + - propriété iteration de {section} - +Exemple avec la propriété <varname>iteration</varname> + assign('custid',$id); - +$smarty->assign('arr',$id); ?> ]]> - + +Le template pour afficher tous les autres éléments du tableau $arr comme + step=2 +{section name=cu loop=$arr start=5 step=2} + iteration={$smarty.section.cu.iteration} + index={$smarty.section.cu.index} + id={$custid[cu]}
{/section} ]]> -
- - L'exemple ci-dessus affichera : - - + + + L'exemple ci-dessus affichera : + + iteration=2 index=7 id=3007
@@ -593,194 +635,183 @@ iteration=5 index=13 id=3013
iteration=6 index=15 id=3015
]]>
- - Cet exemple utilise la propriété iteration pour afficher - un block d'en-tête de tableau toutes les cinq lignes - (utilisez {if} - avec l'opérateur mod). - + + Un autre exemple d'utilisation de la propriété + iteration est d'afficher un bloc d'en-tête d'un tableau toutes + les 5 lignes. + Utilisez la fonction {if} + avec l'opérateur mod. + - {section name=co loop=$contacts} - {if $smarty.section.co.iteration % 5 == 1} -  Name>HomeCellEmail - {/if} - -
view - {$contacts[co].name} - {$contacts[co].home} - {$contacts[co].cell} - {$contacts[co].email} - - {/section} +{section name=co loop=$contacts} + {if $smarty.section.co.iteration % 5 == 1} +  Name>HomeCellEmail + {/if} + + view + {$contacts[co].name} + {$contacts[co].home} + {$contacts[co].cell} + {$contacts[co].email} + +{/section} ]]> - - + + + - first + .first - first est à true lorsque la section est parcouru pour la première fois. + first est défini à &true; si l'itération courante de + {section} est l'initiale. + - last + .last - last est à true lorsque la section est parcourue pour la dernière fois. + last est défini à &true; + si l'itération courante de la section est la dernière. - Propriété last et first de {section} + Exemple avec les propriétés <varname>first</varname> et <varname>last</varname> - Cet exemple boucle le tableau $customers ; - affiche un block d'en-tête lors de la première itération et, - à la dernière, affiche un block de pied de page - (utilisation de la propriété total) + Cet exemple boucle sur le tableau $customers, + affiche un bloc d'en-tête lors de la première itération et, lors de la dernière, + affiche un bloc de pied de page. Utilise aussi la propriété + total. - idcustomer - {/if} + {if $smarty.section.customer.first} + + + {/if} - - - - + + + + - {if $smarty.section.customer.last} - -
idcustomer
{$customers[customer].id}}{$customers[customer].name}
{$customers[customer].id}}{$customers[customer].name}
{$smarty.section.customer.total} customers
-{/if} + {if $smarty.section.customer.last} + {$smarty.section.customer.total} customers + + {/if} {/section} ]]>
+ - rownum + .rownum - rownum, utilisé pour afficher la valeur courante de l'itération, - commence par 1. C'est un alias de iteration, ils fonctionnent de façon - identique. + rownum contient l'itération courante de la boucle, + commençant à un. C'est un alias de iteration, + ils fonctionnent exactement de la même façon. - loop + .loop - loop est utilisé pour afficher la dernière valeur de index que cette - section a utilisé. Peut être utilisé dans ou en dehors de la section. - + loop contient le dernier index de la boucle de la section. + Il peut être utilisé dans ou après la {section}. + - Propriété de {section} index + Exemple avec la propriété <varname>loop</varname> +{section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}
{/section} - -Il y eu {$smarty.section.client.loop} clients d'affichés. +There are {$smarty.section.customer.loop} customers shown above. ]]> -
- - L'exemple ci-dessus affichera : - - + + + L'exemple ci-dessus affichera : + + 1 id: 1001
2 id: 1002
- -Il y eu 3 clients d'affichés. +There are 3 customers shown above. ]]>
- show + .show - show est utilisé comme paramètre de section. - show est une valeur booléenne, true ou false. - Si show est à "false", la section ne sera pas affichée. Si un - {sectionelse} est présent, elle sera affichée. + show est utilisé en tant que paramètre à la section et est une valeur booléenne. + S'il vaut &false;, la section ne sera pas affichée. S'il y a un + {sectionelse}, il sera affiché de façon alternative. - {section}, attribut show + Exemple avec la propriété <varname>show</varname> + Une valeur booléenne $show_customer_info est passée + depuis l'application PHP, pour réguler l'affichage ou non de cette section. +{section name=customer loop=$customers show=$show_customer_info} + {$smarty.section.customer.rownum} id: {$customers[customer]}
{/section} -{if $smarty.section.client.show} - la section a été affichée. +{if $smarty.section.customer.show} + the section was shown. {else} - la section n'a pas été affichée. + the section was not shown. {/if} ]]> -
- - L'exemple ci-dessus affichera : - - + + + L'exemple ci-dessus affichera : + + 2 id: 1001
3 id: 1002
-la section a été affichée. +the section was shown. ]]>
- total + .total - total est utilisé pour afficher le nombre d'itération que la section - va exécuter. Peut être utilisé dans ou en dehors de la section. + total contient le nombre d'itérations que cette + {section} bouclera. Il peut être utilisé dans ou après une + {section}. - {section}, propriété <literal>total</literal> + Exemple avec la propriété <varname>total</varname> +{section name=customer loop=$custid step=2} + {$smarty.section.customer.index} id: {$custid[customer]}
{/section} - -Il y eu {$smarty.section.client.total} clients affichés. + There are {$smarty.section.customer.total} customers shown above. ]]> -
- - L'exemple ci-dessus affichera : - - - -2 id: 1001
-4 id: 1002
- -Il y eu 3 clients affichés. -]]> -
+
Voir aussi - {foreach} et - $smarty.section. + {foreach} et + $smarty.section.