<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel xml:lang="fr">
	<title>SPIP</title>
	<link>http://www.spip.net/</link>
	<description>Systè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>



<itunes:explicit>yes</itunes:explicit><itunes:subtitle>Système de Publication pour Internet</itunes:subtitle><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Spip" type="application/rss+xml" /><item xml:lang="es">
		<title>#FORMULAIRE_SIGNATURE</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/Zp6vwddq-Vg/es_article4159.html</link>
		<guid isPermaLink="false">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ánchez</dc:creator>



		<description>#FORMULAIRE_SIGNATURE construye y muestra el formulario que permite firmar la petición asociada a este artículo.

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded><![CDATA[<div class='rss_texte'><p>- <a name="FORMULAIRE_SIGNATURE"></a><strong><code class='spip_code' dir='ltr'>#FORMULAIRE_SIGNATURE</code></strong> construye y muestra el formulario que permite firmar la petición asociada a este artículo.</p></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/Zp6vwddq-Vg" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/es_article4159.html</feedburner:origLink></item>
<item xml:lang="es">
		<title>#ID_ARTICLE</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/55g844CrAR8/es_article4158.html</link>
		<guid isPermaLink="false">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ánchez</dc:creator>



		<description>#ID_ARTICLE muestra el identificador único del artículo. Útil para fabricar enlaces de hipertexto no previstos (por ejemplo, hacia una página “Mostrar en formato para impresión”).

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded><![CDATA[<div class='rss_texte'><p>- <strong><code class='spip_code' dir='ltr'>#ID_ARTICLE</code></strong> muestra el identificador único del artículo. Útil para fabricar enlaces de hipertexto no previstos (por ejemplo, hacia una página “Mostrar en formato para impresión”).</p></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/55g844CrAR8" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/es_article4158.html</feedburner:origLink></item>
<item xml:lang="es">
		<title>#SQUELETTE</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/DdI2QH6CdY4/es_article4160.html</link>
		<guid isPermaLink="false">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ánchez</dc:creator>



		<description>Introducido en SPIP 1.9.1, #SQUELETTE devuelve la ruta del esqueleto que se está utilizando actualmente.

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded><![CDATA[<div class='rss_texte'><p>Introducido en <a href='http://www.spip.net/es_article3463.html' class='spip_in'><span style='color: darkviolet;'>S</span><span style='color: blue;'>P</span><span style='color: green;'>I</span><span style='color: salmon;'>P</span> <span style='color: green;'>1</span>.<span style='color: darkviolet;'>9</span>.<span style='color: salmon;'>1</span></a>, <code class='spip_code' dir='ltr'>#SQUELETTE</code> devuelve la ruta del esqueleto que se está utilizando actualmente.</p></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/DdI2QH6CdY4" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/es_article4160.html</feedburner:origLink></item>
<item xml:lang="es">
		<title>#PARAMETRES_FORUM</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/-ldvO2VxBvE/es_article4161.html</link>
		<guid isPermaLink="false">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ánchez</dc:creator>



		<description>#PARAMETRES_FORUM construye y muestra la lista de las variables explotadas por el formulario que permiten responder a este artículo. Por ejemplo: [&lt;a href="spip.php?page=forum&amp;(#PARAMETRES_FORUM)"&gt;Responder a este artículo&lt;/a&gt;] Desde SPIP 1.8.2, se le puede pasar un parámetro que especifique la dirección de retorno después de haber enviado el mensaje. Por ejemplo: &lt;a href="spip.php?page=forum&amp;(#PARAMETRES_FORUM#SELF)"&gt;Responder a este (...)

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded><![CDATA[<div class='rss_texte'><p>- <a name="PARAMETRES_FORUM"></a><strong><code class='spip_code' dir='ltr'>#PARAMETRES_FORUM</code></strong> construye y muestra la lista de las variables explotadas por el formulario que permiten responder a este artículo. Por ejemplo:</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'>[<a href="spip.php?page=forum&(#PARAMETRES_FORUM)">Responder a este artículo</a>]</textarea></div></form> <p>Desde <a href='http://www.spip.net/es_article3174.html' class='spip_in'>SPIP 1.8.2</a>, se le puede pasar un parámetro que especifique la dirección de retorno después de haber enviado el mensaje. Por ejemplo: <code class='spip_code' dir='ltr'><a href="spip.php?page=forum&(#PARAMETRES_FORUM{#SELF})">Responder a este artículo</a></code> reenviará al visitante a la página actual una vez que el mensaje haya sido validado.</p> <blockquote class="spip">
<p><i>Histórico:</i> En las versiones anteriores a <a href='http://www.spip.net/es_article3393.html' class='spip_in'><span style='color: darkviolet;'>S</span><span style='color: blue;'>P</span><span style='color: green;'>I</span><span style='color: salmon;'>P</span> <span style='color: green;'>1</span><span style='color: blue;'>.</span><span style='color: darkviolet;'>9</span></a> habría sido necesario escribir <code class='spip_code' dir='ltr'>forum.php3?</code> y no <code class='spip_code' dir='ltr'>spip.php?page=forum</code></p>
</blockquote></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/-ldvO2VxBvE" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/es_article4161.html</feedburner:origLink></item>
<item xml:lang="es">
		<title>#URL_ARTICLE</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/4vWmiqfJhhg/es_article4163.html</link>
		<guid isPermaLink="false">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ánchez</dc:creator>



		<description>#URL_ARTICLE muestra la URL de la página del artículo.

-
&lt;a href="http://www.spip.net/rubrique580.html" rel="directory"&gt;balizas&lt;/a&gt;


		</description>


 <content:encoded><![CDATA[<div class='rss_texte'><p>- <a name="URL_ARTICLE"></a><strong><code class='spip_code' dir='ltr'>#URL_ARTICLE</code></strong> muestra la URL de la página del artículo.</p></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/4vWmiqfJhhg" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/es_article4163.html</feedburner:origLink></item>
<item xml:lang="es">
		<title>{tout}</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/AW8MwT2ELnE/es_article4164.html</link>
		<guid isPermaLink="false">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ánchez</dc:creator>



		<description>tout: los artículos son seleccionados en la totalidad del sitio (en todas las secciones). Útil especialmente para mostrar los artículos más recientes (de todo el sitio) en la página de inicio. [En realidad, el criterio «tout» no se trata informá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><![CDATA[<div class='rss_texte'><p>- <a name="tout"></a><strong><code class='spip_code' dir='ltr'>{tout}</code></strong>: los artículos son seleccionados en la totalidad del sitio (en todas las secciones). Útil especialmente para mostrar los artículos más recientes (de todo el sitio) en la página de inicio. [En realidad, el criterio «tout» no se trata informáticamente: es un recordatorio para el webmaster; se obtiene el mismo resultado si no se indica ninguno de los criterios siguientes.]</p></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/AW8MwT2ELnE" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/es_article4164.html</feedburner:origLink></item>
<item xml:lang="es">
		<title>Las autorreferencias multilingües de la documentación</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/fvAczg_Ss00/es_article4157.html</link>
		<guid isPermaLink="false">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ánchez</dc:creator>



		<description>&lt;p&gt;Este artículo explica por qué es necesario utilizar el atajo &lt;code class='spip_code' dir='ltr'&gt;[{}-&gt;artN] &lt;/code&gt; para referenciar el artículo N de la documentación, cualquiera que sea el idioma del artí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><![CDATA[<div class='rss_texte'><p>Ya que la versión <a href='http://www.spip.net/es_article3839.html' class='spip_in'><span style='color: #273494;'>SPIP 2.0</span></a> ha introducido la posibilidad de sobrecargar el tratamiento de <tt>hreflang</tt> de los atajos tipográficos, el presente sitio dedicado a la documentación multilingüe de SPIP ofrece actualmente un método sencillo para referenciar sus propios artículos.</p> <p>Anteriormente, cuando un artículo A referenciaba un artículo B de la documentación, quienes lo traducían se encontraban ante una situación insatisfactoria y propicia al olvido. Se traducía primero A y se obtenía otro artículo, llamémosle C, dentro del cual se dejaba la referencia a B, sin tener todavía la URL de la traducción de B, ya que aún no existía. Durante el tiempo que esta traducción, llamémosle D, era realizada y publicada, era muy fácil olvidar que C contenía una referencia a B que había que reemplazar por D.</p> <p>En este momento, los redactores de la documentación tienen que utilizar obligatoriamente la notación <code class='spip_code' dir='ltr'>[{}->artN]</code> para referenciar el artículo N de la documentación, y quienes lo traduzcan pueden copiar este atajo sin necesidad de modificarlo en el futuro. En efecto, si el artículo N no existe en la lengua del texto que utiliza este atajo, éste presentará la URL del artículo N (aquel que sea mejor). En cambio, si existe una traducción, se presentará automáticamente la URL de esa traducción. Más exactamente, este comportamiento se observará estrictamente cuando haya una referencia en el espacio privado, mientras que en el espacio público se añadirá la condición suplementaria de que la traducción esté publicada, para presentar una URL disponible en el acto.</p> <p>¿Cómo es esto posible? De hecho, hacía ya mucho tiempo que los atajos de SPIP autorizaban la utilización de llaves para especificar el valor del atributo <tt>hreflang</tt>. No obstante, <a href='http://www.spip.net/es_article3839.html' class='spip_in'><span style='color: #273494;'>SPIP 2.0</span></a> interpreta además un par de llaves vacías como un <tt>hreflang</tt> igual al idioma del texto donde figura el atajo. La sobrecarga introducida por este sitio consiste simplemente en buscar si el artículo designado por el atajo existe en el idioma indicado por el <tt>hreflang</tt>. Si es este el caso, el atajo <code class='spip_code' dir='ltr'>->artN</code> se reemplaza por <code class='spip_code' dir='ltr'>->artP</code>, donde <code class='spip_code' dir='ltr'>P</code> es la traducción de <code class='spip_code' dir='ltr'>N</code>.</p></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/fvAczg_Ss00" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/es_article4157.html</feedburner:origLink></item>
<item xml:lang="fr">
		<title>Structure HTML des formulaires de SPIP 2</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/GgSD6wgKpP8/fr_article3791.html</link>
		<guid isPermaLink="false">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éférences précisant comment les formulaires dans SPIP doivent être structurés Structure HTML Un formulaire de base est ainsi structuré : &lt;div class="formulaire_spip formulaire_editer formulaire_editer_nomformulaire" id="formulaire_editer_nomformulaire-id"&gt; &lt;a id="nomformulaire" name="nomformulaire"&gt;&lt;/a&gt; &lt;form action="#" method="post"&gt; &lt;fieldset&gt; &lt;legend&gt;Une légende&lt;/legend&gt; (...)

-
&lt;a href="http://www.spip.net/rubrique522.html" rel="directory"&gt;Interactivité&lt;/a&gt;


		</description>


 <content:encoded><![CDATA[<div class='rss_chapo'><p>Document de références précisant comment les formulaires dans SPIP doivent être structurés</p></div>
		<div class='rss_texte'><h3 class="spip">Structure HTML</h3>
<p>Un formulaire de base est ainsi structuré :</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='29' class='spip_cadre' dir='ltr'><div class="formulaire_spip formulaire_editer formulaire_editer_nomformulaire" id="formulaire_editer_nomformulaire-id"> <a id="nomformulaire" name="nomformulaire"></a> <form action="#" method="post"> <fieldset> <legend>Une légende</legend> <p class="explication">Un texte d'explication</p> <ul> <li class="editer_nomlabel obligatoire erreur"> <label for="nomlabel">Courriel</label> <em class="aide">#AIDER{arttitre}</em> <p class="explication"> Explication du label</p> <span class="erreur_message">Message d'erreur</span> <input type="type" class="type" name="nomlabel" id="nomlabel" value="" /> </li> </ul> </fieldset> </form> </div></textarea></div></form> <p>Le div englobant porte la classe générique <strong><tt>formulaire_spip</tt></strong>. Les formulaires d'édition de l'espace privé portent de plus la classe <strong><tt>formulaire_editer</tt></strong> indiquant qu'on a affaire à un formulaire d'édition de données d'une base.</p> <p>Le premier fieldset étant optionnel, on peut aussi écrire, sans le fieldset et sans les paragraphes optionnels :</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='17' class='spip_cadre' dir='ltr'><div class="formulaire_spip formulaire_editer formulaire_editer_nomformulaire formulaire_editer_nomformulaire-id"> <a id="nomformulaire" name="nomformulaire"></a> <form action="#" method="post"> <ul> <li class="editer_nomlabel obligatoire"> <label for="nomlabel">Courriel</label> <input type="type" class="type" name="nomlabel" id="nomlabel" value="" /> </li> </ul> </form> </div></textarea></div></form> <h3 class="spip">Les classes spéciales</h3>
<ul class="spip"><li> « <strong><tt>explication</tt></strong> » : pour indiquer un message d'explication (qui porte soit pour l'ensemble des champs, soit sur une étape). Exemple : <code class='spip_code' dir='ltr'><p class="explication"></code>.</li><li> « <strong><tt>attention</tt></strong> » : pour afficher un message concernant un champ d'édition critique. Exemple : <code class='spip_code' dir='ltr'><em class="attention"><:texte_login_precaution:></em></code>.</li><li> « <strong><tt>obligatoire</tt></strong> » : pour signaler un champ obligatoire, à appliquer à l'élément de liste parent. Exemple : <code class='spip_code' dir='ltr'><li class="obligatoire"></code>.</li><li> « <strong><tt>erreur</tt></strong> » : pour signaler une étape en erreur, à appliquer à l'élément de liste parent. Exemple : <code class='spip_code' dir='ltr'><li class="erreur"></code>. chaque erreur bénéficie d'un message explicatif, portant la class « <tt>erreur_message</tt> » : <code class='spip_code' dir='ltr'><span class="erreur_message"></code>.</li></ul>
<h3 class="spip">Cadre englobant</h3>
<p>Ce formulaire peut optionnelement être inclu dans un cadre-formulaire-editer, et peut alors contenir un entete-formulaire :</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'><div class="cadre-formulaire-editer"> <div class="entete-formulaire"></div> <div class="formulaire_editer formulaire_editer_site formulaire_editer_site-#ENV{id_site,nouveau}"></div> </div></textarea></div></form> <h3 class="spip">Gestion des messages réussite/erreur</h3>
<p><strong>Messages globaux</strong></p> <p>Un formulaire comporte obligatoirement deux paragraphes permettant d'afficher les réussites et erreurs globales qui ont pu apparaître à la soumission. Les variables d'environnements <tt>message_ok</tt> et <tt>message_erreur</tt> sont des retours envoyés par SPIP (formulaires CVT).</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'><div class="formulaire_editer formulaire_editer_site formulaire_editer_site-#ENV{id_site,nouveau}"> [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] </div></textarea></div></form> <p><strong>Messages spécifiques</strong></p> <p>Chaque champ de formulaire, encapsulé dans un li peut recevoir un message d'erreur spécifique. Celui-ci est contenu dans la le tableau d'environnement 'erreurs' et peut être obtenu de la sorte :</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'>[(#ENV**{erreurs}|table_valeur{nom_du_champ})]</textarea></div></form> <p>On peut attribuer la classe 'erreur' au li et afficher une erreur spécifique si elle existe de la sorte :</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='9' class='spip_cadre' dir='ltr'><li class="editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]"> <label for="descriptif"><:texte_descriptif_rapide:></label> [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{desctiptif})</span>] <textarea name='descriptif' id='descriptif' rows='2' cols='40'>[(#ENV**{descriptif})]</textarea> </li></textarea></div></form> <h3 class="spip"> Particularités pour les styles css</h3>
<p><strong>Champs input</strong></p> <p>Chaque <code class='spip_code' dir='ltr'><input /></code> différent de <tt>hidden</tt> doit posséder une classe identique à son type (afin de palier à un déficience du navigateur Internet Explorer) :</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'><input type="text" class="text" name="titre" id="titre" value="[(#ENV**{titre})]" /></textarea></div></form> <p><strong>Boutons de soumission</strong></p> <p>Les boutons de soumissions sont inclus dans une boîte <tt>.boutons</tt> (qui peut recevoir plusieurs boutons) :</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'><p class="boutons"><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></div></textarea></div></form> <p><strong>radio/checkbox</strong></p> <p>Dans le cas de bouton radio ou checkbox, on peut ne pas reprendre
tout a fait la même structure, par exemple pour avoir le bouton
avant le label, ou pour avoir la liste radio en horizonal</p> <p>Chaque entrée (radio + label) peut alors être encadrée par un bloc .choix</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='17' class='spip_cadre' dir='ltr'><li class="editer_syndication"> <div class="choix"> <input type='radio' class="radio" name='syndication' value='non' id='syndication_non'[ (#ENV{syndication}|=={non}|?{'checked="checked"'})] /> <label for='syndication_non'><:bouton_radio_non_syndication:></label> </div> <div class="choix"> <input type='radio' class="radio" name='syndication' value='oui' id='syndication_oui'[ (#ENV{syndication}|=={oui}|?{'checked="checked"'})] /> <label for='syndication_oui'><:bouton_radio_syndication:><em>#AIDER{rubsyn}</em></label> </div> </li></textarea></div></form> <p>Par défaut, la liste est verticale. Pour rendre la liste horizontale,
il suffit de spécifier que .champ en question est de type inline :</p> <div style='text-align: left;' class='spip_code' dir='ltr'><code>.formulaire_editer .editer_syndication .choix {display:inline;}</code></div></div>
		<div class='rss_ps'><p>Principes généraux de ces formulaires pour avoir les labels alignés à gauche</p> <p>On se retrouve dans un cas où l'on a :</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='12' class='spip_cadre' dir='ltr'><ul> <li> <label /> <input /> </li> <li> <label /> <em /> <span /> <input /> </li> </ul></textarea></div></form> <p>1) on applique un padding gauche au LI supérieur à la taille du label (ex:120px)</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'>.formulaire_spip li { margin: 0; padding: 10px 10px 10px 130px; clear:both; border-top: 1px solid #[(#GET{foncee}|couleur_eclaircir|couleur_eclaircir)]; }</textarea></div></form> <p> 2) on demande au label d'être flottant et décalé sur la gauche (via un margin négatif)</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'>.formulaire_spip label { width: 120px; float:left; margin-left:-125px; text-align: left; vertical-align: top; }</textarea></div></form> <p>3) lorsqu'un fieldset suit un li, on le décale aussi vers la gauche (seul IE n'en tient pas compte) pour que le fieldset prenne toute la largeur aussi</p> <form action='' method='get'><div>
<input type='hidden' name='exec' value='' />
<textarea readonly='readonly' cols='40' rows='6' class='spip_cadre' dir='ltr'>.formulaire_spip li fieldset { border:1px solid #888; background:white; margin-left:-125px; /* redecalage vers la gauche... IE < 8 ne le prend pas en compte */ }</textarea></div></form></div>
		<img src="http://feeds.feedburner.com/~r/Spip/~4/GgSD6wgKpP8" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/fr_article3791.html</feedburner:origLink></item>
<item xml:lang="fr">
		<title>#VAL</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/IZ_49INI21E/fr_article4026.html</link>
		<guid isPermaLink="false">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ètre qui est retourné 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><![CDATA[<div class='rss_texte'><p>La Balise #VAL prend un paramètre qui est retourné tel quel.</p> <p>Elle permet par exemple d'appliquer des filtres sur des constantes.</p> <p>Par exemple <code class='spip_code' dir='ltr'>[(#VAL{<:chaine_de_langue:>}|image_typo)]</code></p></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/IZ_49INI21E" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/fr_article4026.html</feedburner:origLink></item>
<item xml:lang="fr">
		<title>#ARRAY</title>
		<link>http://feedproxy.google.com/~r/Spip/~3/zYdxwzRpxaQ/fr_article4009.html</link>
		<guid isPermaLink="false">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éfinit un tableau au sens php c'est à dire un ensemble de paires clef/valeur. Un #ARRAY permet ainsi le stockage de valeurs indexées et peut être utilisé, entre autre, associé à l'opérateur IN d'une boucle. Déclarer un tableau : #SETmon_tableau, #ARRAYclef1,valeur1,clef2,valeur2... Récupérer la valeur associée à 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><![CDATA[<div class='rss_chapo'><p>La balise #ARRAY définit un <i>tableau</i> au sens php c'est à dire un ensemble de paires clef/valeur. Un #ARRAY permet ainsi le stockage de valeurs indexées et peut être utilisé, entre autre, associé à l'opérateur IN d'une boucle.</p></div>
		<div class='rss_texte'><p>- <strong>Déclarer un tableau</strong> :</p>
<div style='text-align: left;' class='spip_code' dir='ltr'><code>#SET{mon_tableau, #ARRAY{clef1,valeur1,clef2,valeur2...}}</code></div>
<p>- <strong>Récupérer la valeur associée à une clef</strong> en utilisant le filtre <i>|table_valeur</i> :</p>
<div style='text-align: left;' class='spip_code' dir='ltr'><code>[(#GET{mon_tableau}|table_valeur{clef})]</code></div>
<p>- <strong>Remplir un tableau dynamiquement</strong> en utilisant le filtre <i>|push</i> :</p>
<div style='text-align: left;' class='spip_code' dir='ltr'><code>#SET{mots_choisis, #ARRAY{}}<br /> <BOUCLE_themes(MOTS) {id_article}><br /> [(#SET{mots_choisis, #GET{mots_choisis}|push{#ID_MOT}})]<br /> </BOUCLE_themes></code></div>
<p>ou encore <i>en forçant la valeur des clefs</i> avec la fonction php utilisée comme filtre <i>|array_merge</i> :</p>
<div style='text-align: left;' class='spip_code' dir='ltr'><code>#SET{mots_choisis, #ARRAY{}}<br /> <BOUCLE_themes(MOTS) {id_article}><br /> [(#SET{mots_choisis,<br /> [(#GET{mots_choisis}|array_merge{#ARRAY{<br /> #COMPTEUR_BOUCLE, #ID_MOT<br /> }})]<br /> })]<br /> </BOUCLE_themes></code></div>
<p><strong>Attention <i>1</i> </strong> : le filtre <code class='spip_code' dir='ltr'>|array_merge</code> ne tient pas compte de la clef à forcer (<i>#COMPTEUR_BOUCLE</i> dans l'exemple ci-dessus) si cette clef est de type <i>numérique</i>. Auquel cas deux solutions :</p> <ul class="spip"><li> soit <strong>préfixer</strong> cette clef avec une valeur alphabétique :<code class='spip_code' dir='ltr'>#ARRAY{k#COMPTEUR_BOUCLE, #ID_MOT}</code> ;</li><li> soit <strong>inverser</strong> clef et valeur (à condition que <i>valeur</i> ne soit pas elle aussi numérique) puis appliquer la fonction php comme filtre <strong>|array_flip</strong> sur le tableau final :<code class='spip_code' dir='ltr'>[(#SET{mots_choisis, #GET{mots_choisis}|array_flip)]</code></li></ul>
<p><strong>Attention <i>2</i> </strong> : il faut déclarer le tableau avant son remplissage dans la boucle.</p> <p><i>Note 1 :</i> l'ordre de remplissage du tableau est déterminé par l'ordre d'apparition des données dans la boucle, donc est dépendant du ou des critères de tri qui sont appliqués à celle-ci.
<br /><i>Note 2 :</i><code class='spip_code' dir='ltr'>[(#GET{mon_tableau}|table_valeur{6})]</code> affichera la valeur associée à <i>la clef numéro 6</i> du tableau ; c'est-à-dire <i>la 7ème valeur</i> : la numérotation des clefs débutant à zéro.</p> <p>- <strong>Utiliser le tableau dans une boucle avec l'opérateur <i>IN</i> </strong> :</p>
<div style='text-align: left;' class='spip_code' dir='ltr'><code><BOUCLE_memes_themes(ARTICLES) {id_mot IN #GET{mots_choisis}|sinon{0}}><br /> ...</code></div>
<p>- <strong>Affichage conditionnel en fonction des valeurs d'un tableau</strong> :</p>
<div style='text-align: left;' class='spip_code' dir='ltr'><code>[(#ENV{page}|in_array{#ARRAY{0,article,1,rubrique,2,site}}|oui)<br /> Affichage conditionnel ]</code></div>
<hr class="spip" />
<p>autre exemple avec une variable 'lolo' passée dans l'url :
<br />http://le_site/-ma-rubrique-?lolo=6</p>
<div style='text-align: left;' class='spip_code' dir='ltr'><code>[ Ceci s'affichera si la valeur de la variable 'lolo' passée dans l'url est présente dans un tableau 'les_mots' déclaré et rempli précédemment<br /> (#ENV{lolo}|in_array{#GET{les_mots}}|oui)<br /> celà s'affichera aussi ]</code></div>
<hr class="spip" />
<p>Pour ne pas risquer de générer une erreur « <i>Warning : in_array() [function.in-array] : Wrong datatype for second argument.</i> » dans le cas où la variable passée ne serait pas de type array on pourra utiliser le filtre <strong>|in_any</strong> qui rattrape l'erreur sans afficher l'alerte, et permet d'afficher une valeur alternative.</p>
<div style='text-align: left;' class='spip_code' dir='ltr'><code>[(#VAL{abc}|in_any{#GET{tablo}, truc à faire si GET_tablo n'est pas un array}|oui|?{truc à faire si abc est une valeur de GET_tablo, truc à faire si abc n'est pas une valeur de GET_tablo})]</code></div></div>
		
		<img src="http://feeds.feedburner.com/~r/Spip/~4/zYdxwzRpxaQ" height="1" width="1"/>]]></content:encoded>


		

	<feedburner:origLink>http://www.spip.net/fr_article4009.html</feedburner:origLink></item>



<media:rating>adult</media:rating></channel>

</rss>
