<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://blog.roxing.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>blog.roxing.net</title>
	<link>http://blog.roxing.net/</link>
	<description>weblog roxing.net - astuces spip, php, bash, linux &amp; more</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://blog.roxing.net/spip.php?id_mot=47&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>blog.roxing.net</title>
		<url>https://blog.roxing.net/local/cache-vignettes/L144xH37/siteon0-6ddb5.png?1727125340</url>
		<link>http://blog.roxing.net/</link>
		<height>37</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>[SPIP] Redirection http</title>
		<link>https://blog.roxing.net/spip-redirection-http</link>
		<guid isPermaLink="true">https://blog.roxing.net/spip-redirection-http</guid>
		<dc:date>2015-09-05T14:37:39Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox</dc:creator>


		<dc:subject>php</dc:subject>
		<dc:subject>spip3</dc:subject>
		<dc:subject>spip</dc:subject>
		<dc:subject>redirection 301</dc:subject>
		<dc:subject>http_header</dc:subject>

		<description>&lt;p&gt;Utilisation du pipeline &lt;i&gt;affichage_entetes_final&lt;/i&gt; sur SPIP pour faire des redirections HTTP 301,404. Dans l'exemple suivant, lorsqu'un utilisateur tente d'afficher la page d'inscription, on le redirige sur sa page personnelle.&lt;/p&gt;

-
&lt;a href="https://blog.roxing.net/billets" rel="directory"&gt;billets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/php" rel="tag"&gt;php&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/spip3" rel="tag"&gt;spip3&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/spip-49" rel="tag"&gt;spip&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/redirection-301" rel="tag"&gt;redirection 301&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/http_header" rel="tag"&gt;http_header&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Au sein d'un plugin&lt;/h2&gt;
&lt;p&gt;Dans le cadre de la cr&#233;ation d'un plugin, apr&#232;s avoir d&#233;clar&#233; le pipeline dans paquet.xml&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='15' class='spip_cadre spip_cadre_block' dir='ltr'&gt;function prefixPlugin_affichage_entetes_final($entetes){
# Rediriger un auteur authentifi&#233; vers sa page perso lorsque il demande &#224; afficher la page inscription if ( isset($GLOBALS['auteur_session']['id_auteur']) AND (_request('page') === &#034;inscription&#034;) ) { $entetes[&#034;status&#034;]= &#034;301 Moved Permanently&#034;; $entetes[&#034;Location&#034;]= generer_url_entite($GLOBALS['auteur_session']['id_auteur'],&#034;auteur&#034;); }
return $entetes;
}&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;Dans le dossier de personnalisation&lt;/h2&gt;
&lt;p&gt;Dans le dossier squelette habituel, il faut ajouter au fichier &lt;strong&gt;mes_fonctions.php&lt;/strong&gt; une fonction que l'on peut nommer par exemple &#034;redirections_persos&#034;.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='16' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# squelettes/mes_fonctions.php
function redirections_persos($entetes){ # Rediriger un auteur authentifi&#233; vers sa page perso lorsque il demande &#224; afficher la page inscription if ( isset($GLOBALS['auteur_session']['id_auteur']) AND (_request('page') === &#034;inscription&#034;) ) { $entetes[&#034;status&#034;]= &#034;301 Moved Permanently&#034;; $entetes[&#034;Location&#034;]= generer_url_entite($GLOBALS['auteur_session']['id_auteur'],&#034;auteur&#034;); }
return $entetes;
}&lt;/textarea&gt;
&lt;p&gt;Puis dans &lt;strong&gt;config/mes_options.php&lt;/strong&gt; on lie notre fonction au pipeline affichage_entetes_final&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# config/mes_options.php
$GLOBALS['spip_pipeline']['affichage_entetes_final'] .= &#034;|redirections_persos&#034;;&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>[SPIP] Supprimer la pr&#233;visualisation d'un message forum</title>
		<link>https://blog.roxing.net/spip-supprimer-previsualistion-forum</link>
		<guid isPermaLink="true">https://blog.roxing.net/spip-supprimer-previsualistion-forum</guid>
		<dc:date>2015-05-19T19:43:31Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox</dc:creator>


		<dc:subject>php</dc:subject>
		<dc:subject>spip3</dc:subject>
		<dc:subject>spip</dc:subject>
		<dc:subject>pr&#233;visualisation</dc:subject>
		<dc:subject>forums</dc:subject>
		<dc:subject>mes_options.php</dc:subject>

		<description>
&lt;p&gt;Il est souvent p&#233;nible de devoir surcharger tout le formulaire forum de spip pour d&#233;sactiver seulement la pr&#233;visualisation. Je vais pr&#233;senter une astuce simple et rapide &#224; mettre en place sans avoir besoin de toucher au squelette ni surcharger quoi que ce soit. &lt;br class='autobr' /&gt; Supprimer la pr&#233;visualisation sur SPIP 3.0 &lt;br class='autobr' /&gt;
Dans le cadre d'un plugin, on d&#233;clare les pipelines dans un fichier paquet.xml. &lt;br class='autobr' /&gt;
Pour un squelette spip classique, il faut d&#233;clarer les pipelines dans mes_options.php et &#034;appeler&#034; la (&#8230;)&lt;/p&gt;


-
&lt;a href="https://blog.roxing.net/billets" rel="directory"&gt;billets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/php" rel="tag"&gt;php&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/spip3" rel="tag"&gt;spip3&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/spip-49" rel="tag"&gt;spip&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/previsualisation" rel="tag"&gt;pr&#233;visualisation&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/forums-128" rel="tag"&gt;forums&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/mes_options-php" rel="tag"&gt;mes_options.php&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Il est souvent p&#233;nible de devoir surcharger tout le formulaire forum de spip pour &lt;strong&gt;d&#233;sactiver seulement la pr&#233;visualisation&lt;/strong&gt;. Je vais pr&#233;senter une astuce simple et rapide &#224; mettre en place sans avoir besoin de toucher au squelette ni surcharger quoi que ce soit.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt; Supprimer la pr&#233;visualisation sur &lt;a href=&#034;https://fr.wikipedia.org/wiki/SPIP&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;SPIP&lt;/a&gt; 3.0 &lt;/h2&gt;
&lt;p&gt;Dans le cadre d'un plugin, on d&#233;clare les pipelines dans un fichier paquet.xml.&lt;/p&gt;
&lt;p&gt;Pour un squelette spip classique, il faut d&#233;clarer les pipelines dans &lt;i&gt;mes_options.php&lt;/i&gt; et &#034;appeler&#034; la fonction dans &lt;i&gt;mes_fonctions.php&lt;/i&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;//mes_options.php $GLOBALS['spip_pipeline']['formulaire_verifier'] .= &#034;|supprimer_previsu&#034;;&lt;/textarea&gt;
&lt;textarea readonly='readonly' cols='40' rows='8' class='spip_cadre spip_cadre_block' dir='ltr'&gt;//mes_fonctions.php function supprimer_previsu($flux){ if($flux['args']['form'] === 'forum') unset($flux['data']['previsu']); return $flux; }&lt;/textarea&gt;
&lt;p&gt;A noter qu'il existe &#233;galement un plugin tout pr&#234;t &lt;a href=&#034;http://contrib.spip.net/Publier-un-message-sans-previsualiser&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;disponible sur les d&#233;pots de spip contrib&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt; Supprimer la pr&#233;visualisation sur &lt;a href=&#034;https://fr.wikipedia.org/wiki/SPIP&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;SPIP&lt;/a&gt; 3.1 et sup&#233;rieur&lt;/h2&gt;
&lt;p&gt;On se contentera de &lt;code class='php spip_code spip_code_inline' dir='ltr'&gt;$GLOBALS[&#034;meta&#034;][&#034;forums_forcer_previsu&#034;]=&#034;non&#034;;&lt;/code&gt; dans mes_options.php pour un r&#233;sultat similaire.&lt;/p&gt;
&lt;p&gt;Voil&#224;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;*** Pensez &#224; vider les caches ***&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Et voil&#224;, les messages post&#233;s dans les formulaires forum ne passeront plus par l'&#233;tape de pr&#233;visualisation !&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Astuce boucle spip, chargement s&#233;lectif des fichiers js</title>
		<link>https://blog.roxing.net/astuce-boucle-spip-chargement-selectifs-de-js</link>
		<guid isPermaLink="true">https://blog.roxing.net/astuce-boucle-spip-chargement-selectifs-de-js</guid>
		<dc:date>2014-03-24T23:15:30Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox, placido</dc:creator>


		<dc:subject>php</dc:subject>
		<dc:subject>boucle data</dc:subject>
		<dc:subject>plugin spip</dc:subject>
		<dc:subject>#ARRAY spip</dc:subject>
		<dc:subject>spip3</dc:subject>
		<dc:subject>spip</dc:subject>

		<description>&lt;p&gt;Dans le cadre d'un design utilisant bootstrap, on souhaite pourvoir activer facilement une ou plusieurs biblioth&#232;ques javascript.&lt;/p&gt;

-
&lt;a href="https://blog.roxing.net/billets" rel="directory"&gt;billets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/php" rel="tag"&gt;php&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/boucle-data" rel="tag"&gt;boucle data&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/plugin-spip" rel="tag"&gt;plugin spip&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/array-spip" rel="tag"&gt;#ARRAY spip&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/spip3" rel="tag"&gt;spip3&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/spip-49" rel="tag"&gt;spip&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Le but est de faire une boucle sur un #ARRAY ayant comme cl&#233; le nom d'un script js, et un bool&#233;en en tant que valeur.&lt;/p&gt;
&lt;p&gt;On active ou d&#233;sactive le script simplement en rempla&#231;ant la valeur par 1.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='19' class='spip_cadre spip_cadre_block' dir='ltr'&gt;&lt;BOUCLE_for(DATA){source table,#ARRAY{ affix.js,0, alert.js,0, button.js,0, carousel.js,0, collapse.js,1, dropdown.js,0, modal.js,0, popover.js,0, scrollspy.js,0, tab.js,0, tooltip.js,0, transition.js,0, }}&gt; [(#VALEUR|=={1}|oui) &lt;script src=&#034;#CHEMIN{javascript/bootstrap/#CLE}&#034;&gt;&lt;/script&gt; ] &lt;/BOUCLE_for&gt;&lt;/textarea&gt;
&lt;p&gt;La m&#234;me chose, mais en mieux, dans le cadre de la cr&#233;ation d'un plugin est d'utiliser le pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;insert_head($flux)&lt;/code&gt;.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='29' class='spip_cadre spip_cadre_block' dir='ltr'&gt;function monPlugin_insert_head($flux){ # D&#233;clarer le array listant les scripts js $bstrpJs = array( 'affix.js' =&gt; 0, 'alert.js' =&gt; 0, 'button.js' =&gt; 0, 'carousel.js' =&gt; 0, 'collapse.js' =&gt; 1, 'dropdown.js' =&gt; 1, 'modal.js,0' =&gt; 0, 'popover.js' =&gt; 0, 'scrollspy.js' =&gt; 0, 'tab.js' =&gt; 0, 'tooltip.js' =&gt; 0, 'transition.js' =&gt; 0, ); # Boucler sur le tableau listant les scripts foreach($bstrpJs as $script =&gt; $active){ if($path = find_in_path(&#034;javascript/bootstrap/$script&#034;) AND $active &gt; 0){ $flux .= '&lt;script type=&#034;text/javascript&#034; src=&#034;'. $path .'&#034;&gt;&lt;/script&gt;'; } } return $flux; }&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Parcourir un tableau multidimensionnel &#224; l'aide de boucles</title>
		<link>https://blog.roxing.net/parcourir-un-tableau-multidimensionnel-a-l-aide</link>
		<guid isPermaLink="true">https://blog.roxing.net/parcourir-un-tableau-multidimensionnel-a-l-aide</guid>
		<dc:date>2012-10-02T01:24:29Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox</dc:creator>


		<dc:subject>boucle data</dc:subject>
		<dc:subject>spip3</dc:subject>
		<dc:subject>spip</dc:subject>

		<description>
&lt;p&gt;Avec la nouvelle version de spip3 il est possible de boucler sur des tableaux. &lt;br class='autobr' /&gt;
Un bon exemple pour r&#233;cuperer des tableaux multidimensionnels est la table spip_meta. Les plugins ins&#232;rent souvent des donn&#233;es sous forme de tableaux multidimensionnels s&#233;rialis&#233;s pour sauvegarder leur configuration. &lt;br class='autobr' /&gt;
La boucle ci-dessous va r&#233;cup&#233;rer le tableau php stock&#233; en bdd. Ce tableau va &#234;tre affect&#233; &#224; la variable tabMetaAuteur, puis pass&#233; en &#034;crit&#232;re&#034; de boucle. On effectue une boucle sur les (&#8230;)&lt;/p&gt;


-
&lt;a href="https://blog.roxing.net/billets" rel="directory"&gt;billets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/boucle-data" rel="tag"&gt;boucle data&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/spip3" rel="tag"&gt;spip3&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/spip-49" rel="tag"&gt;spip&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Avec la nouvelle version de spip3 il est possible de boucler sur des tableaux&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;Voir doc spip : #ARRAY&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Un bon exemple pour r&#233;cuperer des tableaux multidimensionnels est la table spip_meta. Les plugins ins&#232;rent souvent des donn&#233;es sous forme de tableaux multidimensionnels s&#233;rialis&#233;s&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Serialize/Unserialize : compresser/d&#233;compresser un tableau&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; pour sauvegarder leur configuration.&lt;/p&gt;
&lt;p&gt;La boucle ci-dessous va r&#233;cup&#233;rer le tableau php stock&#233; en bdd. &lt;br class='autobr' /&gt;
Ce tableau va &#234;tre affect&#233; &#224; la variable tabMetaAuteur, puis pass&#233; en &#034;crit&#232;re&#034; de boucle. &lt;br class='autobr' /&gt;
On effectue une boucle sur les valeurs puis une boucle r&#233;cursive&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir doc spip : les boucles recursives&#034; id=&#034;nh3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt; a l'int&#233;rieur de celle-ci qui va descendre dans toute la profondeur du tableau.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#REM)&lt;!-- R&#233;cup&#233;ration d'un tableau en bdd--&gt;] &lt;BOUCLE_recup_tableau(spip_meta){nom = champs_extras_spip_auteurs}&gt; #SET{tabMetaAuteur,#VALEUR} &lt;/BOUCLE_recup_tableau&gt; [(#REM)&lt;!-- Boucle sur le tableau --&gt;] &lt;ul&gt; &lt;BOUCLE_data_tab(DATA){source table, #GET{tabMetaAuteur}}&gt; &lt;li&gt;#CLEF &lt;B_data&gt; &lt;ul&gt; [(#REM)&lt;!-- Boucle sur le tableau et toute sa profondeur --&gt;] &lt;BOUCLE_data(DATA){source table, #VALEUR}{' '}&gt; &lt;li&gt;\[#CLE\] =&gt; #VALEUR &lt;BOUCLE_recursive_data(BOUCLE_data)&gt; &lt;/BOUCLE_recursive_data&gt; &lt;/li&gt; &lt;/BOUCLE_data&gt; &lt;/ul&gt; &lt;/B_data&gt; &lt;/li&gt; &lt;/BOUCLE_data_tab&gt; &lt;/ul&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Noter l'&#233;criture raccourcie de la boucle de calcul&lt;/strong&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_recursive_data(BOUCLE_data)/&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il est possible d'&#233;viter une boucle et d'arriver au m&#234;me r&#233;sultat avec le code ci-dessous.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_recup_tableau(spip_meta){nom = champs_extras_spip_auteurs}&gt; &lt;BOUCLE_data(DATA){source table, #VALEUR}{' '}&gt; \[#CLE\] =&gt; #VALEUR &lt;BOUCLE_recursive_data(BOUCLE_data)/&gt; &lt;/BOUCLE_data&gt; &lt;/BOUCLE_recup_tableau&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Une solution encore plus rapide et d'utiliser print_r($array) de php en guise de filtre :').&lt;/p&gt;
&lt;div class=&#034;astuce&#034;&gt;
&lt;code class='spip spip_code spip_code_inline' dir='ltr'&gt;[(#GET{tabMetaAuteur}|unserialize|print_r{1})]&lt;/code&gt;
&lt;/div&gt;
&lt;p&gt;&#192; noter que le tableau doit &#234;tre d&#233;s&#233;rialis&#233; contrairement au crit&#232;re de boucle DATA qui accepte les 2 formats.&lt;/p&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;Voir doc spip : &lt;a href=&#034;http://www.spip.net/fr_article4009.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;#ARRAY&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Serialize/Unserialize : &lt;a href=&#034;http://fr.wikipedia.org/wiki/S%C3%A9rialisation&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;compresser/d&#233;compresser un tableau&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3&#034; class=&#034;spip_note&#034; title=&#034;Notes 3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Voir doc spip : &lt;a href=&#034;http://www.spip.net/fr_article914.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;les boucles recursives&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
