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

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

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



<item xml:lang="fr">
		<title>Les outils utilis&#233;s pour le d&#233;veloppement</title>
		<link>https://www.spip.net/fr_article6924.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article6924.html</guid>
		<dc:date>2025-01-14T06:58:03Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bricebou, b_b, James, Ma&#239;eul, Matthieu Marcillaud, placido, tofulm</dc:creator>



		<description>
&lt;p&gt;L'&#233;quipe de maintenance utilise ces outils pour maintenir et d&#233;velopper SPIP. Cet article r&#233;sume succinctement le r&#244;le des outils et les liens de documentation. &lt;br class='autobr' /&gt; |Nom de l'outil|R&#244;le|Documentation sp&#233;cifique &#224; la communaut&#233; SPIP| D&#233;veloppement c&#244;t&#233; serveur ou back-end PHP Langage dans lequel SPIP est &#233;crit c&#244;t&#233; serveur PHPdoc Commentaire du code Composer Installer les biblioth&#232;ques de code (library) dont le projet principal a besoin Qualit&#233; de code Easy Coding Standard (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique809.html" rel="directory"&gt;Outils de d&#233;veloppement&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;L'&#233;quipe de maintenance utilise ces outils pour maintenir et d&#233;velopper SPIP. Cet article r&#233;sume succinctement le r&#244;le des outils et les liens de documentation.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id7894_c0'&gt;Nom de l'outil&lt;/th&gt;&lt;th id='id7894_c1'&gt;R&#244;le&lt;/th&gt;&lt;th id='id7894_c2'&gt;Documentation sp&#233;cifique &#224; la communaut&#233; SPIP&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td colspan='3'&gt;&lt;strong&gt;D&#233;veloppement c&#244;t&#233; serveur ou &lt;i&gt;back-end&lt;/i&gt; &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://www.php.net/manual/fr&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;PHP&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Langage dans lequel SPIP est &#233;crit c&#244;t&#233; serveur&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;&lt;a href=&#034;https://docs.phpdoc.org/guide/getting-started/index.html#getting-started&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;PHPdoc&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Commentaire du code&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://getcomposer.org/doc&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Composer&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Installer les biblioth&#232;ques de code (library) dont le projet principal a besoin&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td colspan='3'&gt;&lt;strong&gt;Qualit&#233; de code&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://github.com/easy-coding-standard/easy-coding-standard&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Easy Coding Standard&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Automatiser le respect des r&#233;gles de codages&lt;/td&gt;
&lt;td&gt;&lt;a href='https://www.spip.net/fr_article7086.html' class=&#034;spip_in&#034;&gt;Utiliser ECS&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;&lt;a href=&#034;https://getrector.com/documentation&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Rector&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Corriger du code historique pour le rendre plus durable&lt;/td&gt;
&lt;td&gt;&lt;a href='https://www.spip.net/fr_article7090.html' class=&#034;spip_in&#034;&gt;Utiliser Rector&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://www.php-fig.org/psr/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;PSR&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Bonne pratiques de codage&lt;/td&gt;
&lt;td&gt;&lt;a href='https://www.spip.net/fr_rubrique783.html' class=&#034;spip_in&#034;&gt;Conventions&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;&lt;a href=&#034;https://phpunit.de/documentation.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;PHPUnit&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Tester le code&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://phpstan.org/user-guide/getting-started&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;PHPStan&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Analyser le code&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;&lt;a href=&#034;https://refactoring.guru/design-patterns/php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Refactoring Guru&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Inspiration pour transformer le code proc&#233;dural historique en code POO et pour gagner en robustesse&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://12factor.net/fr/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;The Twelve-Factor App&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Inspiration : une m&#233;thodologie pour concevoir des logiciels en tant que service&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td colspan='3'&gt;&lt;strong&gt;D&#233;veloppement c&#244;t&#233; navigateur ou &lt;i&gt;front-end&lt;/i&gt; &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://javascript.info/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Javascript&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Langage pour l'affichage dynamique de fragments de page (front-end)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;&lt;a href=&#034;https://api.jquery.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;jQuery&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Biblioth&#232;que longtemps rest&#233;e comme r&#233;f&#233;rence (en voie de migration)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://docs.npmjs.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;npm&lt;/a&gt; + &lt;a href=&#034;https://bun.sh/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Bun&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Installer des modules ou biblioth&#232;ques de code (library)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td colspan='3'&gt;&lt;strong&gt;Qualit&#233; de code&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;&lt;a href=&#034;https://bun.sh/docs/cli/test&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;bun:test&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Tester le code&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;&lt;a href=&#034;https://biomejs.dev/guides/getting-started/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;biomejs&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Normaliser le code (linter)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id8889_c0' colspan='3'&gt;Versionnage&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id8889_c0'&gt;&lt;a href=&#034;https://git-scm.com/doc&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Git&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Suivi de version de code&lt;/td&gt;
&lt;td&gt;&lt;a href=&#034;https://git-scm.com/book/fr/v2&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Consulter un livre en fran&#231;ais&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id8889_c0'&gt;&lt;a href=&#034;https://about.gitlab.com/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Gitlab&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Plateforme de d&#233;veloppement&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id8889_c0'&gt;&lt;a href=&#034;https://semver.org/lang/fr/spec/v2.0.0.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;S&#233;mantique&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Comment fonctionnent les versions de SPIP et de ses d&#233;pendances&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id8889_c0'&gt;&lt;a href=&#034;https://www.conventionalcommits.org/fr/v1.0.0/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Conventionnel commit&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Des messages des commits signifiants, lisibles pour l'humain&lt;/td&gt;
&lt;td&gt;Voir aussi &lt;a href='https://www.spip.net/fr_article6824.html' class=&#034;spip_in&#034;&gt;&#201;crire un message de commit&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id8889_c0'&gt;&lt;a href=&#034;https://keepachangelog.com/fr/1.0.0/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Changelog&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Permettre de voir pr&#233;cis&#233;ment quels changements notables ont &#233;t&#233; faits entre chaque publication (release) d'un projet&lt;/td&gt;
&lt;td&gt;Voir aussi &lt;a href='https://www.spip.net/fr_article6825.html' class=&#034;spip_in&#034;&gt;Tenir un CHANGELOG&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Nous d&#233;veloppons et utilisons aussi nos propres outils :&lt;/p&gt;
&lt;p&gt;- &lt;a href=&#034;https://git.spip.net/spip-contrib-outils/spip-releases&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;spip-releases&lt;/a&gt;
&lt;br /&gt;- &lt;a href=&#034;https://git.spip.net/spip-league/easy-coding-standard&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;spip-league/ecs&lt;/a&gt;
&lt;br /&gt;- &lt;a href=&#034;https://git.spip.net/spip-league/rector&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;spip-league/rector&lt;/a&gt;
&lt;br /&gt;- &lt;a href=&#034;https://git.spip.net/spip-league/sdk&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;spip-league/sdk&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Comprendre les versions de SPIP</title>
		<link>https://www.spip.net/fr_article6908.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article6908.html</guid>
		<dc:date>2024-11-20T14:18:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Comment comprendre les num&#233;ros de version de SPIP ? Comment savoir s'il faut mettre &#224; jour ? &lt;br class='autobr' /&gt; Versionnement s&#233;mantique Depuis 2024, SPIP a adopt&#233; le versionnement s&#233;mantique. &lt;br class='autobr' /&gt;
Voici un r&#233;sum&#233; de son fonctionnement, pour les d&#233;tails on se r&#233;ferera &#224; la documentation officielle . &lt;br class='autobr' /&gt;
Chaque version de SPIP est d&#233;sign&#233;e par 3 nombres, s&#233;par&#233;s par un point : x.y.z. &lt;br class='autobr' /&gt;
Lorsque le z est augment&#233;, c'est une mise &#224; jour corrective. Cela peut corriger des bugs ou bien une faille de s&#233;curit&#233;. La (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique155.html" rel="directory"&gt;&#201;volutions et mises &#224; jour&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Comment comprendre les num&#233;ros de version de SPIP ? Comment savoir s'il faut mettre &#224; jour ?&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-3&#034; id=&#034;nav69f22ef239d407.59146527&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Versionnement-semantique&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Versionnement-semantique&#034; class=&#034;spip_ancre&#034;&gt;Versionnement s&#233;mantique&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Les-surcharges-et-le-versionnement-semantique&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Les-surcharges-et-le-versionnement-semantique&#034; class=&#034;spip_ancre&#034;&gt;Les surcharges et le versionnement s&#233;mantique&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Notions-de-branche&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Notions-de-branche&#034; class=&#034;spip_ancre&#034;&gt;Notions de branche&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Versionnement-semantique&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Versionnement-semantique'&gt;Versionnement s&#233;mantique&lt;a class='sommaire-back sommaire-back-3' href='#s-Versionnement-semantique' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Depuis 2024, SPIP a adopt&#233; le versionnement s&#233;mantique.&lt;/p&gt;
&lt;p&gt;Voici un r&#233;sum&#233; de son fonctionnement, &lt;a href=&#034;https://semver.org/lang/fr/#gestion-s%C3%A9mantique-de-version-200&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;pour les d&#233;tails on se r&#233;ferera &#224; la documentation officielle&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;Chaque version de SPIP est d&#233;sign&#233;e par 3 nombres, s&#233;par&#233;s par un point : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;x.y.z&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Lorsque le z est augment&#233;, c'est une mise &#224; jour corrective. Cela peut corriger des bugs ou bien une faille de s&#233;curit&#233;. La fr&#233;quence de sortie des versions correctives est d'environ une fois par mois.&lt;/p&gt;
&lt;p&gt;Lorsque le y est augment&#233;, c'est une mise &#224; jour mineure. De nouvelles fonctionnalit&#233;s sont ajout&#233;es et des bugs r&#233;solus, mais il n'y a pas besoin d'adapter son code / ses squelettes. La fr&#233;quence de sortie des versions mineures est approximativement une fois tous les six mois.&lt;/p&gt;
&lt;p&gt;Lorsque le x est augment&#233;, c'est une mise &#224; jour majeure. Des nouvelles fonctionnalit&#233;s sont ajout&#233;es, d'anciennes sont retir&#233;es, certaines changent. Il peut y avoir besoin d'adapter son code / ses squelettes. Une note de version indique les changements &#224; faire. La fr&#233;quence de sortie des versions majeures est d'environ tous les 24 mois.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://blog.spip.net/-Release-.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Les mises &#224; jours sont annonc&#233;es sur le blog de SPIP&lt;/a&gt;. Il est fortement conseill&#233; de &lt;a href=&#034;https://discuter.spip.net/c/spip-ann/13&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;s'inscrire &#224; la mailing list d'annonce&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Les-surcharges-et-le-versionnement-semantique&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Les-surcharges-et-le-versionnement-semantique'&gt;Les surcharges et le versionnement s&#233;mantique&lt;a class='sommaire-back sommaire-back-3' href='#s-Les-surcharges-et-le-versionnement-semantique' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le principe du versionnement s&#233;mantique permet de s'assurer qu'il n'y ait pas de rupture de compatibilit&#233; / de changement &#224; faire lorsqu'on augmente un y ou un z.&lt;/p&gt;
&lt;p&gt;Toutefois, il est possible dans SPIP de surcharger des squelettes. Mais attention aux surcharges des squelettes de l'espace priv&#233;. Ce m&#233;canisme de surcharge, puissant, est ici d&#233;rogatoire au versionnement s&#233;mantique : il peut y avoir des modifications dans les param&#232;tres pass&#233;s &#224; un squelette lors d'une mise &#224; jour corrective ou mineure.&lt;/p&gt;
&lt;p&gt;Une personne surchargeant un squelette de SPIP le fait donc &#224; ses risques et p&#233;rils, et en conscience.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Notions-de-branche&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Notions-de-branche'&gt;Notions de branche&lt;a class='sommaire-back sommaire-back-3' href='#s-Notions-de-branche' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Une combinaison d'un x et d'un y correspond &#224; une branche de SPIP. En g&#233;n&#233;ral, deux branches sont maintenues en m&#234;me temps, permettant ainsi aux personnes de prendre le temps de migrer. Voir &#224; ce sujet l'article &lt;a href='https://www.spip.net/fr_article6500.html' class=&#034;spip_in&#034;&gt;Versions maintenues&lt;/a&gt;.&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>SPIP 4.3</title>
		<link>https://www.spip.net/fr_article6871.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article6871.html</guid>
		<dc:date>2024-07-26T10:40:37Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>b_b, jack, Ma&#239;eul, Matthieu Marcillaud</dc:creator>



		<description>
&lt;p&gt;Compatibilit&#233; PHP 7.4 &#224; 8.3 &lt;br class='autobr' /&gt;
SPIP 4.3 n&#233;cessite PHP 7.4 minimum, et fonctionne jusqu'&#224; PHP 8.3. Il n&#233;cessite les extensions PHP : sodium, Zlib, Zip et Phar. &lt;br class='autobr' /&gt;
Changements apport&#233;s par SPIP 4.3 &lt;br class='autobr' /&gt;
Les changements les plus importants concernent le bandeau de l'espace priv&#233; plus condens&#233;, le formulaire de changement de statut des objets &#233;ditoriaux revu, les filtres d'image plus rapides, une &#233;criture plus inclusive de certaines formulations, l'envoi d'une notification par mail lorsqu'une mise (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique785.html" rel="directory"&gt;Anciennes versions&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-14&#034; id=&#034;nav69f22ef23e25a4.83304750&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Compatibilite-PHP-7-4-a-8-3&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Compatibilite-PHP-7-4-a-8-3&#034; class=&#034;spip_ancre&#034;&gt;Compatibilit&#233; PHP 7.4 &#224; 8.3&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Changements-apportes-par-SPIP-4-3&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Changements-apportes-par-SPIP-4-3&#034; class=&#034;spip_ancre&#034;&gt;Changements apport&#233;s par SPIP 4.3&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Le-bandeau-de-l-espace-prive-prend-moins-de-place-en-hauteur&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Le-bandeau-de-l-espace-prive-prend-moins-de-place-en-hauteur&#034; class=&#034;spip_ancre&#034;&gt;Le bandeau de l'espace priv&#233; prend moins de place en hauteur&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-La-creation-rapide-des-contenus-passe-dans-un-menu-depliant&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#La-creation-rapide-des-contenus-passe-dans-un-menu-depliant&#034; class=&#034;spip_ancre&#034;&gt;La cr&#233;ation rapide des contenus passe dans un menu d&#233;pliant&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Le-formulaire-de-changement-de-statut-est-revu&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Le-formulaire-de-changement-de-statut-est-revu&#034; class=&#034;spip_ancre&#034;&gt;Le formulaire de changement de statut est revu&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Un-message-avertissant-d-une-nouvelle-version-disponible&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Un-message-avertissant-d-une-nouvelle-version-disponible&#034; class=&#034;spip_ancre&#034;&gt;Un message avertissant d'une nouvelle version disponible&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Ajouts&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Ajouts&#034; class=&#034;spip_ancre&#034;&gt;Ajouts&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Changements&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Changements&#034; class=&#034;spip_ancre&#034;&gt;Changements&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Corrections&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Corrections&#034; class=&#034;spip_ancre&#034;&gt;Corrections&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Depreciations&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Depreciations&#034; class=&#034;spip_ancre&#034;&gt;D&#233;pr&#233;ciations&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Retrait&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Retrait&#034; class=&#034;spip_ancre&#034;&gt;Retrait&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Plugins-dist&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Plugins-dist&#034; class=&#034;spip_ancre&#034;&gt;Plugins-dist&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Images&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Images&#034; class=&#034;spip_ancre&#034;&gt;Images&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Plugins-compatibles&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Plugins-compatibles&#034; class=&#034;spip_ancre&#034;&gt;Plugins compatibles&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Compatibilite-PHP-7-4-a-8-3&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Compatibilite-PHP-7-4-a-8-3'&gt; Compatibilit&#233; PHP 7.4 &#224; 8.3 &lt;a class='sommaire-back sommaire-back-14' href='#s-Compatibilite-PHP-7-4-a-8-3' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SPIP 4.3 n&#233;cessite PHP 7.4 minimum, et fonctionne jusqu'&#224; PHP 8.3.&lt;br class='autobr' /&gt;
Il n&#233;cessite les extensions PHP : sodium, Zlib, Zip et Phar.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Changements-apportes-par-SPIP-4-3&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Changements-apportes-par-SPIP-4-3'&gt;Changements apport&#233;s par SPIP 4.3&lt;a class='sommaire-back sommaire-back-14' href='#s-Changements-apportes-par-SPIP-4-3' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Les changements les plus importants concernent&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le bandeau de l'espace priv&#233; plus condens&#233;,&lt;/li&gt;&lt;li&gt; le formulaire de changement de statut des objets &#233;ditoriaux revu,&lt;/li&gt;&lt;li&gt; les filtres d'image plus rapides,&lt;/li&gt;&lt;li&gt; une &#233;criture plus inclusive de certaines formulations,&lt;/li&gt;&lt;li&gt; l'envoi d'une notification par mail lorsqu'une mise &#224; jour de SPIP est disponible, ainsi qu'une indication visuelle plus grande dans l'espace priv&#233;,&lt;/li&gt;&lt;/ul&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau2 sommaire-section_h3&#034; aria-labelledby=&#034;Le-bandeau-de-l-espace-prive-prend-moins-de-place-en-hauteur&#034;&gt;&lt;h3 class=&#034;h3&#034; id='Le-bandeau-de-l-espace-prive-prend-moins-de-place-en-hauteur'&gt; Le bandeau de l'espace priv&#233; prend moins de place en hauteur&lt;a class='sommaire-back sommaire-back-14' href='#s-Le-bandeau-de-l-espace-prive-prend-moins-de-place-en-hauteur' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class='spip_document_4208 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/bandeau_espace_prive__4.3.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH90/bandeau_espace_prive__4.3-3e058.png?1721990759' width='500' height='90' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau2 sommaire-section_h3&#034; aria-labelledby=&#034;La-creation-rapide-des-contenus-passe-dans-un-menu-depliant&#034;&gt;&lt;h3 class=&#034;h3&#034; id='La-creation-rapide-des-contenus-passe-dans-un-menu-depliant'&gt; La cr&#233;ation rapide des contenus passe dans un menu d&#233;pliant&lt;a class='sommaire-back sommaire-back-14' href='#s-La-creation-rapide-des-contenus-passe-dans-un-menu-depliant' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class='spip_document_4207 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/bandeau_espace_prive__4.3-menu_cre_er.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH157/bandeau_espace_prive__4.3-menu_cre_er-95aee.png?1721990759' width='500' height='157' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau2 sommaire-section_h3&#034; aria-labelledby=&#034;Le-formulaire-de-changement-de-statut-est-revu&#034;&gt;&lt;h3 class=&#034;h3&#034; id='Le-formulaire-de-changement-de-statut-est-revu'&gt; Le formulaire de changement de statut est revu &lt;a class='sommaire-back sommaire-back-14' href='#s-Le-formulaire-de-changement-de-statut-est-revu' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class='spip_document_4209 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;61&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH385/formulaire_instituer_4.3-ba621.png?1721990759' width='500' height='385' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-4209 '&gt;&lt;strong&gt;Pr&#233;sentation initiale du formulaire de changement de statut
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;div class='spip_document_4210 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;43&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/formulaire_instituer_4.3-deplie.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH747/formulaire_instituer_4.3-deplie-6d66c.png?1721990759' width='500' height='747' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-4210 '&gt;&lt;strong&gt;Formulaire de changement de statut d&#233;pli&#233;
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau2 sommaire-section_h3&#034; aria-labelledby=&#034;Un-message-avertissant-d-une-nouvelle-version-disponible&#034;&gt;&lt;h3 class=&#034;h3&#034; id='Un-message-avertissant-d-une-nouvelle-version-disponible'&gt; Un message avertissant d'une nouvelle version disponible &lt;a class='sommaire-back sommaire-back-14' href='#s-Un-message-avertissant-d-une-nouvelle-version-disponible' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class='spip_document_4211 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/info_maj_nouvelle.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH72/info_maj_nouvelle-8cd08.png?1721990759' width='500' height='72' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Cette version apporte &#233;galement d'autres am&#233;liorations ou corrections de bugs.&lt;/p&gt;
&lt;/section&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Ajouts&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Ajouts'&gt; Ajouts &lt;a class='sommaire-back sommaire-back-14' href='#s-Ajouts' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Afficher un encart pour signaler les nouvelles versions dans toutes les pages de l'espace priv&#233; pour les webmestres, et un bouton pointant vers &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_loader&lt;/code&gt;(voir &lt;a href='https://www.spip.net/fr_article5705.html' class=&#034;spip_in&#034; hreflang=&#034;fr&#034;&gt;Utiliser spip_loader&lt;/a&gt;) s'il est pr&#233;sent&lt;/li&gt;&lt;li&gt; Notifier par email les webmestres du site lorsque SPIP dispose d'une mise &#224; jour (d&#233;sactivable avec la constante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_MAJ_NOTIF_EMAILS&lt;/code&gt;, &lt;a href='https://www.spip.net/fr_article6872.html' class=&#034;spip_in&#034;&gt;voir la documentation&lt;/a&gt;)&lt;/li&gt;&lt;li&gt; Am&#233;liorer l'ergonomie du formulaire instituer (changement de statut d'un objet &#233;ditorial, voir plus haut)&lt;/li&gt;&lt;li&gt; Le formulaire d'identit&#233; du site permet de configurer la timezone utilis&#233;e&lt;/li&gt;&lt;li&gt; Nouveau filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|balise_img_svg&lt;/code&gt; pour ins&#233;rer une image ou un SVG inline sans savoir d'avance le format&lt;/li&gt;&lt;li&gt; Ajouter une option &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;find_all_in_path()&lt;/code&gt; pour renvoyer tous les fichiers r&#233;pondant &#224; un pattern&lt;/li&gt;&lt;li&gt; Filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|propre&lt;/code&gt; qui applique &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;propre()&lt;/code&gt; &amp; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;safehtml()&lt;/code&gt; (cela permet de d&#233;s-&#233;chapper le code de confiance des mod&#232;les)&lt;/li&gt;&lt;li&gt; D&#233;bugueur : Afficher le nombre d'occurrences et temps total des inclusions de squelettes&lt;/li&gt;&lt;li&gt; La constante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_DEBUG_MINIPRES&lt;/code&gt; d&#233;finie &#224; true active l'affichage d'un debug visible lorsqu'une erreur de type Minipage survient&lt;/li&gt;&lt;li&gt; Pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;get_spip_doc&lt;/code&gt; pour manipuler le r&#233;sultat natif de la fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;get_spip_doc()&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Changements&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Changements'&gt; Changements &lt;a class='sommaire-back sommaire-back-14' href='#s-Changements' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Le bandeau de navigation de l'espace priv&#233; est r&#233;duit en hauteur (2 lignes au lieu de 3, voir plus haut)&lt;/li&gt;&lt;li&gt; Le menu de cr&#233;ation rapide passe en menu d&#233;roulant avec des labels explicites (voir plus haut)&lt;/li&gt;&lt;li&gt; &#201;criture plus inclusive de certaines formulations&lt;/li&gt;&lt;li&gt; Optimisation des boucles avec pagination, en for&#231;ant une clause limit automatique dessus&lt;/li&gt;&lt;li&gt; Dans un plugin, si l'attribut logo d'un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;paquet.xml&lt;/code&gt; est absent, et qu'il existe un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{prefixe}.svg&lt;/code&gt; dans le plugin, il est utilis&#233; comme logo&lt;/li&gt;&lt;li&gt; Les fonctions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;extraire_balise()&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;extraire_balises()&lt;/code&gt; peuvent g&#233;rer des balises imbriqu&#233;es&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Corrections&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Corrections'&gt; Corrections &lt;a class='sommaire-back sommaire-back-14' href='#s-Corrections' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Am&#233;liorer la conformit&#233; HTML5&lt;/li&gt;&lt;li&gt; Ic&#244;ne T&#226;ches de fond qui n'&#233;voque pas les bases de donn&#233;es&lt;/li&gt;&lt;li&gt; Refactoring de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ecrire_fichier()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Combinaison des crit&#232;res &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{pagination}&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{limit}&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Ne pas conserver un double des fichiers calcul&#233;s inchang&#233;s (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PRODUIRE_FOND&lt;/code&gt;)&lt;/li&gt;&lt;li&gt; Mise &#224; jour de la biblioth&#232;que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mediaelement&lt;/code&gt; en version 7.0.3&lt;/li&gt;&lt;li&gt; Correction de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;inserer_attribut()&lt;/code&gt; sur un cas d&#233;rogatoire : les balises&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;img&gt;&lt;/code&gt; (m&#234;me non autofermante)&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Depreciations&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Depreciations'&gt; D&#233;pr&#233;ciations &lt;a class='sommaire-back sommaire-back-14' href='#s-Depreciations' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; D&#233;pr&#233;cier les fonctions d&#233;su&#232;tes de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ecrire/inc/presentation&lt;/code&gt;&lt;/li&gt;&lt;li&gt; La globale &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;auteur_session&lt;/code&gt; (d&#233;pr&#233;ci&#233;e depuis SPIP 2.0 !) sera supprim&#233;e en SPIP 5.0. Utiliser &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;visiteur_session&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; D&#233;pr&#233;cier la classe &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.label&lt;/code&gt; au profit de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.editer-label&lt;/code&gt; dans les formulaires&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Retrait&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Retrait'&gt; Retrait &lt;a class='sommaire-back sommaire-back-14' href='#s-Retrait' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Retrait des options d'affichage des ic&#244;nes dans les pr&#233;f&#233;rences&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Plugins-dist&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Plugins-dist'&gt;Plugins-dist&lt;a class='sommaire-back sommaire-back-14' href='#s-Plugins-dist' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau2 sommaire-section_h3&#034; aria-labelledby=&#034;Images&#034;&gt;&lt;h3 class=&#034;h3&#034; id='Images'&gt; Images&lt;a class='sommaire-back sommaire-back-14' href='#s-Images' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Les performances du plugin-dist Filtres Images ont &#233;t&#233; tr&#232;s nettement optimis&#233;es, certains filtres images sont d&#233;sormais jusqu'&#224; 10 fois plus rapides gr&#226;ce &#224; l'utilisation des fonctions natives de PHP GD&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Un nouveau filtre, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_oriente_selon_exif&lt;/code&gt; pour r&#233;orienter automatiquement une image selon son exif&lt;/li&gt;&lt;li&gt; Les filtres d'images tel que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_recadre&lt;/code&gt; r&#233;orientent l'image selon l'exif d'orientation&lt;/li&gt;&lt;li&gt; Optimisation des filtres &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_aplatir&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_renforcement&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_flou&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_sepia&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_flip_vertical&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_flip_horizontal&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_nb&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_gamma&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_rotation&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Correction du param&#232;tre crop de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_rotation&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Plugins-compatibles&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Plugins-compatibles'&gt;Plugins compatibles&lt;a class='sommaire-back sommaire-back-14' href='#s-Plugins-compatibles' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;D&#232;s sa sortie SPIP 4.3 b&#233;n&#233;ficie d'environ 700 plugins compatibles, ce qui facilitera les mises &#224; jour.&lt;br class='autobr' /&gt;
Voir : &lt;a href='https://www.spip.net/fr_article1318.html#Etape-2-Mettez-a-jour-vos-plugins' class=&#034;spip_in&#034;&gt;Effectuer une mise &#224; jour&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title> Utiliser les plugins</title>
		<link>https://www.spip.net/fr_article6841.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article6841.html</guid>
		<dc:date>2023-12-04T18:46:13Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cy_altern, erational, jack, Ma&#239;eul</dc:creator>



		<description>&lt;p&gt;SPIP est fourni avec un nombre de fonctionnalit&#233;s standard (le noyau ou &#034;core&#034;).&lt;/p&gt;
&lt;p&gt;Il arrive souvent qu'on ait besoin d'autres fonctionnalit&#233;s comme par exemple, un agenda, une newsletter .... Pour r&#233;pondre &#224; ces besoins particuliers, SPIP dispose d'une syst&#232;me de plugins (parfois appel&#233; &#034;extensions&#034;) &#224; travers une API normalis&#233;e qui permet de se brancher (&#034;plug&#034; en anglais) au syst&#232;me pour y ajouter ou compl&#233;ter des fonctions.&lt;/p&gt;

-
&lt;a href="https://www.spip.net/fr_rubrique484.html" rel="directory"&gt;Pour aller plus loin&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-13&#034; id=&#034;nav69f22ef2414754.26404003&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Qu-est-ce-qu-un-plugin&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Qu-est-ce-qu-un-plugin&#034; class=&#034;spip_ancre&#034;&gt;Qu'est ce qu'un plugin ?&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Organisation-de-plugins&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Organisation-de-plugins&#034; class=&#034;spip_ancre&#034;&gt;Organisation de plugins&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Utiliser-SVP-le-gestionnaire-des-plugins-de-SPIP&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Utiliser-SVP-le-gestionnaire-des-plugins-de-SPIP&#034; class=&#034;spip_ancre&#034;&gt;Utiliser SVP le gestionnaire des plugins de SPIP&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Gerer-les-depots&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Gerer-les-depots&#034; class=&#034;spip_ancre&#034;&gt;G&#233;rer les d&#233;p&#244;ts&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Chercher-et-trouver-le-plugin&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Chercher-et-trouver-le-plugin&#034; class=&#034;spip_ancre&#034;&gt;Chercher et trouver le plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Ajouter-un-plugin&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Ajouter-un-plugin&#034; class=&#034;spip_ancre&#034;&gt;Ajouter un plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Mettre-a-jour-un-plugin&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Mettre-a-jour-un-plugin&#034; class=&#034;spip_ancre&#034;&gt;Mettre &#224; jour un plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Desactiver-Desinstaller-et-ou-Supprimer&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Desactiver-Desinstaller-et-ou-Supprimer&#034; class=&#034;spip_ancre&#034;&gt;D&#233;sactiver, D&#233;sinstaller et/ou Supprimer&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Methodes-alternatives-pour-gerer-les-plugins&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Methodes-alternatives-pour-gerer-les-plugins&#034; class=&#034;spip_ancre&#034;&gt;M&#233;thodes alternatives pour g&#233;rer les plugins&lt;/a&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Ajouter-un-plugin-manuellement-via-l-interface-SVP&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Ajouter-un-plugin-manuellement-via-l-interface-SVP&#034; class=&#034;spip_ancre&#034;&gt;Ajouter un plugin manuellement via l'interface SVP&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Gestion-des-plugins-par-FTP&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Gestion-des-plugins-par-FTP&#034; class=&#034;spip_ancre&#034;&gt;Gestion des plugins par FTP&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Gestion-des-plugins-par-SPIP-Cli&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Gestion-des-plugins-par-SPIP-Cli&#034; class=&#034;spip_ancre&#034;&gt;Gestion des plugins par SPIP-Cli&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Creer-son-plugin&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Creer-son-plugin&#034; class=&#034;spip_ancre&#034;&gt;Cr&#233;er son plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Qu-est-ce-qu-un-plugin&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Qu-est-ce-qu-un-plugin'&gt;Qu'est ce qu'un plugin ?&lt;a class='sommaire-back sommaire-back-13' href='#s-Qu-est-ce-qu-un-plugin' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SPIP est fourni avec un nombre de fonctionnalit&#233;s standard (le noyau ou &#034;core&#034;).&lt;/p&gt;
&lt;p&gt;Il arrive souvent qu'on ait besoin d'autres fonctionnalit&#233;s comme par exemple un agenda, une newsletter .... Pour r&#233;pondre &#224; ces besoins particuliers, SPIP dispose d'un syst&#232;me de plugins (parfois appel&#233; &#034;extensions&#034;) &#224; travers une API normalis&#233;e qui permet de se brancher (&#034;plug&#034; en anglais) au syst&#232;me pour y ajouter ou compl&#233;ter des fonctions.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Organisation-de-plugins&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Organisation-de-plugins'&gt;Organisation de plugins &lt;a class='sommaire-back sommaire-back-13' href='#s-Organisation-de-plugins' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Il existe deux types de plugins :&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;Les plugins fournis par d&#233;faut dans SPIP&lt;/strong&gt;&lt;br class='autobr' /&gt;
Ils sont plac&#233;s dans le r&#233;pertoire r&#233;serv&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./plugins-dist/&lt;/code&gt;. Ces &#034;plugins-dist&#034; sont verrouill&#233;s et il n'est pas possible de les d&#233;sinstaller. Ils sont mis &#224; jour lors de chaque mise &#224; jour de SPIP.&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;Les plugins sp&#233;cifiques au site&lt;/strong&gt;&lt;br class='autobr' /&gt;
Ils sont plac&#233;s dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./plugins/&lt;/code&gt;&lt;br class='autobr' /&gt;
Si vous souhaitez pouvoir les installer et mettre &#224; jour automatiquement, il faudra cr&#233;er un sous-r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./plugins/auto/&lt;/code&gt;. (Ce sous-r&#233;pertoire est automatiquement cr&#233;&#233; si vous installez SPIP via le &lt;a href='https://www.spip.net/fr_article5705.html' class=&#034;spip_in&#034; hreflang=&#034;fr&#034;&gt;spip-loader&lt;/a&gt;)&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Utiliser-SVP-le-gestionnaire-des-plugins-de-SPIP&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Utiliser-SVP-le-gestionnaire-des-plugins-de-SPIP'&gt;Utiliser SVP le gestionnaire des plugins de SPIP&lt;a class='sommaire-back sommaire-back-13' href='#s-Utiliser-SVP-le-gestionnaire-des-plugins-de-SPIP' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SPIP dispose d'un syst&#232;me automatis&#233; pour g&#233;rer les plugins qui s'appelle SVP (acronyme de &#034;SerVeur d'information et de t&#233;l&#233;chargement des Plugins&#034;).&lt;/p&gt;
&lt;p&gt;Il permet de g&#233;rer et de mettre &#224; jour au quotidien les plugins.&lt;/p&gt;
&lt;p&gt;La gestion des plugins est r&#233;serv&#233;e aux administrateurs-trices complet-es du site.&lt;br class='autobr' /&gt;
L'ajout, la mise &#224; jour et suppression des plugins sont restreints aux webmestres.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Gerer-les-depots&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Gerer-les-depots'&gt;G&#233;rer les d&#233;p&#244;ts&lt;a class='sommaire-back sommaire-back-13' href='#s-Gerer-les-depots' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SVP va chercher les plugins disponibles dans un &#034;d&#233;p&#244;t&#034;. &lt;br class='autobr' /&gt;
Lors de la premi&#232;re installation le webmestre doit installer le d&#233;p&#244;t et valider avec son mot de passe.&lt;/p&gt;
&lt;p&gt;Par d&#233;faut le d&#233;p&#244;t &#034;principal&#034; &#034;SPIP-Zone - Plugins&#034; est propos&#233;.&lt;/p&gt;
&lt;p&gt;Il est possible d'ajouter d'autres d&#233;p&#244;ts.&lt;br class='autobr' /&gt;
Certains d&#233;p&#244;ts sont list&#233;s sur &lt;a href=&#034;https://plugins.spip.net/spip.php?page=depots&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://plugins.spip.net/spip.php?page=depots&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour des raisons de s&#233;curit&#233;, il est n&#233;cessaire de saisir son mot de passe pour installer un nouveau d&#233;p&#244;t.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Chercher-et-trouver-le-plugin&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Chercher-et-trouver-le-plugin'&gt;Chercher et trouver le plugin&lt;a class='sommaire-back sommaire-back-13' href='#s-Chercher-et-trouver-le-plugin' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Il est possible de rechercher le plugin via l'interface de SVP, &#034;ajouter un plugin&#034;&lt;br class='autobr' /&gt;
Il est peut &#234;tre utile de rechercher le plugin adapt&#233; &#224; votre besoin sur le site d&#233;di&#233; aux plugins SPIP : &lt;a href=&#034;https://plugins.spip.net/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://plugins.spip.net/&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Ajouter-un-plugin&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Ajouter-un-plugin'&gt;Ajouter un plugin&lt;a class='sommaire-back sommaire-back-13' href='#s-Ajouter-un-plugin' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lorsque vous avez trouv&#233; votre plugin, vous le s&#233;lectionnez et demandez son installation &#034;t&#233;l&#233;charger et installer&#034; ; SVP va alors proposer d'installer le plugin avec toutes les d&#233;pendances n&#233;cessaires &#224; son fonctionnement.&lt;/p&gt;
&lt;p&gt;Une fois install&#233;s certains plugins proposent un bouton &#034;Configurer&#034; qui permet d'ouvrir un formulaire de configuration.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Mettre-a-jour-un-plugin&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Mettre-a-jour-un-plugin'&gt;Mettre &#224; jour un plugin&lt;a class='sommaire-back sommaire-back-13' href='#s-Mettre-a-jour-un-plugin' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un plugin comporte un num&#233;ro de version sous la forme x.y.z o&#249;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; z repr&#233;sente une correction mineure,&lt;/li&gt;&lt;li&gt; y repr&#233;sente un ajout de fonctionnalit&#233;s,&lt;/li&gt;&lt;li&gt; x repr&#233;sente un changement majeur pr&#233;sentant des risques d'incompatibilit&#233;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Lorsqu'une mise &#224; jour est disponible (et que l'installation a &#233;t&#233; faite par SVP) une information s'affiche :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Une mise &#224; jour &lt;i&gt;corrective&lt;/i&gt; est disponible (up de z)&lt;/li&gt;&lt;li&gt; Une mise &#224; jour &lt;i&gt;fonctionnelle&lt;/i&gt; est disponible (up de y)&lt;/li&gt;&lt;li&gt; Une mise &#224; jour &lt;i&gt;majeure&lt;/i&gt; est disponible (X.0.0). Pensez &#224; v&#233;rifier les incompatibilit&#233;s. (up de x)&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Desactiver-Desinstaller-et-ou-Supprimer&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Desactiver-Desinstaller-et-ou-Supprimer'&gt;D&#233;sactiver, D&#233;sinstaller et/ou Supprimer&lt;a class='sommaire-back sommaire-back-13' href='#s-Desactiver-Desinstaller-et-ou-Supprimer' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Les webmestres ont plusieurs options pour retirer un plugin install&#233; :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;D&#233;sactiver : &lt;/strong&gt; le plugin passe dans les plugins inactifs,&lt;/li&gt;&lt;li&gt; &lt;strong&gt;D&#233;sinstaller : &lt;/strong&gt; supprime les donn&#233;es et les param&#232;tres de configuration du plugin, le plugin passe dans les plugins inactifs,&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Lorsque le plugin est inactif il est maintenant possible de le :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;Supprimer : &lt;/strong&gt; supprime les fichiers du plugins, pas les donn&#233;es ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;R&#233;activer : &lt;/strong&gt; si le plugin a &#233;t&#233; d&#233;sactiv&#233; (et non d&#233;sinstall&#233;) on retrouvera toutes les donn&#233;es et les param&#232;tres.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;NB :
&lt;br /&gt;- Par cons&#233;quent, pour retirer compl&#232;tement un plugin et ses donn&#233;es, il faut d'abord le d&#233;sinstaller, puis le supprimer.
&lt;br /&gt;- Attention, ne pas oublier que d&#233;sinstaller entra&#238;ne une perte de donn&#233;es&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Methodes-alternatives-pour-gerer-les-plugins&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Methodes-alternatives-pour-gerer-les-plugins'&gt;M&#233;thodes alternatives pour g&#233;rer les plugins&lt;a class='sommaire-back sommaire-back-13' href='#s-Methodes-alternatives-pour-gerer-les-plugins' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau2 sommaire-section_h3&#034; aria-labelledby=&#034;Ajouter-un-plugin-manuellement-via-l-interface-SVP&#034;&gt;&lt;h3 class=&#034;h3&#034; id='Ajouter-un-plugin-manuellement-via-l-interface-SVP'&gt; Ajouter un plugin manuellement via l'interface SVP&lt;a class='sommaire-back sommaire-back-13' href='#s-Ajouter-un-plugin-manuellement-via-l-interface-SVP' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Il est possible d'installer un plugin manuellement via l'interface SVP, avec par exemple une version de zip r&#233;cup&#233;r&#233;e sur git.spip.net.&lt;br class='autobr' /&gt;
Pour des raisons de s&#233;curit&#233; il est n&#233;cessaire de saisir son mot de passe webmestre lors de toute installation de plugin de cette mani&#232;re.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau2 sommaire-section_h3&#034; aria-labelledby=&#034;Gestion-des-plugins-par-FTP&#034;&gt;&lt;h3 class=&#034;h3&#034; id='Gestion-des-plugins-par-FTP'&gt; Gestion des plugins par FTP&lt;a class='sommaire-back sommaire-back-13' href='#s-Gestion-des-plugins-par-FTP' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;On peut d&#233;poser les plugins avec transf&#233;rant par FTP les fichiers des plugins dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./plugins/&lt;/code&gt;. Une fois d&#233;pos&#233;, il faudra activer les plugins via SVP.&lt;/p&gt;
&lt;p&gt;Attention, cette m&#233;thode ne permet pas de mettre &#224; jour automatiquement les plugins.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau2 sommaire-section_h3&#034; aria-labelledby=&#034;Gestion-des-plugins-par-SPIP-Cli&#034;&gt;&lt;h3 class=&#034;h3&#034; id='Gestion-des-plugins-par-SPIP-Cli'&gt; Gestion des plugins par SPIP-Cli&lt;a class='sommaire-back sommaire-back-13' href='#s-Gestion-des-plugins-par-SPIP-Cli' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;SPIP-Cli permet de g&#233;rer un site en ligne de commande. Il existe plusieurs commandes d&#233;di&#233;es &#224; la gestion des plugins. Pour en savoir plus se reporter &#224; la documentation officielle de SPIP-Cli&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://contrib.spip.net/SPIP-Cli&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://contrib.spip.net/SPIP-Cli&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Creer-son-plugin&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Creer-son-plugin'&gt;Cr&#233;er son plugin&lt;a class='sommaire-back sommaire-back-13' href='#s-Creer-son-plugin' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Si vous ne trouvez le plugin correspondant &#224; vos besoins, il est toujours possible de le cr&#233;er !&lt;/p&gt;
&lt;p&gt;Pour apprendre &#224; coder, vos propres plugins :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://programmer.spip.net/-Developper-des-plugins-&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://programmer.spip.net/-Developper-des-plugins-&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A noter :&lt;/strong&gt; le plugin La fabrique permet de cr&#233;er d'une fa&#231;on simple et rapide un plugin &#224; partir de z&#233;ro &lt;br class='autobr' /&gt;
&lt;a href=&#034;https://contrib.spip.net/La-Fabrique&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://contrib.spip.net/La-Fabrique&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Tenir un CHANGELOG</title>
		<link>https://www.spip.net/fr_article6825.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article6825.html</guid>
		<dc:date>2023-07-26T17:27:03Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Les fichiers de CHANGELOG suivent la norme Tenez un Changelog. Qu'est-ce qu'un changelog ? &lt;br class='autobr' /&gt;
Un changelog (journal des modifications) est un fichier qui contient une liste tri&#233;e ant&#233;chronologiquement des changements notables pour chaque version d'un projet. Pourquoi tenir un changelog ? &lt;br class='autobr' /&gt;
Pour permettre aux personnes qui utilisent et contribuent de voir pr&#233;cis&#233;ment quels changements notables ont &#233;t&#233; faits entre chaque publication (ou version) d'un projet. &lt;br class='autobr' /&gt;
Plus de d&#233;tails sur (&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Les fichiers de CHANGELOG suivent la norme &lt;a href=&#034;https://keepachangelog.com/fr/1.1.0/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Tenez un Changelog&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-4&#034; id=&#034;nav69f22ef2437d02.31721539&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Qu-est-ce-qu-un-changelog&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Qu-est-ce-qu-un-changelog&#034; class=&#034;spip_ancre&#034;&gt;Qu'est-ce qu'un changelog ?&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Pourquoi-tenir-un-changelog&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Pourquoi-tenir-un-changelog&#034; class=&#034;spip_ancre&#034;&gt;Pourquoi tenir un changelog ?&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Exemple-de-Changelog-simple&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Exemple-de-Changelog-simple&#034; class=&#034;spip_ancre&#034;&gt;Exemple de Changelog simple&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Exemple-de-changelog-complet&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Exemple-de-changelog-complet&#034; class=&#034;spip_ancre&#034;&gt;Exemple de changelog complet&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Qu-est-ce-qu-un-changelog&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Qu-est-ce-qu-un-changelog'&gt;Qu'est-ce qu'un changelog ?&lt;a class='sommaire-back sommaire-back-4' href='#s-Qu-est-ce-qu-un-changelog' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un changelog (journal des modifications) est un fichier qui contient une liste tri&#233;e ant&#233;chronologiquement des changements notables pour chaque version d'un projet.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Pourquoi-tenir-un-changelog&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Pourquoi-tenir-un-changelog'&gt;Pourquoi tenir un changelog ?&lt;a class='sommaire-back sommaire-back-4' href='#s-Pourquoi-tenir-un-changelog' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pour permettre aux personnes qui utilisent et contribuent de voir pr&#233;cis&#233;ment quels changements notables ont &#233;t&#233; faits entre chaque publication (ou version) d'un projet.&lt;/p&gt;
&lt;p&gt;Plus de d&#233;tails sur &lt;a href=&#034;https://keepachangelog.com&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://keepachangelog.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Chaque entr&#233;e du changelog doit :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; r&#233;f&#233;rencer le ticket (ou la PR s'il n'y a pas de ticket correspondant) ;&lt;/li&gt;&lt;li&gt; d&#233;crire clairement et de mani&#232;re concise les modifications apport&#233;es par la PR ;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Pour chaque version, indiquer le num&#233;ro de version suivi de la date au format &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ANN&#201;E-MOIS-JOUR&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Les entr&#233;es sont regroup&#233;s par cat&#233;gorie. Voici les cat&#233;gories utilis&#233;es dans SPIP.&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id50d3_c0'&gt;Type d'entr&#233;e&lt;/th&gt;&lt;th id='id50d3_c1'&gt;Signification&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id50d3_c0'&gt;Added&lt;/td&gt;
&lt;td headers='id50d3_c1'&gt;Pour les nouvelles fonctionnalit&#233;s&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id50d3_c0'&gt;Changed&lt;/td&gt;
&lt;td headers='id50d3_c1'&gt;Pour les changements aux fonctionnalit&#233;s pr&#233;existantes&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id50d3_c0'&gt;Deprecated&lt;/td&gt;
&lt;td headers='id50d3_c1'&gt;Pour les fonctionnalit&#233;s qui seront bient&#244;t supprim&#233;es&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id50d3_c0'&gt;Removed&lt;/td&gt;
&lt;td headers='id50d3_c1'&gt;Pour les fonctionnalit&#233;s d&#233;sormais supprim&#233;es&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id50d3_c0'&gt;Fixed&lt;/td&gt;
&lt;td headers='id50d3_c1'&gt;Pour les corrections de bugs&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id50d3_c0'&gt;Security&lt;/td&gt;
&lt;td headers='id50d3_c1'&gt;En cas de vuln&#233;rabilit&#233;s&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Exemple-de-Changelog-simple&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Exemple-de-Changelog-simple'&gt;Exemple de Changelog simple&lt;a class='sommaire-back sommaire-back-4' href='#s-Exemple-de-Changelog-simple' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# Changelog ## 1.0.2 - 2023-07-25 ## Fixed - Ne pas afficher le texte du mod&#232;le `icone` et le mettre en `title` du lien ### Changed - mise &#224; jour du README.md maintenant que la doc est sur contrib ## 1.0.1 - 2023-06-22 ### Added - ajout d'un CHANGELOG.md ### Changed - compatibilit&#233; SPIP 4.1+ - mise &#224; jour de la documentation dans le README.md &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Exemple-de-changelog-complet&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Exemple-de-changelog-complet'&gt;Exemple de changelog complet&lt;a class='sommaire-back sommaire-back-4' href='#s-Exemple-de-changelog-complet' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pour un exemple plus complet, &lt;a href=&#034;https://git.spip.net/spip/spip/src/branch/master/CHANGELOG.md&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;voir celui de SPIP&lt;/a&gt;.&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>&#201;crire un message de commit</title>
		<link>https://www.spip.net/fr_article6824.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article6824.html</guid>
		<dc:date>2023-07-26T17:24:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Les messages des commits dans SPIP suivent les sp&#233;cifications des Commits Conventionnels. Ceci facilite la relecture a posteriori de l'historique du code, ainsi que l'analyse des PR. &lt;br class='autobr' /&gt;
Le corps du message doit &#234;tre clair et explicatif : d&#233;crire le probl&#232;me trait&#233; et les &#233;volutions ou corrections apport&#233;es. Structure d'un commit conventionnel Premi&#232;re ligne commen&#231;ant par le type de commit, suivi de deux points ( :), suivi d'un message r&#233;sumant le commit. Le type peut &#233;ventuellement &#234;tre (&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Les messages des commits dans SPIP suivent les sp&#233;cifications des &lt;a href=&#034;https://www.conventionalcommits.org/fr/v1.0.0/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Commits Conventionnels&lt;/a&gt;. Ceci facilite la relecture &lt;i&gt;a posteriori&lt;/i&gt; de l'historique du code, ainsi que l'analyse des PR.&lt;/p&gt;
&lt;p&gt;Le corps du message doit &#234;tre clair et explicatif : d&#233;crire le probl&#232;me trait&#233; et les &#233;volutions ou corrections apport&#233;es.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-4&#034; id=&#034;nav69f22ef2454d16.57957727&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Structure-d-un-commit-conventionnel&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Structure-d-un-commit-conventionnel&#034; class=&#034;spip_ancre&#034;&gt;Structure d'un commit conventionnel&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Exemple-de-commit-conventionnel&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Exemple-de-commit-conventionnel&#034; class=&#034;spip_ancre&#034;&gt;Exemple de commit conventionnel&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Liste-des-types-de-commit&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Liste-des-types-de-commit&#034; class=&#034;spip_ancre&#034;&gt;Liste des types de commit&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Pour-aller-plus-loin&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Pour-aller-plus-loin&#034; class=&#034;spip_ancre&#034;&gt;Pour aller plus loin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Structure-d-un-commit-conventionnel&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Structure-d-un-commit-conventionnel'&gt;Structure d'un commit conventionnel&lt;a class='sommaire-back sommaire-back-4' href='#s-Structure-d-un-commit-conventionnel' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Premi&#232;re ligne commen&#231;ant par le &lt;i&gt;type&lt;/i&gt; de commit, suivi de deux points (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:&lt;/code&gt;), suivi d'un message r&#233;sumant le commit.&lt;/li&gt;&lt;li&gt; Le type peut &#233;ventuellement &#234;tre compl&#233;t&#233; par un &lt;i&gt;scope&lt;/i&gt; entre parenth&#232;ses afin de pr&#233;ciser le composant ou la fonctionnalit&#233; modifi&#233;e.&lt;/li&gt;&lt;li&gt; Optionnellement, on peut ajouter, apr&#232;s une ligne vide, un ou plusieurs paragraphes compl&#233;mentaires d&#233;crivant plus en d&#233;tail le commit. La syntaxe Markdown peut &#234;tre utilis&#233;e.&lt;/li&gt;&lt;li&gt; Enfin, une derni&#232;re ligne (s&#233;par&#233;e des pr&#233;c&#233;dentes par une ligne vide) doit contenir une r&#233;f&#233;rence au ticket auquel est li&#233; le commit. La r&#233;f&#233;rence prend la forme suivant &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Refs: #XXX&lt;/code&gt;, ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Fix: #XXX&lt;/code&gt; pour fermer le ticket automatiquement lors de la fusion dans la branche de destination.&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Exemple-de-commit-conventionnel&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Exemple-de-commit-conventionnel'&gt;Exemple de commit conventionnel&lt;a class='sommaire-back sommaire-back-4' href='#s-Exemple-de-commit-conventionnel' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Exemple de log de commit complet :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;fix: r&#233;parer le lien vers la licence GPL dans le pied des pages du priv&#233; en le rempla&#231;ant par un simple lien vers le site officiel gnu.org Fix: #5328 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Liste-des-types-de-commit&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Liste-des-types-de-commit'&gt;Liste des types de commit&lt;a class='sommaire-back sommaire-back-4' href='#s-Liste-des-types-de-commit' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Convention utilis&#233;e dans SPIP.&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id5598_c0'&gt;Type&lt;/th&gt;&lt;th id='id5598_c1'&gt;Signification&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id5598_c0'&gt;build&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Modifie un script de compilation du programme ou modifie des d&#233;pendances externes. Indique &#233;galement une mont&#233;e en version.&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id5598_c0'&gt;change&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Modifie l'impl&#233;mentation d'une fonctionnalit&#233; &#8212; peut modifier des signatures de fonctions (&#8800; refactor)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id5598_c0'&gt;chore&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Travail de fond n'alt&#233;rant pas le code (sortir une version, reg&#233;n&#233;rer du code compil&#233;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id5598_c0'&gt;ci&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Relatif &#224; l'int&#233;gration continue&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id5598_c0'&gt;deprecate&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;D&#233;pr&#233;cier (sans l'enlever) une fonctionnalit&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id5598_c0'&gt;docs&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Relatif &#224; la documentation (docs, readme, changelog)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id5598_c0'&gt;feat&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Ajoute une fonctionnalit&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id5598_c0'&gt;fix&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Corrige un probl&#232;me&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id5598_c0'&gt;i18n&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Relatif aux traductions et cha&#238;nes de langue&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id5598_c0'&gt;perf&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Am&#233;liore la performance d'algorithme ou du programme&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id5598_c0'&gt;refactor&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;R&#233;&#233;criture de code, sans en modifier l'API&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id5598_c0'&gt;remove&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Suppression de code ou de fonctionnalit&#233; (d&#233;pr&#233;ci&#233; auparavant)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id5598_c0'&gt;revert&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Annule une modification pr&#233;c&#233;dente (commit)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id5598_c0'&gt;security&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Relatif &#224; la s&#233;curit&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id5598_c0'&gt;style&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Relatif aux r&#232;gles d'&#233;criture du code (Coding Standard)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id5598_c0'&gt;test&lt;/td&gt;
&lt;td headers='id5598_c1'&gt;Relatifs aux tests du logiciel&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Pour-aller-plus-loin&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Pour-aller-plus-loin'&gt;Pour aller plus loin&lt;a class='sommaire-back sommaire-back-4' href='#s-Pour-aller-plus-loin' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Se r&#233;f&#233;rer au site &lt;a href=&#034;https://www.conventionalcommits.org/fr/v1.0.0/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;www.conventionnalecommits&lt;/a&gt;.&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Migration d'un squelette de SPIP 2 vers SPIP 3</title>
		<link>https://www.spip.net/fr_article6481.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article6481.html</guid>
		<dc:date>2019-01-04T15:39:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>JLuc, Ma&#239;eul</dc:creator>



		<description>
&lt;p&gt;Ainsi que sa num&#233;rotation l'indique, la version SPIP 3 est une version majeure de SPIP, qui apporte de nombreuses et importantes fonctionnalit&#233;s. Dans l'ensemble, l'&#233;quipe de SPIP s'est assur&#233; que les sites fonctionnant avec SPIP 2 fonctionnent &#233;galement avec SPIP 3. Base de donn&#233;es : la mise &#224; jour se fera sans encombre mais aussi, comme toujours, sans possibilit&#233; de revenir &#224; SPIP 2. Comme pour toute migration, il est donc recommand&#233; de faire une sauvegarde de la base de donn&#233;e dans sa (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique785.html" rel="directory"&gt;Anciennes versions&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Ainsi que sa num&#233;rotation l'indique, la version SPIP 3 est une version majeure de SPIP, qui apporte de nombreuses et importantes fonctionnalit&#233;s. Dans l'ensemble, l'&#233;quipe de SPIP s'est assur&#233; que les sites fonctionnant avec SPIP 2 fonctionnent &#233;galement avec SPIP 3.&lt;/p&gt;
&lt;p&gt;- Base de donn&#233;es : la mise &#224; jour se fera sans encombre mais aussi, comme toujours, sans possibilit&#233; de revenir &#224; SPIP 2. Comme pour toute migration, il est donc recommand&#233; de faire une sauvegarde de la base de donn&#233;e dans sa version SPIP 2 avant de faire une migration de vos sites vers SPIP 3, afin de vous m&#233;nager la possibilit&#233; de revenir &#224; SPIP 2.&lt;/p&gt;
&lt;p&gt;- Plugins : l'API ayant &#233;t&#233; modifi&#233;e, une modification du code des plugins est souvent requise pour SPIP 3, soit pour simplement fonctionner, soit pour b&#233;n&#233;ficier des nouveaux apports de SPIP 3. De nombreux plugins distribu&#233;s par la zone sont d'embl&#233;e compatibles avec SPIP 3 ou b&#233;n&#233;ficient d'une version adapt&#233;e pour SPIP 3. &lt;br class='autobr' /&gt;
Si jamais vous avez r&#233;alis&#233; vous m&#234;me un plugin et que vous devez le porter en SPIP 3, un bloc note a collect&#233; un ensemble de points destin&#233;s &#224; faciliter sa migration. Voyez l'article &#034;&lt;a href=&#034;https://contrib.spip.net/3855&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;i&gt;Migration de Plugins de SPIP2 &#224; SPIP3&lt;/i&gt;&lt;/a&gt;&#034; du Carnet SPIP. Au besoin, vous pouvez aussi demander de l'aide sur les listes ou IRC.&lt;/p&gt;
&lt;p&gt;- Squelettes : Les &#233;l&#233;ments du langage SPIP 2 sont tous valables en SPIP 3. Bien que tr&#232;s rarement rencontr&#233;es, il existe toutefois de petites incompatibilit&#233;s dans certaines configurations de squelettes, qui n&#233;cessiteront donc une adaptation, et ce d'autant plus que vous utiliserez des fonctionnalit&#233;s profondes.&lt;/p&gt;
&lt;p&gt;C'est sur ce dernier point : les rares incompatibilit&#233;s du langage de squelette, que porte cet article.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-11&#034; id=&#034;nav69f22ef247c685.56290302&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Chaines-de-langues-deportees-dans-des-plugins&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Chaines-de-langues-deportees-dans-des-plugins&#034; class=&#034;spip_ancre&#034;&gt;Cha&#238;nes de langues d&#233;port&#233;es dans des plugins&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Formulaire-inscription&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Formulaire-inscription&#034; class=&#034;spip_ancre&#034;&gt;Formulaire inscription&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Critere&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Critere&#034; class=&#034;spip_ancre&#034;&gt;Crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_parent}&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Boucles-et-imbriquees&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Boucles-et-imbriquees&#034; class=&#034;spip_ancre&#034;&gt;Boucles &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;FORUMS&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ARTICLES&lt;/code&gt; imbriqu&#233;es&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Titres-et-rangs&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Titres-et-rangs&#034; class=&#034;spip_ancre&#034;&gt;Titres et rangs&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Modeles&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Modeles&#034; class=&#034;spip_ancre&#034;&gt;Mod&#232;les&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Balise&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Balise&#034; class=&#034;spip_ancre&#034;&gt;Balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#FOREACH&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Boucles-avec-jointures&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Boucles-avec-jointures&#034; class=&#034;spip_ancre&#034;&gt;Boucles avec jointures&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Table-de-liens&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Table-de-liens&#034; class=&#034;spip_ancre&#034;&gt;Table de liens&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Jointures-sans-critere-identifiant&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Jointures-sans-critere-identifiant&#034; class=&#034;spip_ancre&#034;&gt;Jointures sans crit&#232;re identifiant&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Personnalisation-des-urls-publiques&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Personnalisation-des-urls-publiques&#034; class=&#034;spip_ancre&#034;&gt;Personnalisation des urls publiques&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Chaines-de-langues-deportees-dans-des-plugins&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Chaines-de-langues-deportees-dans-des-plugins'&gt;Cha&#238;nes de langues d&#233;port&#233;es dans des plugins&lt;a class='sommaire-back sommaire-back-11' href='#s-Chaines-de-langues-deportees-dans-des-plugins' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un grand nombre de fonctionnalit&#233;s du noyau de SPIP sont d&#233;sormais d&#233;port&#233;es dans des plugins, et avec elles les cha&#238;nes de langues qu'elles utilisent. En cons&#233;quence, pour y faire appel dans les squelettes, il faut les pr&#233;fixer par le pr&#233;fixe du plugin correspondant si vous les utilisez dans vos squelettes.&lt;/p&gt;
&lt;p&gt;Par exemple,&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;:forum_texte:&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;doit pour SPIP3 &#234;tre remplac&#233; par&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;:forum:forum_texte:&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A propos des chaines de langues, voyez la doc sur les &lt;a href='https://www.spip.net/2128.html#spip3'&gt;nouveaut&#233;s des cha&#238;nes de langues avec SPIP 3&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Formulaire-inscription&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Formulaire-inscription'&gt;Formulaire inscription &lt;a class='sommaire-back sommaire-back-11' href='#s-Formulaire-inscription' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#FORMULAIRE_INSCRIPTION&lt;/code&gt; n'est jamais totalement vide en SPIP3 , m&#234;me quand les inscriptions ne sont pas autoris&#233;es sur le site. En cons&#233;quence, elle ne pourra pas servir pour conditionner un affichage (par exemple &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#FORMULAIRE_INSCRIPTION) lien vers la page d'inscription]&lt;/code&gt; affichera toujours le lien).&lt;/p&gt;
&lt;p&gt;A la place, il faut tester directement la configuration du site SPIP. Il existe deux entr&#233;es pour cela :
&lt;br /&gt;- accepter_visiteurs
&lt;br /&gt;- accepter_inscriptions&lt;/p&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#CONFIG{accepter_visiteurs}|=={oui}|oui) &lt;a href='#URL_PAGE{inscription_visiteurs}'&gt;] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Critere&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Critere'&gt;Crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_parent}&lt;/code&gt;&lt;a class='sommaire-back sommaire-back-11' href='#s-Critere' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Avec SPIP 3, cette boucle ne fonctionne pas de la m&#234;me mani&#232;re qu'avec SPIP 2&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_sousrubrique(RUBRIQUES){id_parent}&gt; #ID_RUBRIQUE &lt;/BOUCLE_sousrubrique&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En effet : &lt;br /&gt;- si il y a une boucle &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;RUBRIQUES&lt;/code&gt; englobante, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_parent}&lt;/code&gt; prend le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ID_RUBRIQUE&lt;/code&gt; de la boucle englobante &lt;br /&gt;- s'il n'y en pas, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_parent&lt;/code&gt; prend le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{id_parent}&lt;/code&gt;,&lt;/p&gt;
&lt;p&gt;En SPIP 2 &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_parent}&lt;/code&gt; prend &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{id_rubrique}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En cons&#233;quence, avec SPIP 3, il est d&#233;sormais possible d'&#233;crire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_parent ?}{id_rubrique ?}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour migrer une telle boucle, il faut :
&lt;br /&gt;- appeler l'url avec un param&#232;tre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_parent&lt;/code&gt; suppl&#233;mentaire ;
&lt;br /&gt;- ou adapter la boucle en mettant un crit&#232;re suppl&#233;mentaire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_parent ?}{id_rubrique ?}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Dans certains cas, le crit&#232;re suivant a son utilit&#233; pour remplacer &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_parent}&lt;/code&gt; en assurant la compatibilit&#233; d'un squelette entre versions SPIP 2 et SPIP 3 : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_parent=#ENV{id_parent,#ENV{id_rubrique}}}&lt;/code&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Boucles-et-imbriquees&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Boucles-et-imbriquees'&gt;Boucles &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;FORUMS&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ARTICLES&lt;/code&gt; imbriqu&#233;es&lt;a class='sommaire-back sommaire-back-11' href='#s-Boucles-et-imbriquees' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Avec SPIP 2, la table &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;forums&lt;/code&gt; comporte plusieurs champs &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_article&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_breve&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_rubrique&lt;/code&gt; qui permettent certaines boucles.&lt;/p&gt;
&lt;p&gt;Ces boucles doivent &#234;tre adapt&#233;es pour fonctionner avec SPIP 3 puisque ces champs ont &#233;t&#233; remplac&#233;s par deux champs &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;objet&lt;/code&gt; et&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_objet&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ces deux champs permettent de mettre des forums sur n'importe quel objet &#233;ditorial, que ce soit des mots, des documents ou tout autre objet cr&#233;&#233; par un plugin.&lt;/p&gt;
&lt;p&gt;Par exemple, les emboitements suivants ne marchent plus :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_racine_forums_parents(FORUMS) {id_thread}&gt; &lt;BOUCLE_forum_suivant_article(ARTICLES) {id_article}&gt; ... &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ou :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_forums(FORUMS){0,1}&gt; &lt;BOUCLE_articles(ARTICLES){id_article}&gt; #ID_ARTICLE &lt;/BOUCLE_articles&gt; &lt;/BOUCLE_forums&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En SPIP 3 on corrige en :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_forums(FORUMS){0,1}{objet=article}&gt; &lt;BOUCLE_articles(ARTICLES){id_article=#ID_OBJET}&gt; #ID_ARTICLE &lt;/BOUCLE_articles&gt; &lt;/BOUCLE_forums&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ou bien avec :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_forum_suivant_article(ARTICLES){id_article=#ID_OBJET}{si (#OBJET|=={article})}&gt; etc... &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Titres-et-rangs&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Titres-et-rangs'&gt;Titres et rangs&lt;a class='sommaire-back sommaire-back-11' href='#s-Titres-et-rangs' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#TITRE&lt;/code&gt; b&#233;n&#233;ficie d&#233;sormais d'un traitement qui enl&#232;ve automatiquement le n&#176; qui pr&#233;fixe &#233;ventuellement le contenu.&lt;/p&gt;
&lt;p&gt;La plupart du temps, c'est bien ce comportement qu'on recherche, et il est donc inutile d'appeler le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;supprimer_numero&lt;/code&gt; comme il le fallait avant. Si toutefois vous voulez afficher le titre avec son num&#233;ro, il faut enlever ce traitement, c'est &#224; dire employer &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#TITRE*&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Cette diff&#233;rence de comportement par d&#233;faut peut avoir des cons&#233;quences sur des squelettes qui feraient des comparaisons dans un crit&#232;re, car le traitement n'est par contre toujours pas appliqu&#233; sur le champ 'titre' lorsqu'il figure en partie gauche d'un crit&#232;re.&lt;/p&gt;
&lt;p&gt;Par exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_A(ARTICLES){id_article}&gt; &lt;BOUCLE_tri(ARTICLES){titre&gt;#TITRE|recuperer_numero} &gt; etc... &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cette boucle pour afficher les articles de rangs sup&#233;rieurs au rang de l'article courant ne marchera plus puisque &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#TITRE&lt;/code&gt; ne renvoie plus de num&#233;ro. &#192; la place, il faut employer la balise avec &#233;toile &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#TITRE*&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_A(ARTICLES){id_article}&gt; &lt;BOUCLE_tri(ARTICLES){titre&gt;#TITRE*|recuperer_numero} &gt; etc... &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Modeles&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Modeles'&gt;Mod&#232;les&lt;a class='sommaire-back sommaire-back-11' href='#s-Modeles' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Les mod&#232;les re&#231;oivent maintenant l'environnement. Tous les param&#232;tres de contextes, pr&#233;sents dans l'environnement d'appel ou explicitement pass&#233;s en param&#232;tre de l'appel, avec une priorit&#233; &#224; ces derniers, sont &#224; la fois accessibles par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#VARIABLE&lt;/code&gt; et en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{variable}&lt;/code&gt;. Des adaptations sont donc n&#233;cessaires dans certains mod&#232;les.&lt;/p&gt;
&lt;p&gt;&#192; titre d'exemple, un mod&#232;le inclus dans le corps de l'article 18 et donc not&#233; : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;mon_modele|&gt;&lt;/code&gt; transmet 2 informations suppl&#233;mentaires :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; #ENV{article18} =&gt; #ENV{id_article} =&gt; 18 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dans le cas o&#249; l'appel du mod&#232;le inclue &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_article&lt;/code&gt; comme param&#232;tre (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;mon_modele|id_article=2&gt;&lt;/code&gt;) c'est bien cet &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_article&lt;/code&gt; l&#224; (2) qui sera transmis, quel que soit l'id de l'article dans lequel ce mod&#232;le est appel&#233; (comportement : comme avant).&lt;/p&gt;
&lt;p&gt;En revanche, lorsqu'on ne passe pas de param&#232;tre explicite, le comportement sera diff&#233;rent, si le mod&#232;le fait appel :
&lt;br /&gt;- au crit&#232;re conditionnel &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_article?}&lt;/code&gt; dans une boucle &lt;br /&gt;- &#224; un test sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#ID_ARTICLE) affichage si id_article]&lt;/code&gt;&lt;br class='autobr' /&gt;
puisque dans tous les cas &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ID_ARTICLE&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{id_article}&lt;/code&gt; existera.&lt;/p&gt;
&lt;p&gt;Pour corriger lorsque ce sera n&#233;cessaire, il est possible :
&lt;br /&gt;- de changer de nom de param&#232;tre pour enlever l'ambiguit&#233;
&lt;br /&gt;- d'utiliser le fait que seuls les param&#232;tres pass&#233;s explicitement lors de l'appel du mod&#232;le sont accessibles &lt;i&gt;en plus&lt;/i&gt; par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{arg/variable}&lt;/code&gt;, &#224; la diff&#233;rence des param&#232;tres non explicites pass&#233;s automatiquement au contexte.&lt;/p&gt;
&lt;p&gt;Ainsi on pourra remplacer un crit&#232;re conditionnel &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{article ?}&lt;/code&gt; par la combinaison de deux crit&#232;res :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;{id_article &gt;= #ENV{args/id_article, 0}} {id_article &lt;= #ENV{args/id_article, 99999999}} &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Balise&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Balise'&gt;Balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#FOREACH&lt;/code&gt;&lt;a class='sommaire-back sommaire-back-11' href='#s-Balise' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#FOREACH&lt;/code&gt; dispara&#238;t. A la place il faut utiliser une boucle it&#233;rateur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;DATA&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_for(DATA){source tableau,#LE_TABLEAU}&gt; #CLE / #VALEUR &lt;/BOUCLE_for&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si c'est juste pour afficher le contenu des tableaux&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#CONFIG&lt;/code&gt;, il est aussi possible d'utiliser :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[&lt;pre&gt;(#ENV**|unserialize|print_r{1})&lt;/pre&gt;] [&lt;pre&gt;(#CONFIG**|unserialize|print_r{1})&lt;/pre&gt;] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Avec le plugin &lt;a href=&#034;http://plugins.spip.net/dev.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;developpement&lt;/code&gt;&lt;/a&gt; on pourra plus simplement &#233;crire :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#ENV|bel_env)]&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#CONFIG|bel_env)]&lt;/code&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Boucles-avec-jointures&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Boucles-avec-jointures'&gt;Boucles avec jointures&lt;a class='sommaire-back sommaire-back-11' href='#s-Boucles-avec-jointures' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Certaines jointures qui devaient &#234;tre explicit&#233;es dans SPIP 2 se font d&#233;sormais automatiquement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple :&lt;/strong&gt; jointure de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_rubriques&lt;/code&gt; avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_mots&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Le commit &lt;a href=&#034;http://zone.spip.org/trac/spip-zone/changeset/90091&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;90091&lt;/a&gt; remplace la boucle SPIP 2&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;BOUCLE_Exclure(RUBRIQUES mots){type_mot=_FondPage}{fusion mots.id_mot}&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;par la boucle SPIP 3&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;BOUCLE_Exclure(RUBRIQUES){type_mot=_FondPage}{fusion id_mot}&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Table-de-liens&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Table-de-liens'&gt;Table de liens&lt;a class='sommaire-back sommaire-back-11' href='#s-Table-de-liens' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Les tables de liaisons sur les mots ou sur les auteurs, qu'il y avait pour chaque objet spip &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_mots_articles, spip_auteurs_articles&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_mot_breves&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_mot_rubriques&lt;/code&gt;... ont toutes &#233;t&#233; fusionn&#233;es en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_mots_liens&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_auteurs_liens&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Au lieu d'une seule colonne &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_article&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_breve&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_rubrique&lt;/code&gt; comme l'avaient chacune des tables disparues, les nouvelles tables g&#233;n&#233;riques de lien ont deux colonnes g&#233;n&#233;riques : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;objet&lt;/code&gt; et&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;id_objet&lt;/code&gt;. Elles peuvent ainsi d&#233;crire les liens avec mots et auteurs de tous les objets : ceux livr&#233;s avec SPIP, et ceux cr&#233;&#233;s par les plugins.&lt;/p&gt;
&lt;p&gt;Cela ne change rien pour les boucles simples qui ne mentionnent pas ces tables de liaison m&#234;me si SPIP les utilise gr&#226;ce &#224; l'ing&#233;niosit&#233; de son compilateur de boucles.&lt;/p&gt;
&lt;p&gt;En revanche, il faut &#233;videmment modifier les boucles plus complexes qui r&#233;f&#233;rencent explicitement ces tables, si jamais il y en a dans vos squelettes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple : &lt;/strong&gt; dans &lt;a href=&#034;http://zone.spip.org/trac/spip-zone/changeset/90093&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;c90093&lt;/a&gt;, la boucle avec double jointure explicite, dont une sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mots_rubrique&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;BOUCLE_MemoGoodiesRubrique(ARTICLES rubriques mots_rubriques){titre_mot=Goodies}{doublons goodies}{age&gt;=(#CONFIG{soyezcreateurs/age_goodies,30})} /&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;est remplac&#233;e par les deux boucles imbriqu&#233;es :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;BOUCLE_MemoGoodiesRubrique(RUBRIQUES){titre_mot=Goodies}&gt; &lt;BOUCLE_Articles_Exclus(ARTICLES){id_rubrique}{doublons goodies}{age&gt;=(#CONFIG{soyezcreateurs/age_goodies,30})}{lang} /&gt; &lt;/BOUCLE_MemoGoodiesRubrique&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Jointures-sans-critere-identifiant&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Jointures-sans-critere-identifiant'&gt;Jointures sans crit&#232;re identifiant&lt;a class='sommaire-back sommaire-back-11' href='#s-Jointures-sans-critere-identifiant' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Dans une boucle avec jointure implicite, si vous ne sp&#233;cifiez pas l'identifiant sur laquelle la jointure se fait en crit&#232;re de boucle, SPIP ne pourra plus deviner sur quel type d'objet vous bouclez, et il n'y aura que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ID_OBJET&lt;/code&gt; &#224; disposition.&lt;/p&gt;
&lt;p&gt;Par exemple si vous avez en SPIP 2 une boucle :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_a(FORUMS){par date}{0,4}&gt;#ID_ARTICLE &lt;/BOUCLE_a&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;il faudra la remplacer par :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_a(FORUMS)&gt;#ID_OBJET&lt;/BOUCLE_a&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Fort heureusement, ce besoin est assez rare, car le probl&#232;me ne se pose pas d&#233;s qu'il y a un crit&#232;re portant sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{id_article}&lt;/code&gt; dans la boucle. En effet, le compilateur de SPIP d&#233;tecte ce crit&#232;re et s'en sert pour comprendre d'o&#249; vient l'&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ID_ARTICLE&lt;/code&gt; demand&#233; dans le corps de la boucle.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Personnalisation-des-urls-publiques&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Personnalisation-des-urls-publiques'&gt;Personnalisation des urls publiques&lt;a class='sommaire-back sommaire-back-11' href='#s-Personnalisation-des-urls-publiques' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Si vous d&#233;finissez des mod&#232;les d'urls publiques personnalis&#233;es, vous devrez renommer les fonctions qui les d&#233;finissent.&lt;/p&gt;
&lt;p&gt;Par exemple, pour la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_ARTICLE&lt;/code&gt; , renommez la fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;generer_url_article&lt;/code&gt; en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;urls_generer_url_article_dist&lt;/code&gt;. Et pour les adresses &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;emb&gt;&lt;/code&gt; des documents ins&#233;r&#233;s par les mod&#232;les dans un article, renommez la fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;generer_url_document&lt;/code&gt; en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;urls_generer_url_document_dist&lt;/code&gt;&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>$GLOBALS['controler_dates_rss']</title>
		<link>https://www.spip.net/fr_article4895.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4895.html</guid>
		<dc:date>2010-05-31T06:24:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>


		<dc:subject>$GLOBALS['controler_dates_rss']</dc:subject>
		<dc:subject>SPIP 1.9.2</dc:subject>

		<description>
&lt;p&gt;Cette variable globale d&#233;finit si SPIP doit v&#233;rifier les dates des &#233;l&#233;ments des flux rss des sites syndiqu&#233;s. &lt;br class='autobr' /&gt; Lorsque SPIP int&#233;gre les articles issus d'un flux RSS dans sa base de donn&#233;es, il v&#233;rifie la date des articles : si l'article a plus d'un an ou s'il est dat&#233; de plus de deux jours dans le futur &lt;br class='autobr' /&gt;
Si l'une de ces conditions est remplie, SPIP consid&#232;re alors qu'il y a une erreur dans la date de l'article, et remplace celle-ci par la date courante. &lt;br class='autobr' /&gt;
Il est possible de d&#233;sactiver ce (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique643.html" rel="directory"&gt;Variables et Constantes de personnalisation&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@globalscontroler_dates_rss" rel="tag"&gt;$GLOBALS['controler_dates_rss']&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@spip192" rel="tag"&gt;SPIP 1.9.2&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Cette variable globale d&#233;finit si SPIP doit v&#233;rifier les dates des &#233;l&#233;ments des flux rss des sites syndiqu&#233;s.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Lorsque SPIP int&#233;gre les articles issus d'un flux RSS dans sa base de donn&#233;es, il v&#233;rifie la date des articles :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; si l'article a plus d'un an&lt;/li&gt;&lt;li&gt; ou s'il est dat&#233; de plus de deux jours dans le futur&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Si l'une de ces conditions est remplie, SPIP consid&#232;re alors qu'il y a une erreur dans la date de l'article, et remplace celle-ci par la date courante.&lt;/p&gt;
&lt;p&gt;Il est possible de d&#233;sactiver ce comportement en d&#233;finissant la variable &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$controler_dates_rss&lt;/code&gt; comme &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;false&lt;/code&gt; dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config/mes_options.php&lt;/code&gt; (voir &lt;a href='https://www.spip.net/fr_article4654.html' class=&#034;spip_in&#034;&gt;l'article qui lui est consacr&#233;&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple&lt;/strong&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;// ne pas modifier la date des articles syndiqu&#233;s $GLOBALS['controler_dates_rss'] = false; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#VAL</title>
		<link>https://www.spip.net/fr_article4026.html</link>
		<guid isPermaLink="true">https://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>Ma&#239;eul</dc:creator>


		<dc:subject>#VAL</dc:subject>

		<description>
&lt;p&gt;La balise #VAL prend un param&#232;tre qui est retourn&#233; tel quel. &lt;br class='autobr' /&gt; Elle permet par exemple, d'appliquer des filtres sur des constantes. &lt;br class='autobr' /&gt;
[(#VAL&lt;:chaine_de_langue :&gt;|image_typo)] est &#233;quivalent &#224; &lt;:chaine_de_langue|image_typo :&gt; &lt;br class='autobr' /&gt;
Exemple &lt;br class='autobr' /&gt;
Si vous d&#233;sirez attribuer une feuille de styles (.css) par jour de la semaine, vous pouvez proc&#233;der de la mani&#232;re suivante : [&lt;link rel=&#034;stylesheet&#034; href=&#034;squelettes/styles/jour_(#VALw|date#DATE|strtotime).css&#034; (&#8230;)&lt;/p&gt;


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

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

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#VAL&lt;/code&gt; prend un param&#232;tre qui est retourn&#233; tel quel.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-1&#034; id=&#034;nav69f22ef24c8fd4.30651613&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Voir-aussi&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Voir-aussi&#034; class=&#034;spip_ancre&#034;&gt;Voir aussi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Elle permet par exemple, d'appliquer des filtres sur des constantes.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#VAL{&lt;:chaine_de_langue:&gt;}|image_typo)]&lt;/code&gt; est &#233;quivalent &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;:chaine_de_langue|image_typo:&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si vous d&#233;sirez attribuer une feuille de styles (.css) par jour de la semaine, vous pouvez proc&#233;der de la mani&#232;re suivante :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[&lt;link rel=&#034;stylesheet&#034; href=&#034;squelettes/styles/jour_(#VAL{w}|date{#DATE|strtotime}).css&#034; type=&#034;text/css&#034; /&gt;] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Des feuilles de styles nomm&#233;es respectivement &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jour_0.css&lt;/code&gt; &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jour_6.css&lt;/code&gt; (traduire : jour_dimanche.css &#224; jour_samedi.css)&lt;/p&gt;
&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Voir-aussi&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Voir-aussi'&gt;Voir aussi&lt;a class='sommaire-back sommaire-back-1' href='#s-Voir-aussi' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://www.spip.net/fr_article4587.html' class=&#034;spip_in&#034;&gt;#EVAL&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href='https://www.spip.net/fr_article6412.html' class=&#034;spip_in&#034;&gt;#CONST&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#SQUELETTE</title>
		<link>https://www.spip.net/fr_article4027.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article4027.html</guid>
		<dc:date>2009-03-11T12:33:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ma&#239;eul</dc:creator>


		<dc:subject>#SQUELETTE</dc:subject>
		<dc:subject>SPIP 1.9.1</dc:subject>

		<description>
&lt;p&gt;#SQUELETTE retourne le chemin du squelette courant.&lt;/p&gt;


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

/ 
&lt;a href="https://www.spip.net/@squelette" rel="tag"&gt;#SQUELETTE&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@spip191" rel="tag"&gt;SPIP 1.9.1&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#SQUELETTE&lt;/code&gt; retourne le chemin du squelette courant.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
