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 attributTypeRequis
- Defaut
+ DéfautDescription
@@ -50,20 +43,22 @@
mixedOuin/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éestartentierNon0
- 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
maxentierNon
- 1
+ n/aDéfinit le nombre maximum de fois que le tableau sera
- parcouru.
+ parcouru
showboolé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}
+
+ 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 loop
+ 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}
]]>
@@ -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) );
-
-?>
-]]>
-
-
-
-
-
+{/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é index
+
+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 index, index_next
+ et index_prev
+
assign('custid',$data);
-
+$smarty->assign('rows',$data);
?>
]]>
-
+
+Le template pour afficher le tableau ci-dessus dans un tableau HTML
-
-
-
index
id
-
index_prev
prev_id
-
index_next
next_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}
+
+
index
id
+
index_prev
prev_id
+
index_next
next_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é iteration
+
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}
-
+{/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 first et last
- 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.
-
id
customer
- {/if}
+ {if $smarty.section.customer.first}
+
+
id
customer
+ {/if}
-
-
{$customers[customer].id}}
-
{$customers[customer].name}
-
+
+
{$customers[customer].id}}
+
{$customers[customer].name}
+
- {if $smarty.section.customer.last}
-
{$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é loop
+{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é show
+ 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é total
+ Exemple avec la propriété total
+{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.