<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://www.spip.net/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>SPIP</title>
	<link>https://www.spip.net/</link>
	<description>Syst&#232;me de Publication pour Internet</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.spip.net/spip.php?id_auteur=503&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>SPIP</title>
		<url>https://www.spip.net/local/cache-vignettes/L144xH107/siteon0-0ecda.png?1615902774</url>
		<link>https://www.spip.net/</link>
		<height>107</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>#SELF</title>
		<link>https://www.spip.net/fr_article4574.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4574.html</guid>
		<dc:date>2010-03-08T00:11:50Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie</dc:creator>


		<dc:subject>#SELF</dc:subject>
		<dc:subject>SPIP 1.8</dc:subject>

		<description>
&lt;p&gt;La balise #SELF retourne l'URL de la page en cours. &lt;br class='autobr' /&gt; Les variables propres &#224; l'ex&#233;cution de SPIP (par exemple, var_mode) sont supprim&#233;es. Ainsi, pour une page avec l'url spip.php ?article25&amp;amp ;var_mode=recalcul, la balise #SELF plac&#233;e dans article.html retournera spip.php ?article25. &lt;br class='autobr' /&gt;
Usages Certaines balises de formulaires acceptent un param&#232;tre pour pr&#233;ciser sur quelle page le visiteur doit &#234;tre redirig&#233; apr&#232;s avoir valid&#233; le formulaire. #SELF peut alors &#234;tre utilis&#233; pour qu'il (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique543.html" rel="directory"&gt;Balises&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@self" rel="tag"&gt;#SELF&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@spip18" rel="tag"&gt;SPIP 1.8&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SELF&lt;/code&gt; retourne l'URL de la page en cours.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-3&#034; id=&#034;nav6a10dbbe9d0dd3.27912330&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Usages&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Usages&#034; class=&#034;spip_ancre&#034;&gt;Usages&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-SELF-dans-les-squelettes-inclus&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#SELF-dans-les-squelettes-inclus&#034; class=&#034;spip_ancre&#034;&gt;SELF dans les squelettes inclus&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Voir-aussi&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Voir-aussi&#034; class=&#034;spip_ancre&#034;&gt;Voir aussi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Les variables propres &#224; l'ex&#233;cution de SPIP (par exemple, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;var_mode&lt;/code&gt;) sont supprim&#233;es.&lt;br class='autobr' /&gt;
Ainsi, pour une page avec l'url &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip.php?article25&amp;var_mode=recalcul&lt;/code&gt;, la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SELF&lt;/code&gt; plac&#233;e dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;article.html&lt;/code&gt; retournera &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip.php?article25&lt;/code&gt;.&lt;/p&gt;
&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Usages&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Usages'&gt;Usages&lt;a class='sommaire-back sommaire-back-3' href='#s-Usages' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;- Certaines balises de formulaires acceptent un param&#232;tre pour pr&#233;ciser sur quelle page le visiteur doit &#234;tre redirig&#233; apr&#232;s avoir valid&#233; le formulaire. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SELF&lt;/code&gt; peut alors &#234;tre utilis&#233; pour qu'il revienne sur la page courante. Exemple : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#FORMULAIRE_FORUM{#SELF})]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;- Avec le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|parametre_url&lt;/code&gt;, pour ajouter des variables dans l'URL de la page courante. Exemple : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#SELF|parametre_url{'id_mot','3'})]&lt;/code&gt; ajoute &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_mot=3&lt;/code&gt; &#224; l'URL courante. Voir &lt;a href='https://www.spip.net/fr_article4255.html' class=&#034;spip_in&#034;&gt;|parametre_url&lt;/a&gt; pour plus de d&#233;tails.&lt;/p&gt;
&lt;p&gt;- &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SELF&lt;/code&gt; est utile dans les formulaires, pour que l'utilisateur revienne &#224; la page courante apr&#232;s validation :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;form action=&#034;#SELF&#034;&gt; [(#SELF|form_hidden)] ... &lt;/form&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note : le filtre &lt;a href='https://www.spip.net/fr_article4286.html' class=&#034;spip_in&#034;&gt;|form_hidden&lt;/a&gt; calcule les champs cach&#233;s (&lt;i&gt;hidden&lt;/i&gt;) du formulaire &#224; partir des arguments de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SELF&lt;/code&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;SELF-dans-les-squelettes-inclus&#034;&gt;&lt;h2 class=&#034;h2&#034; id='SELF-dans-les-squelettes-inclus'&gt;SELF dans les squelettes inclus&lt;a class='sommaire-back sommaire-back-3' href='#s-SELF-dans-les-squelettes-inclus' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lorsque l'un des param&#232;tres de l'URL de la page doit &#234;tre r&#233;cup&#233;r&#233; dans un squelette inclus, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SELF&lt;/code&gt; doit &#234;tre ajout&#233; comme param&#232;tre de l'&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;INCLURE&lt;/code&gt;. De cette fa&#231;on, un cache diff&#233;rent du squelette inclus sera cr&#233;&#233; pour chaque URL&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Ceci constitue une s&#233;curit&#233; contre une potentielle attaque XSS.&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;INCLURE{fond=mon_squelette}{self=#SELF}&gt; &lt;INCLURE{fond=mon_squelette}{self}&gt; &lt;INCLURE{fond=mon_squelette}{env}&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce param&#232;tre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{self=#SELF}&lt;/code&gt; doit &#233;galement &#234;tre pass&#233; &#224; un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;INCLURE&lt;/code&gt; lorsque l'on veut utiliser la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION&lt;/code&gt; dans un squelette inclus, &#233;tant donn&#233; que celle-ci repose sur la fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;self&lt;/code&gt; pour retrouver la variable &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;debut_...&lt;/code&gt;.&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Voir-aussi&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Voir-aussi'&gt;Voir aussi&lt;a class='sommaire-back sommaire-back-3' href='#s-Voir-aussi' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.spip.net/fr_article1828.html' class=&#034;spip_in&#034;&gt;&lt;INCLURE&gt; d'autres squelettes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Ceci constitue une s&#233;curit&#233; contre une potentielle attaque &lt;i&gt;XSS&lt;/i&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#REM</title>
		<link>https://www.spip.net/fr_article4578.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4578.html</guid>
		<dc:date>2010-03-01T08:19:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie</dc:creator>


		<dc:subject>#REM</dc:subject>

		<description>
&lt;p&gt;La balise #REM ne produit aucun affichage : elle permet de commenter le code des squelettes. [(#REM) Ceci est une remarque ] &lt;br class='autobr' /&gt;
La balise et sa partie optionnelle sont purement et simplement supprim&#233;es lors du calcul du squelette. [(#REM)] n'appara&#238;t pas dans le code HTML du site public et ne produit donc aucun affichage. &lt;br class='autobr' /&gt;
Attention toutefois aux effets pervers de #REM&lt; : la partie optionnelle d'une balise ne devant pas contenir de boucle, l'&#233;criture ci-dessous [(#REM) essai de boucle : (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique543.html" rel="directory"&gt;Balises&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@rem" rel="tag"&gt;#REM&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#REM&lt;/code&gt; ne produit aucun affichage : elle permet de commenter le code des squelettes.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#REM) Ceci est une remarque ] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La balise et sa partie optionnelle sont purement et simplement supprim&#233;es lors du calcul du squelette. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#REM)]&lt;/code&gt; n'appara&#238;t pas dans le code HTML du site public et ne produit donc aucun affichage.&lt;/p&gt;
&lt;p&gt;Attention toutefois aux &lt;strong&gt;effets pervers&lt;/strong&gt; de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#REM&lt;&lt;/code&gt; : la partie optionnelle d'une balise ne devant pas contenir de boucle, l'&#233;criture ci-dessous&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#REM) essai de boucle: ne pas afficher ! &lt;BOUCLE_a(ARTICLES){...}{0,1}&gt; #ID_ARTICLE - #TITRE &lt;/BOUCLE_a&gt; ] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;retournera :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;essai de boucle: ne pas afficher ! 18 - Mon titre d'article&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>|find</title>
		<link>https://www.spip.net/fr_article4575.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4575.html</guid>
		<dc:date>2009-12-23T16:52:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie, denisb</dc:creator>


		<dc:subject>#ARRAY</dc:subject>
		<dc:subject>find</dc:subject>

		<description>
&lt;p&gt;Le filtre |find appliqu&#233; &#224; un tableau v&#233;rifie la pr&#233;sence d'une valeur dans le tableau &lt;br class='autobr' /&gt; Le filtre |find permet de v&#233;rifier la pr&#233;sence d'une valeur dans le tableau auquel il est appliqu&#233; : [(#GETmon_tableau|findla_valeur|oui) Ceci s'affiche si la valeur &#171; la_valeur &#187; est bien pr&#233;sente dans le tableau &#171; mon_tableau &#187;.] &lt;br class='autobr' /&gt;
Si #GETmon_tableau n'est pas un tableau (array au sens PHP), la balise filtr&#233;e par |find ne retourne rien. &lt;br class='autobr' /&gt;
Voir aussi : le filtre |in_any&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique567.html" rel="directory"&gt;Filtres&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@array" rel="tag"&gt;#ARRAY&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@find" rel="tag"&gt;find&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|find&lt;/code&gt; appliqu&#233; &#224; un tableau v&#233;rifie la pr&#233;sence d'une valeur dans le tableau&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|find&lt;/code&gt; permet de v&#233;rifier la pr&#233;sence d'une valeur dans le tableau auquel il est appliqu&#233; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#GET{mon_tableau}|find{la_valeur}|oui) Ceci s'affiche si la valeur &#171;la_valeur&#187; est bien pr&#233;sente dans le tableau &#171;mon_tableau&#187;.] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#GET{mon_tableau}&lt;/code&gt; n'est pas un tableau (array au sens PHP), la balise filtr&#233;e par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|find&lt;/code&gt; ne retourne rien.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voir aussi :&lt;/strong&gt; le filtre &lt;strong&gt;&lt;a href='https://www.spip.net/fr_article6392.html' class=&#034;spip_in&#034;&gt;|in_any&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>|table_valeur</title>
		<link>https://www.spip.net/fr_article4572.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4572.html</guid>
		<dc:date>2009-12-23T11:18:24Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie</dc:creator>


		<dc:subject>#ARRAY</dc:subject>
		<dc:subject>SPIP 1.9</dc:subject>
		<dc:subject>table_valeur</dc:subject>

		<description>
&lt;p&gt;Le filtre |table_valeurcl&#233;,valeur par d&#233;faut retourne la valeur associ&#233;e &#224; une cl&#233; dans un tableau. &lt;br class='autobr' /&gt; Utilisation &lt;br class='autobr' /&gt;
|table_valeurcl&#233;,valeur par d&#233;faut &lt;br class='autobr' /&gt;
Le filtre |table_valeur s'applique &#224; une balise contenant un tableau, prend une cl&#233; du tableau comme param&#232;tre et retourne la valeur associ&#233;e &#224; cette cl&#233;. &lt;br class='autobr' /&gt;
Voir la balise #ARRAY pour une explication plus g&#233;n&#233;rale sur les tableaux. &lt;br class='autobr' /&gt;
Exemple spip #SETun_tableau,#ARRAY0,rouge,1,bleu,2,vert [(#GETun_tableau|table_valeur2)] &lt;br class='autobr' /&gt;
&#8230;retourne vert. (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique567.html" rel="directory"&gt;Filtres&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@array" rel="tag"&gt;#ARRAY&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@spip19" rel="tag"&gt;SPIP 1.9&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@table_valeur" rel="tag"&gt;table_valeur&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|table_valeur{cl&#233;,valeur par d&#233;faut}&lt;/code&gt; retourne la valeur associ&#233;e &#224; une cl&#233; dans un tableau.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-3&#034; id=&#034;nav6a10dbbea1f5e6.43752854&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Utilisation&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Utilisation&#034; class=&#034;spip_ancre&#034;&gt;Utilisation&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Avec-des-tableaux-linearises&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Avec-des-tableaux-linearises&#034; class=&#034;spip_ancre&#034;&gt;Avec des tableaux &#034;lin&#233;aris&#233;s&#034;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Voir-aussi&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Voir-aussi&#034; class=&#034;spip_ancre&#034;&gt;Voir aussi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Utilisation&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Utilisation'&gt;Utilisation&lt;a class='sommaire-back sommaire-back-3' href='#s-Utilisation' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|table_valeur{cl&#233;,valeur par d&#233;faut}&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|table_valeur&lt;/code&gt; s'applique &#224; une balise contenant un tableau, prend une cl&#233; du tableau comme param&#232;tre et retourne la valeur associ&#233;e &#224; cette cl&#233;.&lt;/p&gt;
&lt;p&gt;Voir la balise &lt;a href='https://www.spip.net/fr_article4009.html' class=&#034;spip_in&#034;&gt;#ARRAY&lt;/a&gt; pour une explication plus g&#233;n&#233;rale sur les tableaux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{un_tableau,#ARRAY{0,rouge,1,bleu,2,vert}} [(#GET{un_tableau}|table_valeur{2})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&#8230;retourne &lt;i&gt;vert&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Le param&#232;tre optionnel &lt;i&gt;valeur par d&#233;faut&lt;/i&gt; permet de pr&#233;ciser une valeur &#224; retourner si la valeur n'est pas trouv&#233;e (la cl&#233; n'existe pas ou la balise filtr&#233;e n'est pas un tableau).&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{un_tableau}|table_valeur{3,noir})]&lt;/code&gt; retourne &lt;i&gt;noir&lt;/i&gt; parce qu'il n'y a pas de cl&#233; &lt;i&gt;3&lt;/i&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Avec-des-tableaux-linearises&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Avec-des-tableaux-linearises'&gt;Avec des tableaux &#034;lin&#233;aris&#233;s&#034;&lt;a class='sommaire-back sommaire-back-3' href='#s-Avec-des-tableaux-linearises' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|table_valeur&lt;/code&gt; fonctionne aussi avec des tableaux &#034;lin&#233;aris&#233;s&#034;, par exemple, les tableaux retourn&#233;s par les balises &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#CONFIG&lt;/code&gt; (mais ces balises disposent de leur propre syntaxe pour acc&#233;der aux valeurs du tableau).&lt;/p&gt;
&lt;p&gt;Le tableau ci-dessus lin&#233;aris&#233; donne ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;a:3:{i:0;s:5:&#034;rouge&#034;;i:1;s:4:&#034;bleu&#034;;i:2;s:4:&#034;vert&#034;;} &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{un_tableau}|table_valeur{2})]&lt;/code&gt; retourne toujours &lt;i&gt;vert&lt;/i&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Voir-aussi&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Voir-aussi'&gt;Voir aussi&lt;a class='sommaire-back sommaire-back-3' href='#s-Voir-aussi' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; les &lt;a href=&#034;http://fr.php.net/manual/fr/language.oop5.serialization.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;fonctions serialize et unserialize en PHP&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>|push</title>
		<link>https://www.spip.net/fr_article4571.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4571.html</guid>
		<dc:date>2009-12-23T11:17:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie</dc:creator>


		<dc:subject>#ARRAY</dc:subject>
		<dc:subject>SPIP 2.0</dc:subject>
		<dc:subject>push</dc:subject>

		<description>
&lt;p&gt;|push permet d'ajouter une valeur &#224; la fin d'un tableau. &lt;br class='autobr' /&gt; Le filtre |push s'applique &#224; une balise contenant un tableau PHP (voir #ARRAY) et y ajoute une nouvelle valeur. &lt;br class='autobr' /&gt;
La cl&#233; est incr&#233;ment&#233;e de 1 &#224; chaque nouvelle valeur. Si aucune cl&#233; n'a &#233;t&#233; d&#233;finie pour la premi&#232;re valeur, le tableau est index&#233; &#224; partir de 0 (la premi&#232;re cl&#233; est 0). spip #SETun_tableau,#ARRAY5,une_valeur
&lt;br class='autobr' /&gt;
#SETun_tableau,#GETun_tableau|pushune_autre_valeur
&lt;br class='autobr' /&gt;
#SETun_tableau,#GETun_tableau|pushune_troisieme_valeur (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique567.html" rel="directory"&gt;Filtres&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@array" rel="tag"&gt;#ARRAY&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@spip20" rel="tag"&gt;SPIP 2.0&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@push" rel="tag"&gt;push&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|push&lt;/code&gt; permet d'ajouter une valeur &#224; la fin d'un tableau.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|push&lt;/code&gt; s'applique &#224; une balise contenant un &lt;i&gt;tableau PHP&lt;/i&gt; (voir &lt;a href='https://www.spip.net/fr_article4009.html' class=&#034;spip_in&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ARRAY&lt;/code&gt;&lt;/a&gt;) et y ajoute une nouvelle valeur.&lt;/p&gt;
&lt;p&gt;La cl&#233; est incr&#233;ment&#233;e de 1 &#224; chaque nouvelle valeur. Si aucune cl&#233; n'a &#233;t&#233; d&#233;finie pour la premi&#232;re valeur, le tableau est index&#233; &#224; partir de 0 (la premi&#232;re cl&#233; est 0).&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{un_tableau,#ARRAY{5,une_valeur}} #SET{un_tableau,#GET{un_tableau}|push{une_autre_valeur}} #SET{un_tableau,#GET{un_tableau}|push{une_troisieme_valeur}} &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{un_tableau}|foreach)]&lt;/code&gt; affiche :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 5=&gt; une_valeur&lt;/li&gt;&lt;li&gt; 6=&gt; une_autre_valeur&lt;/li&gt;&lt;li&gt; 7=&gt; une_troisieme_valeur&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;La premi&#232;re cl&#233; est 5 parce qu'elle a &#233;t&#233; pr&#233;cis&#233;e lors de la cr&#233;ation du tableau (premier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SET&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Exemple courant d'usage de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|push&lt;/code&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{mes_articles, #ARRAY} &lt;BOUCLE_mes_articles(ARTICLES){...}&gt; #SET{mes_articles, #GET{mes_articles}|push{#ID_ARTICLE}} &lt;/BOUCLE_mes_articles&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si les articles s&#233;lectionn&#233;s par la BOUCLE portent les num&#233;ros 2, 5 et 10, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{mes_articles}|foreach)]&lt;/code&gt; retourne :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 0=&gt;2&lt;/li&gt;&lt;li&gt; 1=&gt;5&lt;/li&gt;&lt;li&gt; 2=&gt;10&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ici, la premi&#232;re cl&#233; est z&#233;ro car aucune cl&#233; n'a &#233;t&#233; d&#233;finie pr&#233;alablement.&lt;/p&gt;
&lt;p&gt;Contrairement &#224; la &lt;a href=&#034;http://fr.php.net/manual/fr/function.array-push.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;fonction PHP &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;array_push&lt;/code&gt;&lt;/a&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|push&lt;/code&gt; ne produit pas de message d'erreur si la balise filtr&#233;e n'est pas un tableau.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>|parametre_url</title>
		<link>https://www.spip.net/fr_article4255.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4255.html</guid>
		<dc:date>2009-10-10T05:24:25Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie, denisb</dc:creator>


		<dc:subject>parametre_url</dc:subject>

		<description>
&lt;p&gt;Le filtre |parametre_url ajoute ou retire un param&#232;tre &#224; une balise d'URL. &lt;br class='autobr' /&gt; Utilisation Ce filtre s'applique donc &#224; une balise d'URL, par exemple #SELF, #URL_ARTICLE, #URL_PAGEsommaire... &lt;br class='autobr' /&gt;
Typiquement, on placera la balise dans l'attribut href d'un lien : spip France &lt;br class='autobr' /&gt;
ajoutera &#224; l'url de la page en cours soit : ?pays=france s'il s'agit du premier param&#232;tre pass&#233; &#224; cette url, &amp;amp ;pays=france si l'url poss&#232;de d&#233;j&#224; au moins un param&#232;tre. &lt;br class='autobr' /&gt;
Passer plusieurs param&#232;tres &#224; l'URL &lt;br class='autobr' /&gt;
On peut (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique567.html" rel="directory"&gt;Filtres&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@parametre_url" rel="tag"&gt;parametre_url&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|parametre_url&lt;/code&gt; ajoute ou retire un param&#232;tre &#224; une balise d'URL.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-7&#034; id=&#034;nav6a10dbbea5d712.79008767&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Utilisation&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Utilisation&#034; class=&#034;spip_ancre&#034;&gt;Utilisation&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Passer-plusieurs-parametres-a-l-URL&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Passer-plusieurs-parametres-a-l-URL&#034; class=&#034;spip_ancre&#034;&gt;Passer plusieurs param&#232;tres &#224; l'URL&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Passer-un-tableau-de-valeurs&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Passer-un-tableau-de-valeurs&#034; class=&#034;spip_ancre&#034;&gt;Passer un tableau de valeurs&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Supprimer-des-parametres-existants&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Supprimer-des-parametres-existants&#034; class=&#034;spip_ancre&#034;&gt;Supprimer des param&#232;tres existants&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Recuperer-un-parametre-passe-dans-une-URL&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Recuperer-un-parametre-passe-dans-une-URL&#034; class=&#034;spip_ancre&#034;&gt;R&#233;cup&#233;rer un param&#232;tre pass&#233; dans une URL&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Forcer-le-separateur&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Forcer-le-separateur&#034; class=&#034;spip_ancre&#034;&gt;Forcer le s&#233;parateur&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Voir-aussi&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Voir-aussi&#034; class=&#034;spip_ancre&#034;&gt;Voir aussi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Utilisation&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Utilisation'&gt;Utilisation&lt;a class='sommaire-back sommaire-back-7' href='#s-Utilisation' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ce filtre s'applique donc &#224; une balise d'URL, par exemple &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SELF&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_ARTICLE&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_PAGE{sommaire}&lt;/code&gt;...&lt;/p&gt;
&lt;p&gt;Typiquement, on placera la balise dans l'attribut href d'un lien :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;[(#SELF|parametre_url{pays,france})]&#034;&gt;France&lt;/a&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ajoutera &#224; l'url de la page en cours soit :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;?pays=france&lt;/code&gt; s'il s'agit du premier param&#232;tre pass&#233; &#224; cette url,&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&amp;pays=france&lt;/code&gt; si l'url poss&#232;de d&#233;j&#224; au moins un param&#232;tre.&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Passer-plusieurs-parametres-a-l-URL&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Passer-plusieurs-parametres-a-l-URL'&gt;Passer plusieurs param&#232;tres &#224; l'URL&lt;a class='sommaire-back sommaire-back-7' href='#s-Passer-plusieurs-parametres-a-l-URL' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On peut encha&#238;ner les filtres pour passer en url une suite de param&#232;tres et leurs valeurs :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; [(#SELF|parametre_url{pays,france}|parametre_url{monnaie,euro})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Si l'on d&#233;sire passer &lt;i&gt;une m&#234;me valeur &#224; plusieurs param&#232;tres&lt;/i&gt;, on utilisera l'&#233;criture :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#SELF|parametre_url{pays|lieu|terrain,france})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;qui retournera l'url de la page en cours argument&#233;e de :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pays=france&amp;lieu=france&amp;terrain=france&lt;/code&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Passer-un-tableau-de-valeurs&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Passer-un-tableau-de-valeurs'&gt;Passer un tableau de valeurs&lt;a class='sommaire-back sommaire-back-7' href='#s-Passer-un-tableau-de-valeurs' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Si l'on d&#233;sire passer plusieurs valeurs pour un m&#234;me argument, il est possible de passer le tableau de ces valeurs, avec les balises &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ARRAY&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LISTE&lt;/code&gt;.&lt;br class='autobr' /&gt;
Exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#SELF|parametre_url{ville,#LISTE{Toulouse,Valence,Montpellier,Paris}})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Supprimer-des-parametres-existants&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Supprimer-des-parametres-existants'&gt;Supprimer des param&#232;tres existants&lt;a class='sommaire-back sommaire-back-7' href='#s-Supprimer-des-parametres-existants' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pour faire dispara&#238;tre un param&#232;tre d'url existant, il faut le vider de sa valeur en le d&#233;clarant &#224; nouveau, mais explicitement vide :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#SELF|parametre_url{pays,''})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;On peut supprimer plusieurs param&#232;tres &#224; la fois avec l'&#233;criture :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#SELF|parametre_url{pays|lieu|terrain,''})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Recuperer-un-parametre-passe-dans-une-URL&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Recuperer-un-parametre-passe-dans-une-URL'&gt;R&#233;cup&#233;rer un param&#232;tre pass&#233; dans une URL&lt;a class='sommaire-back sommaire-back-7' href='#s-Recuperer-un-parametre-passe-dans-une-URL' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On utilisera &lt;a href='https://www.spip.net/fr_article4014.html' class=&#034;spip_in&#034;&gt;la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ainsi, dans l'exemple&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;[(#SELF|parametre_url{pays,france})]&#034;&gt;France&lt;/a&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{pays}&lt;/code&gt; retournera &lt;i&gt;france&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Autre exemple, le plugin &#034;Calendrier_mini&#034; r&#233;cup&#232;re des informations dans le contexte d'affichage du mini calendrier comme suit&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir le code complet sur la zone : http://zone.spip.org/trac/spip-zone....&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;... #ENV{urljson}|parametre_url{id_rubrique} ...&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Explication : la variable &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{urljson}&lt;/code&gt; contient une url et le code ci-dessus retourne la valeur de id_rubrique si ce param&#232;tre est pr&#233;sent dans l'url en question.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Forcer-le-separateur&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Forcer-le-separateur'&gt;Forcer le s&#233;parateur&lt;a class='sommaire-back sommaire-back-7' href='#s-Forcer-le-separateur' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Par d&#233;faut, les URLs sont encod&#233;s avec le s&#233;parateur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&amp;amp;&lt;/code&gt; mais il est possible de forcer le s&#233;parateur en indiquant un 3&#232;me argument &lt;br class='autobr' /&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|parametre_url{&lt;/code&gt;&lt;/strong&gt;&lt;span style=&#034;color:#0a8e11;font-style:italic;&#034;&gt;nom de variable, valeur, separateur&lt;/span&gt;&lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;}&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ainsi&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#URL_PAGE{bloc}|parametre_url{id_bloc, 5})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;retournera &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip.php?page=bloc&amp;amp;id_bloc=5&lt;/code&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#URL_PAGE{bloc}|parametre_url{id_bloc, 5, &amp;}] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;retournera &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip.php?page=bloc&amp;id_bloc=5&lt;/code&gt;&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Voir-aussi&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Voir-aussi'&gt;Voir aussi&lt;a class='sommaire-back sommaire-back-7' href='#s-Voir-aussi' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.spip.net/fr_article4574.html' class=&#034;spip_in&#034;&gt;#SELF&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.spip.net/fr_article4771.html' class=&#034;spip_in&#034;&gt;|ancre_url&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Voir le code complet sur la zone : &lt;a href=&#034;http://zone.spip.org/trac/spip-zone/browser/_plugins_/calendrier_mini/trunk/formulaires/calendrier_mini.html?rev=60511&amp;order=name&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://zone.spip.org/trac/spip-zone...&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#ARRAY</title>
		<link>https://www.spip.net/fr_article4009.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4009.html</guid>
		<dc:date>2009-06-16T06:52:27Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie, BoOz, denisb</dc:creator>


		<dc:subject>#ARRAY</dc:subject>
		<dc:subject>table_valeur</dc:subject>
		<dc:subject>push</dc:subject>
		<dc:subject>find</dc:subject>
		<dc:subject>foreach</dc:subject>

		<description>
&lt;p&gt;La balise #ARRAY peut contenir un tableau PHP, c'est-&#224;-dire un ensemble de paires cl&#233;/valeur, que l'on veut stocker pour les r&#233;utiliser dans la suite du squelette. &lt;br class='autobr' /&gt;
Le tableau doit &#234;tre d&#233;clar&#233; par la balise #SET et peut ensuite &#234;tre r&#233;cup&#233;r&#233; par la balise #GET [1]. &lt;br class='autobr' /&gt;
Il peut &#234;tre utilis&#233; ensuite, entre autres, associ&#233; au crit&#232;re IN d'une boucle. D&#233;clarer un tableau et r&#233;cup&#233;rer des valeurs &lt;br class='autobr' /&gt;
- #SETmon_tableau, #ARRAYcle1,valeur1,cle2,valeur2 cr&#233;e la variable mon_tableau et lui affecte un (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique543.html" rel="directory"&gt;Balises&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@array" rel="tag"&gt;#ARRAY&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@table_valeur" rel="tag"&gt;table_valeur&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@push" rel="tag"&gt;push&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@find" rel="tag"&gt;find&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@foreach" rel="tag"&gt;foreach&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ARRAY&lt;/code&gt; peut contenir un &lt;i&gt;tableau PHP&lt;/i&gt;, c'est-&#224;-dire un ensemble de paires cl&#233;/valeur, que l'on veut stocker pour les r&#233;utiliser dans la suite du squelette.&lt;/p&gt;
&lt;p&gt;Le tableau doit &#234;tre d&#233;clar&#233; par la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SET&lt;/code&gt; et peut ensuite &#234;tre r&#233;cup&#233;r&#233; par la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#GET&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir #SET et #GET pour plus de d&#233;tails.&#034; id=&#034;nh4-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Il peut &#234;tre utilis&#233; ensuite, entre autres, associ&#233; au crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;IN&lt;/code&gt; d'une boucle.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-7&#034; id=&#034;nav6a10dbbeab3806.42916213&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Declarer-un-tableau-et-recuperer-des-valeurs&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Declarer-un-tableau-et-recuperer-des-valeurs&#034; class=&#034;spip_ancre&#034;&gt;D&#233;clarer un tableau et r&#233;cup&#233;rer des valeurs&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Remplir-un-tableau-dynamiquement&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Remplir-un-tableau-dynamiquement&#034; class=&#034;spip_ancre&#034;&gt;Remplir un tableau dynamiquement&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Utiliser-le-tableau-dans-une-boucle-avec-l-operateur-IN&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Utiliser-le-tableau-dans-une-boucle-avec-l-operateur-IN&#034; class=&#034;spip_ancre&#034;&gt;Utiliser le tableau dans une boucle avec l'op&#233;rateur &lt;i&gt;IN&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Exemples-d-utilisation-des-tableaux&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Exemples-d-utilisation-des-tableaux&#034; class=&#034;spip_ancre&#034;&gt;Exemples d'utilisation des tableaux&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Boucler-sur-n-importe-quel-tableau&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Boucler-sur-n-importe-quel-tableau&#034; class=&#034;spip_ancre&#034;&gt;Boucler sur n'importe quel tableau&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Tester-si-un-tableau-est-vide&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Tester-si-un-tableau-est-vide&#034; class=&#034;spip_ancre&#034;&gt;Tester si un tableau est vide&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Voir-aussi&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Voir-aussi&#034; class=&#034;spip_ancre&#034;&gt;Voir aussi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Declarer-un-tableau-et-recuperer-des-valeurs&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Declarer-un-tableau-et-recuperer-des-valeurs'&gt;D&#233;clarer un tableau et r&#233;cup&#233;rer des valeurs&lt;a class='sommaire-back sommaire-back-7' href='#s-Declarer-un-tableau-et-recuperer-des-valeurs' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;- &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SET{mon_tableau, #ARRAY{cle1,valeur1,cle2,valeur2}}&lt;/code&gt;&lt;/strong&gt;&lt;br class='manualbr' /&gt;cr&#233;e la variable &lt;i&gt;mon_tableau&lt;/i&gt; et lui affecte un &lt;a href=&#034;http://fr.php.net/manual/fr/language.types.array.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;tableau PHP&lt;/a&gt; comme valeur, qui pourrait &#234;tre repr&#233;sent&#233; comme suit :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id4614_c0'&gt;Cl&#233;s&lt;/th&gt;&lt;th id='id4614_c1'&gt;Valeurs&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id4614_c0'&gt;cle1&lt;/td&gt;
&lt;td headers='id4614_c1'&gt;valeur1&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id4614_c0'&gt;cle2&lt;/td&gt;
&lt;td headers='id4614_c1'&gt;valeur2&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Il n'est pas n&#233;cessaire d'entourer les chaines de caract&#232;res avec des guillemets simple ou double, sauf pour sp&#233;cifier une chaine vide qui s'&#233;crira ''&lt;/p&gt;
&lt;p&gt;- &#192; des fins de test, on peut afficher le tableau gr&#226;ce au &lt;strong&gt;&lt;a href='https://www.spip.net/fr_article4248.html' class=&#034;spip_in&#034;&gt;filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|foreach&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; (&lt;a href='https://www.spip.net/fr_article6428.html#Depreciations' class=&#034;spip_in&#034;&gt;d&#233;pr&#233;ci&#233; depuis SPIP 4&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;- La valeur associ&#233;e &#224; une cl&#233; donn&#233;e peut &#234;tre r&#233;cup&#233;r&#233;e en utilisant le &lt;strong&gt;filtre &lt;a href='https://www.spip.net/fr_article4572.html' class=&#034;spip_in&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|table_valeur&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{mon_tableau}|table_valeur{cle1})]&lt;/code&gt; retourne &lt;i&gt;valeur1&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Depuis SPIP 3.0, on peut simplifier sous la forme suivante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{mon_tableau/cle1})]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;- V&#233;rifier la pr&#233;sence d'une valeur dans le tableau avec le &lt;strong&gt;&lt;a href='https://www.spip.net/fr_article4575.html' class=&#034;spip_in&#034;&gt;filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|find&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;correspond &#224; la fonction PHP , &#224; la diff&#233;rence que ce filtre ne produit pas (&#8230;)&#034; id=&#034;nh4-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#GET{mon_tableau}|find{valeur2}|oui) Ceci s'affiche si la valeur est dans le tableau. ] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Remplir-un-tableau-dynamiquement&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Remplir-un-tableau-dynamiquement'&gt;Remplir un tableau dynamiquement&lt;a class='sommaire-back sommaire-back-7' href='#s-Remplir-un-tableau-dynamiquement' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un int&#233;r&#234;t des tableaux est de les remplir dynamiquement, par les r&#233;sultats d'une ou plusieurs boucle(s).&lt;/p&gt;
&lt;p&gt;Le tableau doit alors &#234;tre d&#233;clar&#233; par un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SET&lt;/code&gt; &lt;strong&gt;avant la boucle&lt;/strong&gt; : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SET{mon_tableau,#ARRAY}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dans la boucle&lt;/strong&gt;, un nouveau &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SET&lt;/code&gt; red&#233;finit &lt;i&gt;mon_tableau&lt;/i&gt; &#224; chaque it&#233;ration : on le r&#233;cup&#232;re par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#GET&lt;/code&gt; et on y ajoute une nouvelle valeur gr&#226;ce aux filtres &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|push&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|array_merge&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{mon_tableau,#ARRAY} &lt;BOUCLE(...)&gt; #SET{mon_tableau, #GET{mon_tableau}|push{#COMPTEUR_BOUCLE}} &lt;/BOUCLE&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;L'ordre des valeurs du tableau d&#233;pend des crit&#232;res de tri de la boucle.&lt;/p&gt;
&lt;p&gt;- &lt;a href='https://www.spip.net/fr_article4571.html' class=&#034;spip_in&#034;&gt;&lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|push&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; ajoute simplement une valeur &#224; la fin du tableau. La cl&#233; est index&#233;e automatiquement : elle est incr&#233;ment&#233;e de 1 &#224; chaque it&#233;ration de la boucle et ce, &#224; partir de 0 (la premi&#232;re cl&#233; est 0, puis 1, 2, 3,...).&lt;/p&gt;
&lt;p&gt;Exemple : cr&#233;er un tableau &lt;i&gt;mots_choisis&lt;/i&gt; contenant les &lt;i&gt;#ID_MOT&lt;/i&gt; de tous les mots-cl&#233;s li&#233;s &#224; un article.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{mots_choisis, #ARRAY} &lt;BOUCLE_themes(MOTS){id_article}&gt; #SET{mots_choisis, #GET{mots_choisis}|push{#ID_MOT}} &lt;/BOUCLE_themes&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si les mots li&#233;s &#224; cet article portent les num&#233;ros 4, 9 et 18, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{mots_choisis}|foreach)]&lt;/code&gt; retourne :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 0=&gt;4&lt;/li&gt;&lt;li&gt; 1=&gt;9&lt;/li&gt;&lt;li&gt; 2=&gt;18&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Notez bien que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{mots_choisis}|table_valeur{2})]&lt;/code&gt; retourne &lt;i&gt;18&lt;/i&gt;, la valeur associ&#233;e &#224; la cl&#233; &lt;i&gt;2&lt;/i&gt;, donc la &lt;i&gt;troisi&#232;me&lt;/i&gt; valeur du tableau.&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;&lt;a href=&#034;http://fr.php.net/manual/fr/function.array-merge.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|array_merge&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; ajoute une paire cl&#233;/valeur &#224; la fin du tableau. Cela permet donc de forcer le &#034;nom&#034; des cl&#233;s.&lt;/p&gt;
&lt;p&gt;Attention (1) : si une cl&#233; appara&#238;t plusieurs fois, seule la derni&#232;re valeur pour cette cl&#233; sera retenue.&lt;/p&gt;
&lt;p&gt;Attention (2) : la cl&#233; que l'on veut forcer ne peut pas &#234;tre de type num&#233;rique. En effet, la &lt;a href=&#034;http://fr.php.net/manual/fr/function.array-merge.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;documentation de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;array_merge&lt;/code&gt;&lt;/a&gt; pr&#233;cise :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Si vous passez un seul tableau &#224; cette fonction et qu'il a des index num&#233;riques, les cl&#233;s seront r&#233;index&#233;es normalement.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il existe deux solutions &#224; cette limitation :&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;pr&#233;fixer&lt;/strong&gt; cette cl&#233; avec une valeur alphab&#233;tique :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{mots_choisis, #ARRAY} &lt;BOUCLE_themes(MOTS) {id_article}&gt; [(#SET{mots_choisis,#GET{mots_choisis}|array_merge{#ARRAY{mot#ID_MOT,#TITRE}}})] &lt;/BOUCLE_themes&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{mots_choisis}|foreach)]&lt;/code&gt; retourne :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; mot4=&gt;Pomme&lt;/li&gt;&lt;li&gt; mot9=&gt;Banane&lt;/li&gt;&lt;li&gt; mot18=&gt;Carotte&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;- &lt;strong&gt;inverser&lt;/strong&gt; cl&#233; et valeur, &#224; condition que &lt;i&gt;valeur&lt;/i&gt; ne soit pas elle aussi num&#233;rique :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{mots_choisis, #ARRAY} &lt;BOUCLE_themes(MOTS) {id_article}&gt; [(#SET{mots_choisis,#GET{mots_choisis}|array_merge{#ARRAY{#TITRE,#ID_MOT}}})] &lt;/BOUCLE_themes&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{mots_choisis}|foreach)]&lt;/code&gt; retourne :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Pomme=&gt;4&lt;/li&gt;&lt;li&gt; Banane=&gt;9&lt;/li&gt;&lt;li&gt; Carotte=&gt;18&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Dans ce cas, on pourra appliquer la &lt;a href=&#034;http://fr.php.net/manual/fr/function.array-flip.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;fonction PHP &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|array_flip&lt;/code&gt;&lt;/a&gt; comme filtre sur le tableau final (apr&#232;s la boucle) :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#SET{mots_choisis, #GET{mots_choisis}|array_flip})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#GET{mots_choisis}|foreach)]&lt;/code&gt; retourne alors :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 4=&gt;Pomme&lt;/li&gt;&lt;li&gt; 9=&gt;Banane&lt;/li&gt;&lt;li&gt; 18=&gt;Carotte&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Dans certains cas, on pourra utiliser la balise &lt;a href='https://www.spip.net/fr_article5547.html' class=&#034;spip_in&#034;&gt;#LISTE&lt;/a&gt; qui permet de saisir des tableaux sous forme simplifi&#233;e&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Utiliser-le-tableau-dans-une-boucle-avec-l-operateur-IN&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Utiliser-le-tableau-dans-une-boucle-avec-l-operateur-IN'&gt;Utiliser le tableau dans une boucle avec l'op&#233;rateur &lt;i&gt;IN&lt;/i&gt; &lt;a class='sommaire-back sommaire-back-7' href='#s-Utiliser-le-tableau-dans-une-boucle-avec-l-operateur-IN' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Reprenons le tableau &lt;i&gt;mots_choisis&lt;/i&gt; contenant des #ID_MOT, on peut s&#233;lectionner ensuite les articles li&#233;s aux m&#234;mes mots-cl&#233;s que notre article initial gr&#226;ce au &lt;strong&gt;&lt;a href='https://www.spip.net/fr_article4010.html' class=&#034;spip_in&#034;&gt;crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;IN&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{mots_choisis, #ARRAY} &lt;BOUCLE_themes(MOTS){id_article}&gt; #SET{mots_choisis, #GET{mots_choisis}|push{#ID_MOT}} &lt;/BOUCLE_themes&gt; &lt;BOUCLE_memes_themes(ARTICLES) {id_mot IN #GET{mots_choisis}}&gt; #TITRE &lt;br&gt; &lt;/BOUCLE_memes_themes&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cette utilisation conna&#238;t de multiples usages, notamment lorsque l'on veut s&#233;lectionner des objets &#224; l'aide de plusieurs crit&#232;res qui ne peuvent faire partie de la m&#234;me boucle, puis les m&#233;langer entre eux avec un crit&#232;re de tri unique.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Exemples-d-utilisation-des-tableaux&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Exemples-d-utilisation-des-tableaux'&gt;Exemples d'utilisation des tableaux&lt;a class='sommaire-back sommaire-back-7' href='#s-Exemples-d-utilisation-des-tableaux' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;- Affichage conditionnel en fonction de la page (valeur de &lt;a href='https://www.spip.net/fr_article4014.html' class=&#034;spip_in&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{page}&lt;/code&gt;&lt;/a&gt;) :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#ENV{page}|in_array{#ARRAY{0,article,1,rubrique,2,site}}|oui) Affichage conditionnel: la page est celle d'un article, d'une rubrique ou d'un site. ] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;- Affichage conditionnel en fonction d'une variable pass&#233;e dans l'URL&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir et |parametre_url.&#034; id=&#034;nh4-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_tous_les_mots(MOTS){par titre}{&#034;, &#034;}&gt; &lt;a href=&#034;[(#SELF|parametre_url{lolo,#ID_MOT})]&#034;&gt;#TITRE&lt;/a&gt; &lt;/BOUCLE_tous_les_mots&gt; #SET{les_mots, #ARRAY} &lt;BOUCLE_certains_mots(MOTS){id_article}&gt; #SET{les_mots, #GET{les_mots}|push{#ID_MOT}} &lt;/BOUCLE_certains_mots&gt; [&lt;br&gt;Ceci s'affichera si la valeur de la variable 'lolo' pass&#233;e dans l'url est pr&#233;sente dans un tableau 'les_mots' d&#233;clar&#233; et rempli pr&#233;c&#233;demment. (#ENV{lolo}|in_any{#GET{les_mots}}|oui)] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;- S&#233;lectionner les articles d'une rubrique et ceux associ&#233;s par ailleurs &#224; un mot-cl&#233; puis lister tous ces articles par date.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#SET{les_articles,#ARRAY} &lt;BOUCLE_articles_rubrique(ARTICLES){id_rubrique}&gt; #SET{les_articles,#GET{les_articles}|push{#ID_ARTICLE}} &lt;/BOUCLE_articles_rubrique&gt; &lt;BOUCLE_articles_mot(ARTICLES){id_mot}&gt; #SET{les_articles,#GET{les_articles}|push{#ID_ARTICLE}} &lt;/BOUCLE_articles_mot&gt; &lt;BOUCLE_affiche(ARTICLES){id_article IN #GET{les_articles}}{par date}&gt; &lt;br&gt;#TITRE &lt;/BOUCLE_affiche&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Boucler-sur-n-importe-quel-tableau&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Boucler-sur-n-importe-quel-tableau'&gt;Boucler sur n'importe quel tableau&lt;a class='sommaire-back sommaire-back-7' href='#s-Boucler-sur-n-importe-quel-tableau' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On pourra utiliser la boucle DATA pour &lt;a href='https://www.spip.net/fr_article5443.html#tableau' class=&#034;spip_in&#034;&gt;boucler arbitrairement sur un tableau&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Tester-si-un-tableau-est-vide&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Tester-si-un-tableau-est-vide'&gt;Tester si un tableau est vide&lt;a class='sommaire-back sommaire-back-7' href='#s-Tester-si-un-tableau-est-vide' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1er cas&lt;/strong&gt;&lt;br class='manualbr' /&gt;Si &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#GET{mon_tableau}&lt;/code&gt; est un tableau vide&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;/* je d&#233;clare un tableau vide */ [(#SET{mon_tableau, #ARRAY})] /* alors le test suivant est suffisant : */ [(#GET{mon_tableau}|non) &#8230; ] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;2e cas&lt;/strong&gt;&lt;br class='manualbr' /&gt;Dans le cas d'entr&#233;es vides dans le tableau tel que :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#SET{mon_tableau, #ARRAY{0,'',1,0}})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&#8230;on pourra utiliser la fonction PHP &lt;a href=&#034;http://php.net/manual/fr/function.array-filter.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_filter()&lt;/a&gt; qui enl&#232;vera du tableau toute valeur &#233;quivalente &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;false&lt;/code&gt; du tableau.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#GET{mon_tableau}|array_filter|non) ... ] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Voir-aussi&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Voir-aussi'&gt;Voir aussi &lt;a class='sommaire-back sommaire-back-7' href='#s-Voir-aussi' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.spip.net/fr_article5547.html' class=&#034;spip_in&#034;&gt;#LISTE&lt;/a&gt; : balise pratique pour d&#233;clarer de simples tableaux index&#233;s&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.spip.net/fr_article6434.html' class=&#034;spip_in&#034;&gt;La boucle DATA&lt;/a&gt; : pour utiliser des tableaux complexes&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb4-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 4-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Voir &lt;a href='https://www.spip.net/fr_article3990.html' class=&#034;spip_in&#034;&gt;#SET et #GET&lt;/a&gt; pour plus de d&#233;tails.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb4-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 4-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|find&lt;/code&gt; correspond &#224; la &lt;a href=&#034;http://fr.php.net/manual/fr/function.in-array.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;fonction PHP &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;in_array&lt;/code&gt;&lt;/a&gt;, &#224; la diff&#233;rence que ce filtre ne produit pas le message d'erreur &#034;&lt;i&gt;Warning : in_array() [function.in-array] : Wrong datatype for second argument.&lt;/i&gt;&#034; si la variable n'est finalement pas un tableau. En effet, lorsqu'une variable est g&#233;n&#233;r&#233;e dynamiquement, on ne sait pas toujours si elle existera et s'il s'agira bien d'un tableau.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb4-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 4-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Voir &lt;a href='https://www.spip.net/fr_article1902.html' class=&#034;spip_in&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SELF&lt;/code&gt;&lt;/a&gt; et &lt;a href='https://www.spip.net/fr_article4255.html' class=&#034;spip_in&#034;&gt;|parametre_url&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#ENV</title>
		<link>https://www.spip.net/fr_article4014.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4014.html</guid>
		<dc:date>2009-02-14T13:48:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie, cam.lafit, denisb</dc:creator>


		<dc:subject>#ENV</dc:subject>
		<dc:subject>SPIP 1.8</dc:subject>
		<dc:subject>Balises &#233;toil&#233;es</dc:subject>

		<description>
&lt;p&gt;#ENVparametre r&#233;cup&#232;re des variables d'environnement transmises au squelette. Un second argument permet de donner une valeur par d&#233;faut si le param&#232;tre demand&#233; n'est pas pr&#233;sent dans l'environnement ou si son contenu est vide. &lt;br class='autobr' /&gt; Description spip [(#ENVparam&#232;tre, valeur par d&#233;faut)] &lt;br class='autobr' /&gt;
Chercher dans un sous tableau Le nom du param&#232;tre d'environnement peut &#233;galement contenir des barres obliques / indiquant de chercher dans un sous tableau. Cette &#233;criture est &#233;quivalente &#224; l'appel du filtre (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique543.html" rel="directory"&gt;Balises&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@env" rel="tag"&gt;#ENV&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@spip18" rel="tag"&gt;SPIP 1.8&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@multifrbalisesetoileesesbalizasestrelladasentagswithasteriskmulti" rel="tag"&gt;Balises &#233;toil&#233;es&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{parametre}&lt;/code&gt; r&#233;cup&#232;re des variables d'environnement transmises au squelette. Un second argument permet de donner une valeur par d&#233;faut si le param&#232;tre demand&#233; n'est pas pr&#233;sent dans l'environnement ou si son contenu est vide.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-5&#034; id=&#034;nav6a10dbbeaf7f33.53010160&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Description&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Description&#034; class=&#034;spip_ancre&#034;&gt;Description&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Exemples&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Exemples&#034; class=&#034;spip_ancre&#034;&gt;Exemples&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Exemples-avances&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Exemples-avances&#034; class=&#034;spip_ancre&#034;&gt;Exemples avanc&#233;s&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Court-circuiter-les-traitements-de-securite&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Court-circuiter-les-traitements-de-securite&#034; class=&#034;spip_ancre&#034;&gt;Court-circuiter les traitements de s&#233;curit&#233;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Voir-aussi&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Voir-aussi&#034; class=&#034;spip_ancre&#034;&gt;Voir aussi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Description&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Description'&gt;Description&lt;a class='sommaire-back sommaire-back-5' href='#s-Description' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#ENV{param&#232;tre, valeur par d&#233;faut})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Chercher dans un sous tableau&lt;/strong&gt;&lt;br class='autobr' /&gt;
Le nom du param&#232;tre d'environnement peut &#233;galement contenir des barres obliques / indiquant de chercher dans un sous tableau. Cette &#233;criture est &#233;quivalente &#224; l'appel du filtre &lt;a href='https://www.spip.net/fr_article4572.html' class=&#034;spip_in&#034;&gt;|table_valeur&lt;/a&gt; et est aussi valide sur les balises #GET, #SESSION et #CONFIG.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#ENV{parametre/dans/un/tableau, valeur par d&#233;faut} // &#233;quivalent &#224; : [(#ENV**{parametre}|table_valeur{dans/un/tableau, valeur par d&#233;faut})] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Enfin, la balise #ENV toute seule retourne un tableau s&#233;rialis&#233; de tous les param&#232;tres d'environnement.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Exemples&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Exemples'&gt;Exemples&lt;a class='sommaire-back sommaire-back-5' href='#s-Exemples' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;R&#233;cup&#233;rer un identifiant d'article, sinon la cha&#238;ne &#171; new &#187; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#ENV{id_article,new} &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;R&#233;cup&#233;rer dans une boucle les valeurs de l'id_rubrique et de l'id_mot pass&#233;es dans l'URL &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip.php?rubrique24&amp;id_mot=5&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_art(ARTICLES){id_rubrique=#ENV{id_rubrique}}{id_mot=#ENV{id_mot}}&gt; &#8230; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;R&#233;cup&#233;rer l'id_article pass&#233;e dans un INCLURE :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;INCLURE{fond=mon_squelette, id_article=136}&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dans &lt;i&gt;mon_squelette.html&lt;/i&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{id_article}&lt;/code&gt; vaut &lt;strong&gt;136&lt;/strong&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Exemples-avances&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Exemples-avances'&gt;Exemples avanc&#233;s&lt;a class='sommaire-back sommaire-back-5' href='#s-Exemples-avances' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Avec dans l'URL ?afficher[articles]=oui, tester si on affiche les articles :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#ENV{afficher/articles} // affiche 'oui' &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Afficher tout l'environnement (utile pour d&#233;bugguer) :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[&lt;pre&gt;(#ENV**|unserialize|print_r{1})&lt;/pre&gt;] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Important :&lt;/strong&gt; Pour des questions de s&#233;curit&#233;, il faudra absolument retirer ce code &#224; la fin de d&#233;veloppement de votre site.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Court-circuiter-les-traitements-de-securite&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Court-circuiter-les-traitements-de-securite'&gt;Court-circuiter les traitements de s&#233;curit&#233;&lt;a class='sommaire-back sommaire-back-5' href='#s-Court-circuiter-les-traitements-de-securite' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Par d&#233;faut, SPIP applique les fonctions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;interdire_scripts()&lt;/code&gt; et &lt;a href='https://www.spip.net/fr_article4280.html' class=&#034;spip_in&#034;&gt;|entites_html&lt;/a&gt; &#224; la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV&lt;/code&gt;. Comme pour toute balise, on peut supprimer les traitements automatiques de SPIP avec #ENV* et #ENV** (voir, pour l'usage de * et **, l'article &lt;a href='https://www.spip.net/fr_article4376.html' class=&#034;spip_in&#034;&gt;#BALISE* et #BALISE**&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV*&lt;/code&gt;&lt;/strong&gt; retourne la variable sans appliquer le filtre &lt;a href='https://www.spip.net/fr_article4280.html' class=&#034;spip_in&#034;&gt;|entites_html&lt;/a&gt; , donc sans transformer tous les caract&#232;res sp&#233;ciaux en entit&#233;s HTML.&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV**&lt;/code&gt;&lt;/strong&gt; retourne la variable sans appliquer &#233;galement la fonction interdire_scripts(). Elle renvoie donc le PHP ex&#233;cut&#233;.&lt;br class='autobr' /&gt;
Ceci peut poser un probl&#232;me de s&#233;curit&#233; si cette variable re&#231;oit une injection de code.&lt;/p&gt;
&lt;p&gt;N&#233;anmoins &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV**&lt;/code&gt;&lt;/strong&gt; trouve des applications, par exemple dans l'espace priv&#233; o&#249; la fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;interdire_scripts()&lt;/code&gt; est appliqu&#233;e de fa&#231;on plus restrictive. #ENV** permet alors de lever ces restrictions de fa&#231;on tr&#232;s localis&#233;e. Mais encore une fois, &#224; utiliser en connaissance de cause !&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Voir-aussi&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Voir-aussi'&gt;Voir aussi&lt;a class='sommaire-back sommaire-back-5' href='#s-Voir-aussi' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.spip.net/fr_article1828.html' class=&#034;spip_in&#034;&gt;&lt;INCLURE&gt; d'autres squelettes&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Le filtre &lt;a href='https://www.spip.net/fr_article5840.html' class=&#034;spip_in&#034;&gt;|setenv&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Sur Programmer.spip.net&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://programmer.spip.net/L-environnement-ENV&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;L'environnement #ENV&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://programmer.spip.net/Transmettre-des-parametres&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Transmettre des param&#232;tres&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#PETITION</title>
		<link>https://www.spip.net/fr_article3967.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article3967.html</guid>
		<dc:date>2009-01-07T21:34:05Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lie, cam.lafit</dc:creator>


		<dc:subject>BOUCLE(ARTICLES)</dc:subject>
		<dc:subject>#PETITION</dc:subject>
		<dc:subject>Balises calcul&#233;es</dc:subject>

		<description>
&lt;p&gt;#PETITION affiche le texte de la p&#233;tition si elle existe. &lt;br class='autobr' /&gt;
Si elle existe mais que le texte est vide, retourne un espace (une cha&#238;ne non vide sans incidence dans une page html). Ceci permet de tester l'existence d'une p&#233;tition dans une boucle (ARTICLES). &lt;br class='autobr' /&gt;
Exemple tir&#233; de squelettes-dist
&lt;br class='autobr' /&gt;
Le squelette inclure/petition.html n'est inclus que si la p&#233;tition de l'article est activ&#233;e : &lt;br class='autobr' /&gt;
[(#PETITION|oui)&lt;INCLUREfond=inclure/petition,id_article,env,ajax /&gt;] &lt;br class='autobr' /&gt;
Exemple avanc&#233;
&lt;br class='autobr' /&gt;
On inclut le (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique543.html" rel="directory"&gt;Balises&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@bouclearticles" rel="tag"&gt;BOUCLE(ARTICLES)&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@petition" rel="tag"&gt;#PETITION&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@multifrbalisescalculeesesbalizascalculadasencalculatedtagsmulti" rel="tag"&gt;Balises calcul&#233;es&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a id=&#034;PETITION&#034;&gt;&lt;/a&gt;&lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PETITION&lt;/code&gt;&lt;/strong&gt; affiche le texte de la p&#233;tition si elle existe.&lt;/p&gt;
&lt;p&gt;Si elle existe mais que le texte est vide, retourne un espace (une cha&#238;ne non vide sans incidence dans une page html). Ceci permet de tester l'existence d'une p&#233;tition dans une boucle &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(ARTICLES)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple tir&#233; de squelettes-dist&lt;/strong&gt;&lt;br class='autobr' /&gt;
Le squelette &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;inclure/petition.html&lt;/code&gt; n'est inclus que si la p&#233;tition de l'article est activ&#233;e : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#PETITION|oui)&lt;INCLURE{fond=inclure/petition,id_article,env,ajax} /&gt;]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple avanc&#233;&lt;/strong&gt;&lt;br class='autobr' /&gt;
On inclut le squelette &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;inc-petition.html&lt;/code&gt;, soit s'il y a des signatures, soit s'il y a une p&#233;tition. En effet, lorsque l'on supprime une p&#233;tition via l'espace priv&#233;, afin de clore la possibilit&#233; de la signer, le code pr&#233;c&#233;dent supprime &#233;galement la liste des signatures.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_signatures(SIGNATURES){id_article}{0,1}&gt; &lt;INCLURE{fond=inclure/petition,id_article}&gt; &lt;/BOUCLE_signatures&gt; [(#PETITION|oui) &lt;INCLURE{fond=inclure/petition,id_article}&gt;] &lt;//B_signatures&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
