<?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>uZine 3</title>
	<link>http://www.uzine.net/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>




<item xml:lang="fr">
		<title>La gestion des dates</title>
		<link>http://www.uzine.net/article1971.html</link>
		<guid isPermaLink="true">http://www.uzine.net/article1971.html</guid>
		<dc:date>2003-05-26T21:23:12Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>l'&#233;quipe de SPIP</dc:creator>


		<dc:subject>age</dc:subject>
		<dc:subject>age_relatif</dc:subject>

		<description>
&lt;p&gt;[SPIP 1.6] introduit une s&#233;rie de crit&#232;res et de balises pour mieux g&#233;rer les dates des articles. En voici une liste. &lt;br class='autobr' /&gt;
Afficher les dates #DATE est la date de mise en ligne. (Modifiable apr&#232;s la mise en ligne de l'article, de la br&#232;ve, etc. La date d'une rubrique est celle de son &#233;l&#233;ment le plus r&#233;cent.) #DATE_REDAC est la date de premi&#232;re publication. (Modifiable &#224; volont&#233;, disponible sur les articles seulement.) #DATE_MODIF [SPIP 1.5] est la date de derni&#232;re &#233;dition de l'article : pr&#233;cis&#233;ment, il (...)&lt;/p&gt;


-
&lt;a href="http://www.uzine.net/rubrique143.html" rel="directory"&gt; Mise en page : manuel de r&#233;f&#233;rence&lt;/a&gt;

/ 
&lt;a href="http://www.uzine.net/mot180.html" rel="tag"&gt;age&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot181.html" rel="tag"&gt;age_relatif&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;font color=purple&gt;[SPIP 1.6]&lt;/font&gt; introduit une s&#233;rie de crit&#232;res et de balises pour mieux g&#233;rer les dates des articles. En voici une liste.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Afficher les dates&lt;/h3&gt;
&lt;p&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;TT&gt;&lt;B&gt;#DATE&lt;/B&gt;&lt;/TT&gt; est la date de mise en ligne. (Modifiable apr&#232;s la mise en ligne de l'article, de la br&#232;ve, etc. La date d'une rubrique est celle de son &#233;l&#233;ment le plus r&#233;cent.)&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;TT&gt;&lt;B&gt;#DATE_REDAC&lt;/B&gt;&lt;/TT&gt; est la date de premi&#232;re publication. (Modifiable &#224; volont&#233;, disponible sur les articles seulement.)&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;TT&gt;&lt;B&gt;#DATE_MODIF&lt;/B&gt;&lt;/TT&gt; &lt;font color=ff6666&gt;[SPIP 1.5]&lt;/font&gt;&lt;br class='autobr' /&gt; est la date de derni&#232;re &#233;dition de l'article : pr&#233;cis&#233;ment, il s'agit de la derni&#232;re date &#224; laquelle cet article a &#233;t&#233; ouvert en &#233;dition &lt;i&gt;qu'il ait &#233;t&#233; modifi&#233; ou pas.&lt;/i&gt; Pratique dans de nombreux cas, mais pas d'une rigueur scientifique... (Non modifiable, sauf si on veut la fixer &#224; &#171; maintenant &#187; : il suffit alors... d'ouvrir l'article en &#233;dition.)&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;TT&gt;&lt;B&gt;#DATE_NOUVEAUTES&lt;/B&gt;&lt;/TT&gt; &lt;font color=purple&gt;[SPIP 1.6]&lt;/font&gt; permet d'afficher la date du dernier envoi du mail pr&#233;sentant les nouveaut&#233;s.&lt;/p&gt;
&lt;p&gt;Les filtres &lt;code class='spip_code' dir='ltr'&gt;|annee&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;|mois&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;|jour&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;|heure&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;|minutes&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;|secondes&lt;/code&gt;, mais aussi &lt;code class='spip_code' dir='ltr'&gt;|affdate&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;|nom_mois&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;|nom_jour&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;|saison&lt;/code&gt;, etc. s'appliquent pour permettre tous les affichages habituels sous divers formats. (Sans ces filtres, les balises &lt;code class='spip_code' dir='ltr'&gt;#DATE...&lt;/code&gt; s'affichent en effet au format MySQL : &lt;code class='spip_code' dir='ltr'&gt;&#034;2001-12-01&lt;/code&gt; &lt;code class='spip_code' dir='ltr'&gt;03:25:02&#034;&lt;/code&gt;.)&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Contexte de date&lt;/h3&gt;
&lt;p&gt;&lt;font color=purple&gt;[SPIP 1.6]&lt;/font&gt; fournit &#224; toutes les boucles un contexte de date. Si l'on se trouve &#224; l'int&#233;rieur d'une boucle &lt;code class='spip_code' dir='ltr'&gt;(ARTICLES)&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;(BREVES)&lt;/code&gt; ou &lt;code class='spip_code' dir='ltr'&gt;(RUBRIQUES)&lt;/code&gt;, la date en question est la date de publication de l'article, de la br&#232;ve ou la date de derni&#232;re modification de la rubrique.&lt;/p&gt;
&lt;p&gt;Si l'on se trouve au premier niveau du squelette, la date pass&#233;e dans le contexte est la date du jour, sauf si une date est pass&#233;e dans l'URL de la page.&lt;/p&gt;
&lt;p&gt;Dans ce dernier cas, et pour les versions de php sup&#233;rieures &#224; 3.0.12, la date pass&#233;e dans l'URL est analys&#233;e avec la fonction &lt;code class='spip_code' dir='ltr'&gt;strtotime&lt;/code&gt; : ainsi &lt;code class='spip_code' dir='ltr'&gt;?date=2003&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;?date=2003/01&lt;/code&gt; fonctionneront, mais aussi &lt;code class='spip_code' dir='ltr'&gt;date=-1year&lt;/code&gt; (il y a un an), &lt;code class='spip_code' dir='ltr'&gt;?date=1march1970&lt;/code&gt; (articles publi&#233;s le 1er mars 1970), etc.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Crit&#232;re de date, d'&#226;ge, et d'&#226;ge relatif&lt;/h3&gt;
&lt;p&gt;Le crit&#232;re &lt;code class='spip_code' dir='ltr'&gt;{age}&lt;/code&gt; permet de s&#233;lectionner les articles en fonction de la dur&#233;e qui s&#233;pare leur date de publication en ligne avec la date courante. Ainsi &lt;code class='spip_code' dir='ltr'&gt;{age&lt;30}&lt;/code&gt; permettra de ne pas afficher les articles &#226;g&#233;s de plus de 30 jours.&lt;/p&gt;
&lt;p&gt;L'&lt;code class='spip_code' dir='ltr'&gt;{age_relatif}&lt;/code&gt; permet de comparer les dates de publication de deux articles : si l'on vient de s&#233;lectionner un article dans un boucle, une seconde boucle plac&#233;e &#224; l'int&#233;rieur de la premi&#232;re pourra demander les articles publi&#233;s dans la semaine qui pr&#233;c&#232;de celui-ci, via &lt;code class='spip_code' dir='ltr'&gt;{age_relatif&lt;=7}{age_relatif&gt;=0}&lt;/code&gt;, etc.&lt;/p&gt;
&lt;p&gt;Les crit&#232;res &lt;code class='spip_code' dir='ltr'&gt;{age}&lt;/code&gt; et &lt;code class='spip_code' dir='ltr'&gt;{age_relatif}&lt;/code&gt; permettent de distinguer deux articles publi&#233;s le m&#234;me jour (ce n'&#233;tait pas le cas avant &lt;font color=purple&gt;[SPIP 1.6]&lt;/font&gt;). On peut donc d&#233;sormais programmer des boucles pour obtenir l'article &#171; pr&#233;c&#233;dent &#187; ou le &#171; suivant &#187; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='15' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_art(ARTICLES){id_article}&gt; &lt;BOUCLE_precedent(ARTICLES){age_relatif&gt;=0}{par date}{inverse}{1,1}&gt; pr&#233;c&#233;dent : &lt;a href='#URL_ARTICLE'&gt;#TITRE&lt;/a&gt; #DATE &lt;/BOUCLE_precedent&gt; &lt;br /&gt; &lt;b&gt;#TITRE&lt;/b&gt; - #DATE &lt;br /&gt; &lt;BOUCLE_suivant(ARTICLES){age_relatif&lt;0}{par date}{0,1}&gt; suivant : &lt;a href='#URL_ARTICLE'&gt;#TITRE&lt;/a&gt; #DATE &lt;/BOUCLE_suivant&gt; &lt;/BOUCLE_art&gt;&lt;/textarea&gt;
&lt;p&gt;&lt;i&gt;Attention ! Malgr&#233; les apparences les comparaisons de date sont d'un maniement d&#233;licat : en effet, &#224; cause des &#171; dates floues &#187; (un article publi&#233; un mois donn&#233;, sans que le jour soit pr&#233;cis&#233;), le calcul de l'age_relatif peut donner la valeur z&#233;ro dans un sens, et pas dans l'autre ! D'o&#249; la dissym&#233;trie des boucles pr&#233;sent&#233;es ci-dessus : dans un sens on cherche le &#171; second plus r&#233;cent &#187; des articles &lt;code class='spip_code' dir='ltr'&gt;{age_relatif&gt;=0}&lt;/code&gt; (car le plus r&#233;cent, avec la comparaison non-stricte, ne peut &#234;tre que l'article lui-m&#234;me) ; dans l'autre le plus &#226;g&#233; des articles publi&#233;s strictement plus tard.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Les crit&#232;res &lt;code class='spip_code' dir='ltr'&gt;{jour_relatif}&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;{mois_relatif}&lt;/code&gt; et &lt;code class='spip_code' dir='ltr'&gt;{annee_relatif}&lt;/code&gt; fonctionnent comme l'&lt;i&gt;age_relatif&lt;/i&gt;, mais prennent en compte des dates arrondies au jour, au mois et &#224; l'ann&#233;e respectivement ; par exemple, si l'URL comporte la variable &lt;code class='spip_code' dir='ltr'&gt;?date=2003-01-01&lt;/code&gt;, la boucle suivante donnera &#171; tous les les articles du mois de mars 2003 &#187;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'&gt;&lt;h3&gt;Articles de [(#DATE|nom_mois)] [(#DATE|annee)] :&lt;/h3&gt; &lt;BOUCLE_blog(ARTICLES){mois_relatif=0}{par date}{&#034;&lt;br /&gt;&#034;}&gt; &lt;a href='#URL_ARTICLE'&gt;#TITRE&lt;/a&gt; ([(#DATE|jour)]/[(#DATE|nom_mois)] &lt;/BOUCLE_blog&gt;&lt;/textarea&gt;&lt;h3 class=&#034;spip&#034;&gt;La date de r&#233;daction ant&#233;rieure&lt;/h3&gt;
&lt;p&gt;Si vous avez activ&#233; l'utilisation des dates de publication ant&#233;rieure, la plupart des crit&#232;res pr&#233;sent&#233;s ci-dessus fonctionnent : il suffit d'ajouter &lt;code class='spip_code' dir='ltr'&gt;_redac&lt;/code&gt; au crit&#232;re. Ainsi &lt;code class='spip_code' dir='ltr'&gt;{age_redac&gt;365}&lt;/code&gt; affichera les articles dont la date de publication ant&#233;rieure remonte &#224; plus d'un an.&lt;/p&gt;
&lt;p&gt;Si une boucle s&#233;lectionne un article dont l'age_redac est d&#233;fini, une boucle interne comportant le crit&#232;re &lt;code class='spip_code' dir='ltr'&gt;{annee_relatif_redac=0}&lt;/code&gt; ira chercher les articles dont la date de publication ant&#233;rieure appartient &#224; la m&#234;me ann&#233;e.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Un exemple de sommaire de site tri&#233; par date&lt;/h3&gt;
&lt;p&gt;A titre d'exemple, voici comment on peut afficher tous les articles d'un site, tri&#233;s par mois de publication :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='17' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_articlem(ARTICLES){par date}{inverse}&gt; &lt;BOUCLE_premierdumois(ARTICLES){id_article}{doublons}&gt; &lt;BR&gt;&lt;UL&gt;&lt;b&gt; [(#DATE|nom_mois|majuscules)] [(#DATE|annee)] &lt;/b&gt; &lt;li&gt;&lt;a href=&#034;#URL_ARTICLE&#034;&gt;[(#TITRE|couper{50})]&lt;/a&gt; - [(#DATE|jour)]/[(#DATE|mois)]&lt;/li&gt; &lt;/BOUCLE_premierdumois&gt; &lt;BOUCLE_MOIS(ARTICLES) {mois_relatif=0}{doublons}{par date}{inverse} &gt; &lt;li&gt;&lt;a href=&#034;#URL_ARTICLE&#034;&gt;[(#TITRE|couper{50})]&lt;/a&gt; - [(#DATE|jour)]/[(#DATE|mois)]&lt;/li&gt; &lt;/BOUCLE_MOIS&gt; &lt;/ul&gt; &lt;/BOUCLE_articlem&gt;&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les crit&#232;res communs &#224; toutes les boucles</title>
		<link>http://www.uzine.net/article900.html</link>
		<guid isPermaLink="true">http://www.uzine.net/article900.html</guid>
		<dc:date>2001-05-04T22:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>l'&#233;quipe de SPIP</dc:creator>


		<dc:subject>par ...</dc:subject>
		<dc:subject>par hasard</dc:subject>
		<dc:subject>inverse</dc:subject>
		<dc:subject>par num ...</dc:subject>
		<dc:subject>age</dc:subject>
		<dc:subject>age_relatif</dc:subject>
		<dc:subject>debut_...</dc:subject>
		<dc:subject>{a/b}</dc:subject>
		<dc:subject>{a,b}</dc:subject>
		<dc:subject>{&#034;inter&#034;}</dc:subject>

		<description>
&lt;p&gt;Certains crit&#232;res s'appliquent &#224; (presque) tous les types de boucles. Ce sont des crit&#232;res destin&#233;s &#224; restreindre le nombre de r&#233;sultats affich&#233;s ou &#224; indiquer l'ordre d'affichage. On peut sans difficult&#233; combiner plusieurs de ces crit&#232;res de s&#233;lection. &lt;br class='autobr' /&gt;
Classer les r&#233;sultats &lt;br class='autobr' /&gt;
par crit&#232;re_de_classement indique l'ordre de pr&#233;sentation des r&#233;sultats. Ce crit&#232;re de classement correspond &#224; l'une des balises tir&#233;es de la base de donn&#233;es pour chaque type de boucle. Par exemple, on pourra classer les articles par (...)&lt;/p&gt;


-
&lt;a href="http://www.uzine.net/rubrique143.html" rel="directory"&gt; Mise en page : manuel de r&#233;f&#233;rence&lt;/a&gt;

/ 
&lt;a href="http://www.uzine.net/mot176.html" rel="tag"&gt;par ...&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot177.html" rel="tag"&gt;par hasard&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot178.html" rel="tag"&gt;inverse&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot179.html" rel="tag"&gt;par num ...&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot180.html" rel="tag"&gt;age&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot181.html" rel="tag"&gt;age_relatif&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot182.html" rel="tag"&gt;debut_...&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot183.html" rel="tag"&gt;{a/b}&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot184.html" rel="tag"&gt;{a,b}&lt;/a&gt;, 
&lt;a href="http://www.uzine.net/mot185.html" rel="tag"&gt;{&#034;inter&#034;}&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Certains crit&#232;res s'appliquent &#224; (presque) tous les types de boucles. Ce sont des crit&#232;res destin&#233;s &#224; restreindre le nombre de r&#233;sultats affich&#233;s ou &#224; indiquer l'ordre d'affichage. On peut sans difficult&#233; combiner plusieurs de ces crit&#232;res de s&#233;lection.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Classer les r&#233;sultats&lt;/h3&gt;
&lt;p&gt;&lt;tt&gt;{&lt;b&gt;par&lt;/b&gt; &lt;i&gt;crit&#232;re_de_classement&lt;/i&gt;}&lt;/tt&gt; indique l'ordre de pr&#233;sentation des r&#233;sultats. Ce crit&#232;re de classement correspond &#224; l'une des balises tir&#233;es de la base de donn&#233;es pour chaque type de boucle. Par exemple, on pourra classer les articles &lt;code class='spip_code' dir='ltr'&gt;{par date}&lt;/code&gt;, &lt;code class='spip_code' dir='ltr'&gt;{par date_redac}&lt;/code&gt; ou &lt;code class='spip_code' dir='ltr'&gt;{par titre}&lt;/code&gt;. (Notez que, si les balises sont en majuscules, les crit&#232;res de classement sont en minuscules.)&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Cas particulier :&lt;/i&gt; &lt;TT&gt;&lt;B&gt;{par hasard}&lt;/B&gt;&lt;/TT&gt; permet d'obtenir une liste pr&#233;sent&#233;e dans un ordre al&#233;atoire.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Inverser le classement.&lt;/i&gt; De plus, &lt;TT&gt;&lt;B&gt;{inverse}&lt;/B&gt;&lt;/TT&gt; provoque l'affichage du classement invers&#233;. Par exemple &lt;code class='spip_code' dir='ltr'&gt;{par date}&lt;/code&gt; commence par les articles les plus anciens ; avec &lt;code class='spip_code' dir='ltr'&gt;{par date}{inverse}&lt;/code&gt; on commence la liste avec les articles les plus r&#233;cents.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Classer par num&#233;ro.&lt;/i&gt; &lt;font color=&#034;red&#034;&gt;(SPIP 1.3)&lt;/font&gt; Lorsqu'on r&#233;alise le classement selon un &#233;l&#233;ment de texte (par exemple le &lt;i&gt;titre&lt;/i&gt;), le classement est r&#233;alis&#233; par ordre &lt;i&gt;alphab&#233;tique&lt;/i&gt;. Cependant, pour forcer un ordre d'affichage, on peut indiquer un num&#233;ro devant le titre, par exemple : &#171; 1. Mon premier article &#187;, &#171; 2. Deuxi&#232;me article &#187;, &#171; 3. Troisi&#232;me... &#187;, etc ; avec un classement alphab&#233;tique, le classement de ces &#233;l&#233;ments donnerait la s&#233;rie &#171; 1, 10, 11, 2, 3... &#187;. Pour r&#233;tablir le classement selon les num&#233;ros, on peut utiliser le crit&#232;re :&lt;/p&gt;
&lt;p&gt;&lt;tt&gt;&lt;b&gt;{par num&lt;/b&gt; crit&#232;re&lt;b&gt;}&lt;/b&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;Par exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}&gt;&lt;/textarea&gt;
&lt;p&gt;affiche les articles d'une rubrique class&#233;s selon l'ordre chronologique invers&#233; (les plus r&#233;cents au d&#233;but, les plus anciens &#224; la fin), et :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_articles(ARTICLES){id_rubrique}{par titre}&gt;&lt;/textarea&gt;
&lt;p&gt;les affiche selon l'ordre alphab&#233;tique de leur titre ; enfin :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_articles(ARTICLES){id_rubrique}{par num titre}&gt;&lt;/textarea&gt; &lt;p&gt;les affiche selon l'ordre du num&#233;ro de leur titre (remarque : l'option &lt;code class='spip_code' dir='ltr'&gt;{par num titre}&lt;/code&gt; ne fonctionne pas pour les plus anciennes versions de MySQL, ant&#233;rieures &#224; la version 3.23).&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Comparaisons, &#233;galit&#233;s&lt;/h3&gt;
&lt;p&gt;&lt;TT&gt;&lt;B&gt;{&lt;/B&gt;&lt;I&gt;crit&#232;re&lt;/I&gt; &lt;B&gt;&lt;&lt;/B&gt; &lt;I&gt;valeur&lt;/I&gt;&lt;B&gt;}&lt;/B&gt;&lt;/TT&gt; Comparaison avec une valeur fix&#233;e (on peut utiliser &#171; &gt; &#187;, &#171; &lt; &#187;, &#171; = &#187;, &#171; &gt;= &#187;, &#171; &lt;= &#187;. Tous les &lt;i&gt;crit&#232;res de classement&lt;/i&gt; (tels que tir&#233;s de la base de donn&#233;es) peuvent &#233;galement &#234;tre utilis&#233;s pour limiter le nombre de r&#233;sultats.&lt;/p&gt;
&lt;p&gt;Par exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_art(ARTICLES){id_article=5}&gt;&lt;/textarea&gt;
&lt;p&gt;affiche l'article dont le num&#233;ro est 5 (utile pour mettre en vedette un article pr&#233;cis sur la page d'accueil).&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_art(ARTICLES){id_secteur=2}&gt;&lt;/textarea&gt;
&lt;p&gt;affiche les articles du secteur num&#233;ro 2.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Expressions r&#233;guli&#232;res.&lt;/i&gt; Tr&#232;s puissant (mais nettement plus complexe &#224; manipuler), le terme de comparaison &#171; == &#187; introduit une comparaison selon une expression r&#233;guli&#232;re. Par exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_art(ARTICLES){titre==^[aA]}&gt;&lt;/textarea&gt;
&lt;p&gt;s&#233;lectionne les articles dont le titre commence par &#171; a &#187; ou &#171; A &#187;.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;N&#233;gation.&lt;/i&gt; &lt;font color=&#034;red&#034;&gt;(SPIP 1.2)&lt;/font&gt; On peut utiliser la notation &lt;tt&gt;{xxx != yyy}&lt;/tt&gt;, le ! correspondant &#224; la n&#233;gation (op&#233;rateur logique NOT).&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_art(ARTICLES){titre!==^[aA]}&gt;&lt;/textarea&gt;
&lt;p&gt;s&#233;lectionne les articles dont le titre ne commence pas par &#171; a &#187; ou &#171; A &#187;.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_art(ARTICLES){id_secteur != 2}&gt;&lt;/textarea&gt;
&lt;p&gt;s&#233;lectionne les articles qui n'appartiennent pas au secteur num&#233;ro 2.&lt;/p&gt;
&lt;p&gt;Pour faciliter l'utilisation des comparaisons sur les dates, on a ajout&#233; des crit&#232;res :
&lt;br /&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;TT&gt;age&lt;/TT&gt; et &lt;TT&gt;age_redac&lt;/TT&gt; correspondent respectivement &#224; l'anciennet&#233; de la publication et de la premi&#232;re publication d'un article, en jours : &lt;TT&gt;{age&lt;30}&lt;/TT&gt; s&#233;lectionne les &#233;l&#233;m&#233;nts publi&#233;s depuis un mois ;
&lt;br /&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; les crit&#232;res &lt;TT&gt;mois&lt;/TT&gt;, &lt;TT&gt;mois_redac&lt;/TT&gt;, &lt;TT&gt;annee&lt;/TT&gt;, &lt;TT&gt;annee_redac&lt;/TT&gt; permettent de comparer avec des valeurs fixes (&lt;code class='spip_code' dir='ltr'&gt;{annee&lt;=2000}&lt;/code&gt; pour les &#233;l&#233;ments publi&#233;s avant la fin de l'ann&#233;e 2000).&lt;/p&gt;
&lt;p&gt;On peut combiner plusieurs de ces crit&#232;res pour effectuer des s&#233;lections tr&#232;s pr&#233;cises. Par exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_art(ARTICLES){id_secteur=2}{id_rubrique!=3}{age&lt;30}&gt;&lt;/textarea&gt;
&lt;p&gt;affiche les articles du secteur 2, &#224; l'exclusion de ceux de la rubrique 3, et publi&#233;s depuis moins de 30 jours.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Astuce.&lt;/i&gt; Le crit&#232;re &lt;code class='spip_code' dir='ltr'&gt;age&lt;/code&gt; est tr&#232;s pratique pour afficher les articles ou les br&#232;ves dont la date est situ&#233;e &#171; dans le futur &#187;, avec des valeurs n&#233;gatives (&#224; condition d'avoir s&#233;lectionn&#233;, dans la Configuration pr&#233;cise du site, l'option &#171; Publier les articles post-dat&#233;s &#187;). Par exemple, ce crit&#232;re permet de mettre en valeur des &#233;v&#233;nements futurs. &lt;code class='spip_code' dir='ltr'&gt;{age&lt;0}&lt;/code&gt; s&#233;lectionne les articles ou les br&#232;ves dont la date est situ&#233;e dans le futur (&#171; apr&#232;s &#187; aujourd'hui)...&lt;/p&gt;
&lt;p&gt;&lt;font color=&#034;red&#034;&gt;(SPIP 1.3)&lt;/font&gt; &lt;i&gt;&#194;ge par rapport &#224; une date fix&#233;e.&lt;/i&gt; Le crit&#232;re &lt;code class='spip_code' dir='ltr'&gt;age&lt;/code&gt; est calcul&#233; par rapport &#224; la date d'aujourd'hui (ainsi &lt;code class='spip_code' dir='ltr'&gt;{age&lt;30}&lt;/code&gt; correspond aux articles publi&#233;s depuis moins d'un mois par rapport &#224; aujourd'hui). Le crit&#232;re &lt;tt&gt;&lt;b&gt;age_relatif&lt;/b&gt;&lt;/tt&gt; compare la date d'un article ou d'une br&#232;ve &#224; une date &#171; courante &#187; ; par exemple, &#224; l'int&#233;rieur d'une boucle ARTICLES, on conna&#238;t d&#233;j&#224; une date pour chaque r&#233;sultat de la boucle, on peut donc s&#233;lectionner par rapport &#224; cette date (et non plus par rapport &#224; aujourd'hui).&lt;/p&gt;
&lt;p&gt;Par exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='10' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_article_principal(ARTICLES){id_article}&gt; &lt;h1&gt;#TITRE&lt;/h1&gt; &lt;BOUCLE_suivant(ARTICLES){id_rubrique}{age_relatif&lt;=0}{exclus}{par date}{0,1}&gt; Article suivant: #TITRE &lt;/BOUCLE_suivant&gt; &lt;/BOUCLE_article_principal&gt;&lt;/textarea&gt;
&lt;p&gt;la BOUCLE_suivant affiche un seul article de la m&#234;me rubrique, class&#233; par date, dont la date de publication est inf&#233;rieure ou &#233;gale &#224; la date de l'&#171; article_principal &#187; ; c'est-&#224;-dire l'article de la m&#234;me rubrique publi&#233; apr&#232;s l'article principal.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Affichage d'une partie des r&#233;sultats&lt;/h3&gt;
&lt;p&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;TT&gt;&lt;B&gt;{&lt;/B&gt;&lt;I&gt;a&lt;/I&gt;&lt;B&gt;,&lt;/B&gt;&lt;I&gt;b&lt;/I&gt;&lt;B&gt;}&lt;/B&gt;&lt;/TT&gt; o&#249; &lt;i&gt;a&lt;/i&gt; et &lt;i&gt;b&lt;/i&gt; sont des chiffres. Ce crit&#232;re permet de limiter le nombre de r&#233;sultats. &lt;i&gt;a&lt;/i&gt; indique le r&#233;sultat &#224; partir duquel on commence l'affichage (attention, le premier r&#233;sultat est num&#233;rot&#233; 0 - z&#233;ro) ; &lt;i&gt;b&lt;/i&gt; indique le nombre de r&#233;sultats affich&#233;s.&lt;/p&gt;
&lt;p&gt;Par exemple &lt;TT&gt;{0,10}&lt;/TT&gt; affiche les dix premiers r&#233;sultats ; &lt;TT&gt;{4,2}&lt;/TT&gt; affiche les deux r&#233;sultats &#224; partir du cinqui&#232;me (inclus).&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;TT&gt;&lt;B&gt;{debut_&lt;/B&gt;&lt;I&gt;xxx&lt;/I&gt;&lt;B&gt;,&lt;/B&gt;&lt;I&gt;b&lt;/I&gt;&lt;B&gt;}&lt;/B&gt;&lt;/TT&gt; est une variante tr&#232;s &#233;labor&#233;e de la pr&#233;c&#233;dente. Elle permet de faire commencer la limitation des r&#233;sultats par une variable pass&#233;e dans l'URL (celle variable remplace ainsi le &lt;i&gt;a&lt;/i&gt; que l'on indiquait pr&#233;c&#233;demment). C'est un fonctionnement un peu compliqu&#233;, que fort heureusement on n'a pas besoin d'utiliser trop souvent.&lt;/p&gt;
&lt;p&gt;La variable pass&#233;e dans l'URL commence forc&#233;ment par &lt;TT&gt;debut_&lt;i&gt;xxx&lt;/i&gt;&lt;/TT&gt; (o&#249; &lt;i&gt;xxx&lt;/i&gt; est un mot choisi par le webmestre) . Ainsi, pour une page dont l'URL est :&lt;/p&gt;
&lt;p&gt;&lt;TT&gt;petition.php3?id_article=13&amp;debut_signatures=200&lt;/TT&gt;&lt;/p&gt;
&lt;p&gt;avec un squelette (&lt;TT&gt;petition.html&lt;/TT&gt;) contenant par exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_signatures(SIGNATURES){id_article}{debut_signatures,100}&gt;&lt;/textarea&gt;
&lt;p&gt;on obtiendra la liste des 100 signatures &#224; partir de la 200-i&#232;me. Avec l'URL :&lt;/p&gt;
&lt;p&gt;&lt;TT&gt;petition.php3?id_article=13&amp;debut_signatures=300&lt;/TT&gt;&lt;/p&gt;
&lt;p&gt;on obtient la liste des 100 signatures &#224; partir de la 300-i&#232;me.&lt;/p&gt;
&lt;p&gt;&lt;img src='http://www.uzine.net/local/cache-vignettes/L8xH11/puce-32883.gif?1581558833' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;TT&gt;&lt;B&gt;{&lt;/B&gt;&lt;I&gt;a&lt;/I&gt;&lt;B&gt;/&lt;/B&gt;&lt;I&gt;b&lt;/I&gt;&lt;B&gt;}&lt;/B&gt;&lt;/TT&gt; o&#249; &lt;i&gt;a&lt;/i&gt; et &lt;i&gt;b&lt;/i&gt; sont des chiffres. Ce crit&#232;re permet d'afficher une partie &lt;i&gt;a&lt;/i&gt; (proportionnellement) des r&#233;sultats en fonction d'un nombre de &#171; tranches &#187; &lt;i&gt;b&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Par exemple : &lt;TT&gt;{1/3}&lt;/TT&gt; affiche le premier tiers des r&#233;sultats. Ce crit&#232;re est surtout utile pour pr&#233;senter des listes sur plusieurs colonnes. Pour obtenir un affichage sur deux colonnes, il suffit de cr&#233;er une premi&#232;re boucle, affich&#233;e dans une case de tableau, avec le crit&#232;re &lt;code class='spip_code' dir='ltr'&gt;{1/2}&lt;/code&gt; (la premi&#232;re moiti&#233; des r&#233;sultats), puis une seconde boucle dans une seconde case, avec le crit&#232;re &lt;code class='spip_code' dir='ltr'&gt;{2/2}&lt;/code&gt; (la seconde moiti&#233; des r&#233;sultats).&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Attention.&lt;/i&gt; L'utilisation du crit&#232;re &lt;code class='spip_code' dir='ltr'&gt;{doublons}&lt;/code&gt; avec ce crit&#232;re est p&#233;rilleuse. Par exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_prem(ARTICLES){id_rubrique}{1/2}{doublons}&gt; &lt;li&gt; #TITRE &lt;/BOUCLE_prem&gt; &lt;BOUCLE_deux(ARTICLES){id_rubrique}{2/2}{doublons}&gt; &lt;li&gt; #TITRE &lt;/BOUCLE_deux&gt;&lt;/textarea&gt;
&lt;p&gt;n'affichera pas tous les articles de la rubrique ! Imaginons par exemple qu'il y ait au total 20 articles dans notre rubrique. La BOUCLE_prem va afficher la premi&#232;re moiti&#233; des articles, c'est-&#224;-dire les 10 premiers, et interdire (&#224; cause de &lt;code class='spip_code' dir='ltr'&gt;{doublons}&lt;/code&gt;) de les r&#233;utiliser. La BOUCLE_deux, elle, va r&#233;cup&#233;rer la deuxi&#232;me moiti&#233; des articles de cette rubrique &lt;i&gt;qui n'ont pas encore &#233;t&#233; affich&#233;s&lt;/i&gt; par la BOUCLE_prem ; donc, la moiti&#233; des 10 articles suivants, c'est-&#224;-dire les 5 derniers articles de la rubrique. Vous avez donc &#171; perdu &#187; 5 articles dans l'op&#233;ration...&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Affichage &lt;i&gt;entre&lt;/i&gt; les r&#233;sultats&lt;/h3&gt;
&lt;p&gt;&lt;TT&gt;&lt;B&gt;{&#034;&lt;/B&gt;&lt;I&gt;inter&lt;/I&gt;&lt;B&gt;&#034;}&lt;/B&gt;&lt;/TT&gt; permet d'indiquer un code HTML (ici, &lt;i&gt;inter&lt;/i&gt;) ins&#233;r&#233; &lt;i&gt;entre&lt;/i&gt; les r&#233;sultats de la boucle. Par exemple, pour s&#233;parer une liste d'auteurs par une virgule, on indiquera :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;&lt;BOUCLE_auteurs(AUTEURS){id_article}{&#034;, &#034;}&gt;&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
