<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>SPIP</title>
	<link>http://www.spip.net/</link>
	<description>Syst&#232;me de Publication pour Internet</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>

	<image>
		<title>SPIP</title>
		<url>http://www.spip.net/local/cache-vignettes/L144xH49/siteon0-56029.jpg</url>
		<link>http://www.spip.net/</link>
		<height>49</height>
		<width>144</width>
	</image>



<item xml:lang="es">
		<title>#FORMULAIRE_SIGNATURE</title>
		<link>http://www.spip.net/es_article4159.html</link>
		<guid isPermaLink="true">http://www.spip.net/es_article4159.html</guid>
		<dc:date>2009-07-17T15:30:38Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>es</dc:language>
		<dc:creator>David S&#225;nchez Crespillo</dc:creator>



		<description>#FORMULAIRE_SIGNATURE construye y muestra el formulario que permite firmar la petici&#243;n asociada a este art&#237;culo.

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;- &lt;a name=&quot;FORMULAIRE_SIGNATURE&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;code class='spip_code' dir='ltr'&gt;#FORMULAIRE_SIGNATURE&lt;/code&gt;&lt;/strong&gt; construye y muestra el formulario que permite firmar la petici&#243;n asociada a este art&#237;culo.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="es">
		<title>#ID_ARTICLE</title>
		<link>http://www.spip.net/es_article4158.html</link>
		<guid isPermaLink="true">http://www.spip.net/es_article4158.html</guid>
		<dc:date>2009-07-17T15:30:27Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>es</dc:language>
		<dc:creator>David S&#225;nchez Crespillo</dc:creator>



		<description>#ID_ARTICLE muestra el identificador &#250;nico del art&#237;culo. &#218;til para fabricar enlaces de hipertexto no previstos (por ejemplo, hacia una p&#225;gina &#8220;Mostrar en formato para impresi&#243;n&#8221;).

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;- &lt;strong&gt;&lt;code class='spip_code' dir='ltr'&gt;#ID_ARTICLE&lt;/code&gt;&lt;/strong&gt; muestra el identificador &#250;nico del art&#237;culo. &#218;til para fabricar enlaces de hipertexto no previstos (por ejemplo, hacia una p&#225;gina &#8220;Mostrar en formato para impresi&#243;n&#8221;).&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="es">
		<title>#SQUELETTE</title>
		<link>http://www.spip.net/es_article4160.html</link>
		<guid isPermaLink="true">http://www.spip.net/es_article4160.html</guid>
		<dc:date>2009-07-17T15:30:02Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>es</dc:language>
		<dc:creator>David S&#225;nchez Crespillo</dc:creator>



		<description>Introducido en SPIP 1.9.1, #SQUELETTE devuelve la ruta del esqueleto que se est&#225; utilizando actualmente.

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Introducido en &lt;a href='http://www.spip.net/es_article3463.html' class='spip_in'&gt;&lt;span style='color: darkviolet;'&gt;S&lt;/span&gt;&lt;span style='color: blue;'&gt;P&lt;/span&gt;&lt;span style='color: green;'&gt;I&lt;/span&gt;&lt;span style='color: salmon;'&gt;P&lt;/span&gt; &lt;span style='color: green;'&gt;1&lt;/span&gt;.&lt;span style='color: darkviolet;'&gt;9&lt;/span&gt;.&lt;span style='color: salmon;'&gt;1&lt;/span&gt;&lt;/a&gt;, &lt;code class='spip_code' dir='ltr'&gt;#SQUELETTE&lt;/code&gt; devuelve la ruta del esqueleto que se est&#225; utilizando actualmente.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="es">
		<title>#PARAMETRES_FORUM</title>
		<link>http://www.spip.net/es_article4161.html</link>
		<guid isPermaLink="true">http://www.spip.net/es_article4161.html</guid>
		<dc:date>2009-07-17T15:29:41Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>es</dc:language>
		<dc:creator>David S&#225;nchez Crespillo</dc:creator>



		<description>#PARAMETRES_FORUM construye y muestra la lista de las variables explotadas por el formulario que permiten responder a este art&#237;culo. Por ejemplo: [&lt;a href=&quot;spip.php?page=forum&amp;(#PARAMETRES_FORUM)&quot;&gt;Responder a este art&#237;culo&lt;/a&gt;] Desde SPIP 1.8.2, se le puede pasar un par&#225;metro que especifique la direcci&#243;n de retorno despu&#233;s de haber enviado el mensaje. Por ejemplo: &lt;a href=&quot;spip.php?page=forum&amp;(#PARAMETRES_FORUM#SELF)&quot;&gt;Responder a este (...)

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;- &lt;a name=&quot;PARAMETRES_FORUM&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;code class='spip_code' dir='ltr'&gt;#PARAMETRES_FORUM&lt;/code&gt;&lt;/strong&gt; construye y muestra la lista de las variables explotadas por el formulario que permiten responder a este art&#237;culo. Por ejemplo:&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;[&lt;a href=&quot;spip.php?page=forum&amp;(#PARAMETRES_FORUM)&quot;&gt;Responder a este art&#237;culo&lt;/a&gt;]&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Desde &lt;a href='http://www.spip.net/es_article3174.html' class='spip_in'&gt;SPIP 1.8.2&lt;/a&gt;, se le puede pasar un par&#225;metro que especifique la direcci&#243;n de retorno despu&#233;s de haber enviado el mensaje. Por ejemplo: &lt;code class='spip_code' dir='ltr'&gt;&lt;a href=&quot;spip.php?page=forum&amp;(#PARAMETRES_FORUM{#SELF})&quot;&gt;Responder a este art&#237;culo&lt;/a&gt;&lt;/code&gt; reenviar&#225; al visitante a la p&#225;gina actual una vez que el mensaje haya sido validado.&lt;/p&gt; &lt;blockquote class=&quot;spip&quot;&gt;
&lt;p&gt;&lt;i&gt;Hist&#243;rico:&lt;/i&gt; En las versiones anteriores a &lt;a href='http://www.spip.net/es_article3393.html' class='spip_in'&gt;&lt;span style='color: darkviolet;'&gt;S&lt;/span&gt;&lt;span style='color: blue;'&gt;P&lt;/span&gt;&lt;span style='color: green;'&gt;I&lt;/span&gt;&lt;span style='color: salmon;'&gt;P&lt;/span&gt; &lt;span style='color: green;'&gt;1&lt;/span&gt;&lt;span style='color: blue;'&gt;.&lt;/span&gt;&lt;span style='color: darkviolet;'&gt;9&lt;/span&gt;&lt;/a&gt; habr&#237;a sido necesario escribir &lt;code class='spip_code' dir='ltr'&gt;forum.php3?&lt;/code&gt; y no &lt;code class='spip_code' dir='ltr'&gt;spip.php?page=forum&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="es">
		<title>#URL_ARTICLE</title>
		<link>http://www.spip.net/es_article4163.html</link>
		<guid isPermaLink="true">http://www.spip.net/es_article4163.html</guid>
		<dc:date>2009-07-17T15:19:40Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>es</dc:language>
		<dc:creator>David S&#225;nchez Crespillo</dc:creator>



		<description>#URL_ARTICLE muestra la URL de la p&#225;gina del art&#237;culo.

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;- &lt;a name=&quot;URL_ARTICLE&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;code class='spip_code' dir='ltr'&gt;#URL_ARTICLE&lt;/code&gt;&lt;/strong&gt; muestra la URL de la p&#225;gina del art&#237;culo.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="es">
		<title>{tout}</title>
		<link>http://www.spip.net/es_article4164.html</link>
		<guid isPermaLink="true">http://www.spip.net/es_article4164.html</guid>
		<dc:date>2009-07-17T15:18:52Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>es</dc:language>
		<dc:creator>David S&#225;nchez Crespillo</dc:creator>



		<description>tout: los art&#237;culos son seleccionados en la totalidad del sitio (en todas las secciones). &#218;til especialmente para mostrar los art&#237;culos m&#225;s recientes (de todo el sitio) en la p&#225;gina de inicio. [En realidad, el criterio &#171;tout&#187; no se trata inform&#225;ticamente: es un recordatorio para el webmaster; se obtiene el mismo resultado si no se indica ninguno de los criterios siguientes.]

-
&lt;a href="http://www.spip.net/rubrique555.html" rel="directory"&gt;criterios&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;- &lt;a name=&quot;tout&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;code class='spip_code' dir='ltr'&gt;{tout}&lt;/code&gt;&lt;/strong&gt;: los art&#237;culos son seleccionados en la totalidad del sitio (en todas las secciones). &#218;til especialmente para mostrar los art&#237;culos m&#225;s recientes (de todo el sitio) en la p&#225;gina de inicio. [En realidad, el criterio &#171;tout&#187; no se trata inform&#225;ticamente: es un recordatorio para el webmaster; se obtiene el mismo resultado si no se indica ninguno de los criterios siguientes.]&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="es">
		<title>Las autorreferencias multiling&#252;es de la documentaci&#243;n</title>
		<link>http://www.spip.net/es_article4157.html</link>
		<guid isPermaLink="true">http://www.spip.net/es_article4157.html</guid>
		<dc:date>2009-07-14T09:03:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>es</dc:language>
		<dc:creator>David S&#225;nchez Crespillo</dc:creator>



		<description>&lt;p&gt;Este art&#237;culo explica por qu&#233; es necesario utilizar el atajo &lt;code class='spip_code' dir='ltr'&gt;[{}-&gt;artN] &lt;/code&gt; para referenciar el art&#237;culo N de la documentaci&#243;n, cualquiera que sea el idioma del art&#237;culo referenciado o del texto que lo referencia.&lt;/p&gt;

-
&lt;a href="http://www.spip.net/rubrique413.html" rel="directory"&gt;Traducir SPIP&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Ya que la versi&#243;n &lt;a href='http://www.spip.net/es_article3839.html' class='spip_in'&gt;&lt;span style='color: #273494;'&gt;SPIP 2.0&lt;/span&gt;&lt;/a&gt; ha introducido la posibilidad de sobrecargar el tratamiento de &lt;tt&gt;hreflang&lt;/tt&gt; de los atajos tipogr&#225;ficos, el presente sitio dedicado a la documentaci&#243;n multiling&#252;e de SPIP ofrece actualmente un m&#233;todo sencillo para referenciar sus propios art&#237;culos.&lt;/p&gt; &lt;p&gt;Anteriormente, cuando un art&#237;culo A referenciaba un art&#237;culo B de la documentaci&#243;n, quienes lo traduc&#237;an se encontraban ante una situaci&#243;n insatisfactoria y propicia al olvido. Se traduc&#237;a primero A y se obten&#237;a otro art&#237;culo, llam&#233;mosle C, dentro del cual se dejaba la referencia a B, sin tener todav&#237;a la URL de la traducci&#243;n de B, ya que a&#250;n no exist&#237;a. Durante el tiempo que esta traducci&#243;n, llam&#233;mosle D, era realizada y publicada, era muy f&#225;cil olvidar que C conten&#237;a una referencia a B que hab&#237;a que reemplazar por D.&lt;/p&gt; &lt;p&gt;En este momento, los redactores de la documentaci&#243;n tienen que utilizar obligatoriamente la notaci&#243;n &lt;code class='spip_code' dir='ltr'&gt;[{}-&gt;artN]&lt;/code&gt; para referenciar el art&#237;culo N de la documentaci&#243;n, y quienes lo traduzcan pueden copiar este atajo sin necesidad de modificarlo en el futuro. En efecto, si el art&#237;culo N no existe en la lengua del texto que utiliza este atajo, &#233;ste presentar&#225; la URL del art&#237;culo N (aquel que sea mejor). En cambio, si existe una traducci&#243;n, se presentar&#225; autom&#225;ticamente la URL de esa traducci&#243;n. M&#225;s exactamente, este comportamiento se observar&#225; estrictamente cuando haya una referencia en el espacio privado, mientras que en el espacio p&#250;blico se a&#241;adir&#225; la condici&#243;n suplementaria de que la traducci&#243;n est&#233; publicada, para presentar una URL disponible en el acto.&lt;/p&gt; &lt;p&gt;&#191;C&#243;mo es esto posible? De hecho, hac&#237;a ya mucho tiempo que los atajos de SPIP autorizaban la utilizaci&#243;n de llaves para especificar el valor del atributo &lt;tt&gt;hreflang&lt;/tt&gt;. No obstante, &lt;a href='http://www.spip.net/es_article3839.html' class='spip_in'&gt;&lt;span style='color: #273494;'&gt;SPIP 2.0&lt;/span&gt;&lt;/a&gt; interpreta adem&#225;s un par de llaves vac&#237;as como un &lt;tt&gt;hreflang&lt;/tt&gt; igual al idioma del texto donde figura el atajo. La sobrecarga introducida por este sitio consiste simplemente en buscar si el art&#237;culo designado por el atajo existe en el idioma indicado por el &lt;tt&gt;hreflang&lt;/tt&gt;. Si es este el caso, el atajo &lt;code class='spip_code' dir='ltr'&gt;-&gt;artN&lt;/code&gt; se reemplaza por &lt;code class='spip_code' dir='ltr'&gt;-&gt;artP&lt;/code&gt;, donde &lt;code class='spip_code' dir='ltr'&gt;P&lt;/code&gt; es la traducci&#243;n de &lt;code class='spip_code' dir='ltr'&gt;N&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Structure HTML des formulaires de SPIP 2</title>
		<link>http://www.spip.net/fr_article3791.html</link>
		<guid isPermaLink="true">http://www.spip.net/fr_article3791.html</guid>
		<dc:date>2009-06-27T10:48:14Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>ARNO*, cerdic, Matthieu Marcillaud, romy.tetue.net</dc:creator>



		<description>Document de r&#233;f&#233;rences pr&#233;cisant comment les formulaires dans SPIP doivent &#234;tre structur&#233;s Structure HTML Un formulaire de base est ainsi structur&#233; : &lt;div class=&quot;formulaire_spip formulaire_editer formulaire_editer_nomformulaire&quot; id=&quot;formulaire_editer_nomformulaire-id&quot;&gt; &lt;a id=&quot;nomformulaire&quot; name=&quot;nomformulaire&quot;&gt;&lt;/a&gt; &lt;form action=&quot;#&quot; method=&quot;post&quot;&gt; &lt;fieldset&gt; &lt;legend&gt;Une l&#233;gende&lt;/legend&gt; (...)

-
&lt;a href="http://www.spip.net/rubrique522.html" rel="directory"&gt;Interactivit&#233;&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Document de r&#233;f&#233;rences pr&#233;cisant comment les formulaires dans SPIP doivent &#234;tre structur&#233;s&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Structure HTML&lt;/h3&gt;
&lt;p&gt;Un formulaire de base est ainsi structur&#233; :&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='29' class='spip_cadre' dir='ltr'&gt;&lt;div class=&quot;formulaire_spip formulaire_editer formulaire_editer_nomformulaire&quot; id=&quot;formulaire_editer_nomformulaire-id&quot;&gt; &lt;a id=&quot;nomformulaire&quot; name=&quot;nomformulaire&quot;&gt;&lt;/a&gt; &lt;form action=&quot;#&quot; method=&quot;post&quot;&gt; &lt;fieldset&gt; &lt;legend&gt;Une l&#233;gende&lt;/legend&gt; &lt;p class=&quot;explication&quot;&gt;Un texte d'explication&lt;/p&gt; &lt;ul&gt; &lt;li class=&quot;editer_nomlabel obligatoire erreur&quot;&gt; &lt;label for=&quot;nomlabel&quot;&gt;Courriel&lt;/label&gt; &lt;em class=&quot;aide&quot;&gt;#AIDER{arttitre}&lt;/em&gt; &lt;p class=&quot;explication&quot;&gt; Explication du label&lt;/p&gt; &lt;span class=&quot;erreur_message&quot;&gt;Message d'erreur&lt;/span&gt; &lt;input type=&quot;type&quot; class=&quot;type&quot; name=&quot;nomlabel&quot; id=&quot;nomlabel&quot; value=&quot;&quot; /&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/fieldset&gt; &lt;/form&gt; &lt;/div&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Le div englobant porte la classe g&#233;n&#233;rique &lt;strong&gt;&lt;tt&gt;formulaire_spip&lt;/tt&gt;&lt;/strong&gt;. Les formulaires d'&#233;dition de l'espace priv&#233; portent de plus la classe &lt;strong&gt;&lt;tt&gt;formulaire_editer&lt;/tt&gt;&lt;/strong&gt; indiquant qu'on a affaire &#224; un formulaire d'&#233;dition de donn&#233;es d'une base.&lt;/p&gt; &lt;p&gt;Le premier fieldset &#233;tant optionnel, on peut aussi &#233;crire, sans le fieldset et sans les paragraphes optionnels :&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='17' class='spip_cadre' dir='ltr'&gt;&lt;div class=&quot;formulaire_spip formulaire_editer formulaire_editer_nomformulaire formulaire_editer_nomformulaire-id&quot;&gt; &lt;a id=&quot;nomformulaire&quot; name=&quot;nomformulaire&quot;&gt;&lt;/a&gt; &lt;form action=&quot;#&quot; method=&quot;post&quot;&gt; &lt;ul&gt; &lt;li class=&quot;editer_nomlabel obligatoire&quot;&gt; &lt;label for=&quot;nomlabel&quot;&gt;Courriel&lt;/label&gt; &lt;input type=&quot;type&quot; class=&quot;type&quot; name=&quot;nomlabel&quot; id=&quot;nomlabel&quot; value=&quot;&quot; /&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/form&gt; &lt;/div&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Les classes sp&#233;ciales&lt;/h3&gt;
&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; &#171; &lt;strong&gt;&lt;tt&gt;explication&lt;/tt&gt;&lt;/strong&gt; &#187; : pour indiquer un message d'explication (qui porte soit pour l'ensemble des champs, soit sur une &#233;tape). Exemple : &lt;code class='spip_code' dir='ltr'&gt;&lt;p class=&quot;explication&quot;&gt;&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &#171; &lt;strong&gt;&lt;tt&gt;attention&lt;/tt&gt;&lt;/strong&gt; &#187; : pour afficher un message concernant un champ d'&#233;dition critique. Exemple : &lt;code class='spip_code' dir='ltr'&gt;&lt;em class=&quot;attention&quot;&gt;&lt;:texte_login_precaution:&gt;&lt;/em&gt;&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &#171; &lt;strong&gt;&lt;tt&gt;obligatoire&lt;/tt&gt;&lt;/strong&gt; &#187; : pour signaler un champ obligatoire, &#224; appliquer &#224; l'&#233;l&#233;ment de liste parent. Exemple : &lt;code class='spip_code' dir='ltr'&gt;&lt;li class=&quot;obligatoire&quot;&gt;&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &#171; &lt;strong&gt;&lt;tt&gt;erreur&lt;/tt&gt;&lt;/strong&gt; &#187; : pour signaler une &#233;tape en erreur, &#224; appliquer &#224; l'&#233;l&#233;ment de liste parent. Exemple : &lt;code class='spip_code' dir='ltr'&gt;&lt;li class=&quot;erreur&quot;&gt;&lt;/code&gt;. chaque erreur b&#233;n&#233;ficie d'un message explicatif, portant la class &#171; &lt;tt&gt;erreur_message&lt;/tt&gt; &#187; : &lt;code class='spip_code' dir='ltr'&gt;&lt;span class=&quot;erreur_message&quot;&gt;&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;h3 class=&quot;spip&quot;&gt;Cadre englobant&lt;/h3&gt;
&lt;p&gt;Ce formulaire peut optionnelement &#234;tre inclu dans un cadre-formulaire-editer, et peut alors contenir un entete-formulaire :&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'&gt;&lt;div class=&quot;cadre-formulaire-editer&quot;&gt; &lt;div class=&quot;entete-formulaire&quot;&gt;&lt;/div&gt; &lt;div class=&quot;formulaire_editer formulaire_editer_site formulaire_editer_site-#ENV{id_site,nouveau}&quot;&gt;&lt;/div&gt; &lt;/div&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Gestion des messages r&#233;ussite/erreur&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Messages globaux&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Un formulaire comporte obligatoirement deux paragraphes permettant d'afficher les r&#233;ussites et erreurs globales qui ont pu appara&#238;tre &#224; la soumission. Les variables d'environnements &lt;tt&gt;message_ok&lt;/tt&gt; et &lt;tt&gt;message_erreur&lt;/tt&gt; sont des retours envoy&#233;s par SPIP (formulaires CVT).&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'&gt;&lt;div class=&quot;formulaire_editer formulaire_editer_site formulaire_editer_site-#ENV{id_site,nouveau}&quot;&gt; [&lt;p class=&quot;reponse_formulaire reponse_formulaire_ok&quot;&gt;(#ENV*{message_ok})&lt;/p&gt;] [&lt;p class=&quot;reponse_formulaire reponse_formulaire_erreur&quot;&gt;(#ENV*{message_erreur})&lt;/p&gt;] &lt;/div&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;&lt;strong&gt;Messages sp&#233;cifiques&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Chaque champ de formulaire, encapsul&#233; dans un li peut recevoir un message d'erreur sp&#233;cifique. Celui-ci est contenu dans la le tableau d'environnement 'erreurs' et peut &#234;tre obtenu de la sorte :&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;[(#ENV**{erreurs}|table_valeur{nom_du_champ})]&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;On peut attribuer la classe 'erreur' au li et afficher une erreur sp&#233;cifique si elle existe de la sorte :&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='9' class='spip_cadre' dir='ltr'&gt;&lt;li class=&quot;editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]&quot;&gt; &lt;label for=&quot;descriptif&quot;&gt;&lt;:texte_descriptif_rapide:&gt;&lt;/label&gt; [&lt;span class='erreur_message'&gt;(#ENV**{erreurs}|table_valeur{desctiptif})&lt;/span&gt;] &lt;textarea name='descriptif' id='descriptif' rows='2' cols='40'&gt;[(#ENV**{descriptif})]&lt;/textarea&gt; &lt;/li&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt; Particularit&#233;s pour les styles css&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Champs input&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Chaque &lt;code class='spip_code' dir='ltr'&gt;&lt;input /&gt;&lt;/code&gt; diff&#233;rent de &lt;tt&gt;hidden&lt;/tt&gt; doit poss&#233;der une classe identique &#224; son type (afin de palier &#224; un d&#233;ficience du navigateur Internet Explorer) :&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'&gt;&lt;input type=&quot;text&quot; class=&quot;text&quot; name=&quot;titre&quot; id=&quot;titre&quot; value=&quot;[(#ENV**{titre})]&quot; /&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;&lt;strong&gt;Boutons de soumission&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Les boutons de soumissions sont inclus dans une bo&#238;te &lt;tt&gt;.boutons&lt;/tt&gt; (qui peut recevoir plusieurs boutons) :&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'&gt;&lt;p class=&quot;boutons&quot;&gt;&lt;input type=&quot;submit&quot; class=&quot;submit&quot; value=&quot;&lt;:bouton_enregistrer:&gt;&quot; /&gt;&lt;/div&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;&lt;strong&gt;radio/checkbox&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Dans le cas de bouton radio ou checkbox, on peut ne pas reprendre
tout a fait la m&#234;me structure, par exemple pour avoir le bouton
avant le label, ou pour avoir la liste radio en horizonal&lt;/p&gt; &lt;p&gt;Chaque entr&#233;e (radio + label) peut alors &#234;tre encadr&#233;e par un bloc .choix&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='17' class='spip_cadre' dir='ltr'&gt;&lt;li class=&quot;editer_syndication&quot;&gt; &lt;div class=&quot;choix&quot;&gt; &lt;input type='radio' class=&quot;radio&quot; name='syndication' value='non' id='syndication_non'[ (#ENV{syndication}|=={non}|?{'checked=&quot;checked&quot;'})] /&gt; &lt;label for='syndication_non'&gt;&lt;:bouton_radio_non_syndication:&gt;&lt;/label&gt; &lt;/div&gt; &lt;div class=&quot;choix&quot;&gt; &lt;input type='radio' class=&quot;radio&quot; name='syndication' value='oui' id='syndication_oui'[ (#ENV{syndication}|=={oui}|?{'checked=&quot;checked&quot;'})] /&gt; &lt;label for='syndication_oui'&gt;&lt;:bouton_radio_syndication:&gt;&lt;em&gt;#AIDER{rubsyn}&lt;/em&gt;&lt;/label&gt; &lt;/div&gt; &lt;/li&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Par d&#233;faut, la liste est verticale. Pour rendre la liste horizontale,
il suffit de sp&#233;cifier que .champ en question est de type inline :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;.formulaire_editer .editer_syndication .choix {display:inline;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Principes g&#233;n&#233;raux de ces formulaires pour avoir les labels align&#233;s &#224; gauche&lt;/p&gt; &lt;p&gt;On se retrouve dans un cas o&#249; l'on a :&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='12' class='spip_cadre' dir='ltr'&gt;&lt;ul&gt; &lt;li&gt; &lt;label /&gt; &lt;input /&gt; &lt;/li&gt; &lt;li&gt; &lt;label /&gt; &lt;em /&gt; &lt;span /&gt; &lt;input /&gt; &lt;/li&gt; &lt;/ul&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;1) on applique un padding gauche au LI sup&#233;rieur &#224; la taille du label (ex:120px)&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'&gt;.formulaire_spip li { margin: 0; padding: 10px 10px 10px 130px; clear:both; border-top: 1px solid #[(#GET{foncee}|couleur_eclaircir|couleur_eclaircir)]; }&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt; 2) on demande au label d'&#234;tre flottant et d&#233;cal&#233; sur la gauche (via un margin n&#233;gatif)&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'&gt;.formulaire_spip label { width: 120px; float:left; margin-left:-125px; text-align: left; vertical-align: top; }&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;3) lorsqu'un fieldset suit un li, on le d&#233;cale aussi vers la gauche (seul IE n'en tient pas compte) pour que le fieldset prenne toute la largeur aussi&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre' dir='ltr'&gt;.formulaire_spip li fieldset { border:1px solid #888; background:white; margin-left:-125px; /* redecalage vers la gauche... IE &lt; 8 ne le prend pas en compte */ }&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#VAL</title>
		<link>http://www.spip.net/fr_article4026.html</link>
		<guid isPermaLink="true">http://www.spip.net/fr_article4026.html</guid>
		<dc:date>2009-06-18T09:15:46Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>maieul</dc:creator>



		<description>La Balise #VAL prend un param&#232;tre qui est retourn&#233; tel quel. Elle permet par exemple d'appliquer des filtres sur des constantes. Par exemple [(#VAL&lt;:chaine_de_langue:&gt;|image_typo)]

-
&lt;a href="http://www.spip.net/rubrique543.html" rel="directory"&gt;balises&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;La Balise #VAL prend un param&#232;tre qui est retourn&#233; tel quel.&lt;/p&gt; &lt;p&gt;Elle permet par exemple d'appliquer des filtres sur des constantes.&lt;/p&gt; &lt;p&gt;Par exemple &lt;code class='spip_code' dir='ltr'&gt;[(#VAL{&lt;:chaine_de_langue:&gt;}|image_typo)]&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#ARRAY</title>
		<link>http://www.spip.net/fr_article4009.html</link>
		<guid isPermaLink="true">http://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>BoOz, denisb</dc:creator>


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

		<description>La balise #ARRAY d&#233;finit un tableau au sens php c'est &#224; dire un ensemble de paires clef/valeur. Un #ARRAY permet ainsi le stockage de valeurs index&#233;es et peut &#234;tre utilis&#233;, entre autre, associ&#233; &#224; l'op&#233;rateur IN d'une boucle. D&#233;clarer un tableau : #SETmon_tableau, #ARRAYclef1,valeur1,clef2,valeur2... R&#233;cup&#233;rer la valeur associ&#233;e &#224; une clef en utilisant le filtre |table_valeur : [(#GETmon_tableau|table_valeurclef)] Remplir un tableau dynamiquement en utilisant le filtre |push : #SETmots_choisis, (...)

-
&lt;a href="http://www.spip.net/rubrique543.html" rel="directory"&gt;balises&lt;/a&gt;

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

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La balise #ARRAY d&#233;finit un &lt;i&gt;tableau&lt;/i&gt; au sens php c'est &#224; dire un ensemble de paires clef/valeur. Un #ARRAY permet ainsi le stockage de valeurs index&#233;es et peut &#234;tre utilis&#233;, entre autre, associ&#233; &#224; l'op&#233;rateur IN d'une boucle.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;- &lt;strong&gt;D&#233;clarer un tableau&lt;/strong&gt; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;#SET{mon_tableau, #ARRAY{clef1,valeur1,clef2,valeur2...}}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;- &lt;strong&gt;R&#233;cup&#233;rer la valeur associ&#233;e &#224; une clef&lt;/strong&gt; en utilisant le filtre &lt;i&gt;|table_valeur&lt;/i&gt; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;[(#GET{mon_tableau}|table_valeur{clef})]&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;- &lt;strong&gt;Remplir un tableau dynamiquement&lt;/strong&gt; en utilisant le filtre &lt;i&gt;|push&lt;/i&gt; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;#SET{mots_choisis, #ARRAY{}}&lt;br /&gt; &lt;BOUCLE_themes(MOTS) {id_article}&gt;&lt;br /&gt; [(#SET{mots_choisis, #GET{mots_choisis}|push{#ID_MOT}})]&lt;br /&gt; &lt;/BOUCLE_themes&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;ou encore &lt;i&gt;en for&#231;ant la valeur des clefs&lt;/i&gt; avec la fonction php utilis&#233;e comme filtre &lt;i&gt;|array_merge&lt;/i&gt; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;#SET{mots_choisis, #ARRAY{}}&lt;br /&gt; &lt;BOUCLE_themes(MOTS) {id_article}&gt;&lt;br /&gt; [(#SET{mots_choisis,&lt;br /&gt; [(#GET{mots_choisis}|array_merge{#ARRAY{&lt;br /&gt; #COMPTEUR_BOUCLE, #ID_MOT&lt;br /&gt; }})]&lt;br /&gt; })]&lt;br /&gt; &lt;/BOUCLE_themes&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Attention &lt;i&gt;1&lt;/i&gt; &lt;/strong&gt; : le filtre &lt;code class='spip_code' dir='ltr'&gt;|array_merge&lt;/code&gt; ne tient pas compte de la clef &#224; forcer (&lt;i&gt;#COMPTEUR_BOUCLE&lt;/i&gt; dans l'exemple ci-dessus) si cette clef est de type &lt;i&gt;num&#233;rique&lt;/i&gt;. Auquel cas deux solutions :&lt;/p&gt; &lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; soit &lt;strong&gt;pr&#233;fixer&lt;/strong&gt; cette clef avec une valeur alphab&#233;tique :&lt;code class='spip_code' dir='ltr'&gt;#ARRAY{k#COMPTEUR_BOUCLE, #ID_MOT}&lt;/code&gt; ;&lt;/li&gt;&lt;li&gt; soit &lt;strong&gt;inverser&lt;/strong&gt; clef et valeur (&#224; condition que &lt;i&gt;valeur&lt;/i&gt; ne soit pas elle aussi num&#233;rique) puis appliquer la fonction php comme filtre &lt;strong&gt;|array_flip&lt;/strong&gt; sur le tableau final :&lt;code class='spip_code' dir='ltr'&gt;[(#SET{mots_choisis, #GET{mots_choisis}|array_flip)]&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Attention &lt;i&gt;2&lt;/i&gt; &lt;/strong&gt; : il faut d&#233;clarer le tableau avant son remplissage dans la boucle.&lt;/p&gt; &lt;p&gt;&lt;i&gt;Note 1 :&lt;/i&gt; l'ordre de remplissage du tableau est d&#233;termin&#233; par l'ordre d'apparition des donn&#233;es dans la boucle, donc est d&#233;pendant du ou des crit&#232;res de tri qui sont appliqu&#233;s &#224; celle-ci.
&lt;br /&gt;&lt;i&gt;Note 2 :&lt;/i&gt;&lt;code class='spip_code' dir='ltr'&gt;[(#GET{mon_tableau}|table_valeur{6})]&lt;/code&gt; affichera la valeur associ&#233;e &#224; &lt;i&gt;la clef num&#233;ro 6&lt;/i&gt; du tableau ; c'est-&#224;-dire &lt;i&gt;la 7&#232;me valeur&lt;/i&gt; : la num&#233;rotation des clefs d&#233;butant &#224; z&#233;ro.&lt;/p&gt; &lt;p&gt;- &lt;strong&gt;Utiliser le tableau dans une boucle avec l'op&#233;rateur &lt;i&gt;IN&lt;/i&gt; &lt;/strong&gt; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;BOUCLE_memes_themes(ARTICLES) {id_mot IN #GET{mots_choisis}|sinon{0}}&gt;&lt;br /&gt; ...&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;- &lt;strong&gt;Affichage conditionnel en fonction des valeurs d'un tableau&lt;/strong&gt; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;[(#ENV{page}|in_array{#ARRAY{0,article,1,rubrique,2,site}}|oui)&lt;br /&gt; Affichage conditionnel ]&lt;/code&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;p&gt;autre exemple avec une variable 'lolo' pass&#233;e dans l'url :
&lt;br /&gt;http://le_site/-ma-rubrique-?lolo=6&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&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&lt;br /&gt; (#ENV{lolo}|in_array{#GET{les_mots}}|oui)&lt;br /&gt; cel&#224; s'affichera aussi ]&lt;/code&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;p&gt;Pour ne pas risquer de g&#233;n&#233;rer une erreur &#171; &lt;i&gt;Warning : in_array() [function.in-array] : Wrong datatype for second argument.&lt;/i&gt; &#187; dans le cas o&#249; la variable pass&#233;e ne serait pas de type array on pourra utiliser le filtre &lt;strong&gt;|in_any&lt;/strong&gt; qui rattrape l'erreur sans afficher l'alerte, et permet d'afficher une valeur alternative.&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;[(#VAL{abc}|in_any{#GET{tablo}, truc &#224; faire si GET_tablo n'est pas un array}|oui|?{truc &#224; faire si abc est une valeur de GET_tablo, truc &#224; faire si abc n'est pas une valeur de GET_tablo})]&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
