<?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=6990&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>SPIP 3.2</title>
		<link>https://www.spip.net/fr_article6399.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article6399.html</guid>
		<dc:date>2017-10-13T12:56:56Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Matthieu Marcillaud, peetdu, tofulm</dc:creator>



		<description>
&lt;p&gt;SPIP 3.2 est une version am&#233;lior&#233;e de SPIP 3.1, qui comprend une mise &#224; jour des biblioth&#232;ques JavaScript embarqu&#233;es, une meilleure ergonomie de l'espace priv&#233; ainsi que de nombreuses am&#233;liorations. &lt;br class='autobr' /&gt; Voici le d&#233;tail des &#233;volutions &lt;br class='autobr' /&gt;
Javascript &lt;br class='autobr' /&gt;
jQuery Mise &#224; jour de jQuery en version 3.2 (dans SPIP 3.1 c'est jQuery 1.12). https://jquery.com/upgrade-guide/3.0 int&#233;gration de jQuery-migrate-3.0.1.js pour faciliter les migrations des scripts utilisant jQuery. (&#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;SPIP 3.2 est une version am&#233;lior&#233;e de SPIP 3.1, qui comprend une mise &#224; jour des biblioth&#232;ques JavaScript embarqu&#233;es, une meilleure ergonomie de l'espace priv&#233; ainsi que de nombreuses am&#233;liorations.&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;nav69f62d205db825.29952844&#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-Javascript&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Javascript&#034; class=&#034;spip_ancre&#034;&gt;Javascript&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-PHP&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#PHP&#034; class=&#034;spip_ancre&#034;&gt;PHP&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Core&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Core&#034; class=&#034;spip_ancre&#034;&gt;Core&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Plugins&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Plugins&#034; class=&#034;spip_ancre&#034;&gt;Plugins&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Voici le d&#233;tail des &#233;volutions&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;javascript&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Javascript&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Javascript'&gt;Javascript&lt;a class='sommaire-back sommaire-back-4' href='#s-Javascript' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;jQuery&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;Mise &#224; jour de jQuery&lt;/strong&gt; en version 3.2 (dans SPIP 3.1 c'est jQuery 1.12). &lt;a href=&#034;https://jquery.com/upgrade-guide/3.0&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://jquery.com/upgrade-guide/3.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;int&#233;gration de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jQuery-migrate-3.0.1.js&lt;/code&gt;&lt;/strong&gt; pour faciliter les migrations des scripts utilisant jQuery. &lt;a href=&#034;https://github.com/jquery/jquery-migrate/#README&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://github.com/jquery/jquery-migrate/#README&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;strong&gt;Note importante : &lt;/strong&gt; Ces changements impliquent qu'il est fortement conseill&#233; de mettre &#224; jour les scripts utilisant jQuery. Cela concerne principalement les modifications suivantes :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; bind() =&gt; on()&lt;/li&gt;&lt;li&gt; unbind() =&gt; off()&lt;/li&gt;&lt;li&gt; load() =&gt; on('load', ...)&lt;/li&gt;&lt;li&gt; unload() =&gt; on('unload', ...)&lt;/li&gt;&lt;li&gt; jQuery.isArray() =&gt; Array.isArray()
&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;jQuery UI&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;Mise &#224; jour de jQuery UI&lt;/strong&gt; en version 1.12 (dans SPIP 3.0 c'est jQuery UI 1.11). &lt;a href=&#034;http://jqueryui.com/upgrade-guide/1.12/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://jqueryui.com/upgrade-guide/1.12/&lt;/a&gt; . Changement d'impl&#233;mentation au passage :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; tout jQuery UI est charg&#233; dans l'espace priv&#233; par d&#233;faut.&lt;/li&gt;&lt;li&gt; Dans l'espace public, d&#232;s lors qu'un &#233;l&#233;ment de jQuery UI est demand&#233; via le pipeline &#034;jqueryui_plugins&#034;, tout le JS / CSS de jQuery UI est &#233;galement charg&#233;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;strong&gt;Note importante : &lt;/strong&gt; Ces changements impliquent que les usages de javascript qui chargeaient des modules de jQuery UI avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$.getScript()&lt;/code&gt; ne fonctionneront plus. Vous pouvez soit charger globalement jQuery UI dans votre squelette, ou via le pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jqueryui_plugins&lt;/code&gt; pour un plugin, soit utiliser &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$.getScript()&lt;/code&gt; sur le chemin du fichier &#034;jquery-ui.js&#034; directement.&lt;/p&gt;
&lt;p&gt;Ainsi :&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;$.getScript(&#034;#CHEMIN{prive/javascript/ui/core.js}&#034;, function(){ $.getScript(&#034;#CHEMIN{prive/javascript/ui/widget.js}&#034;, function(){ $.getScript(&#034;#CHEMIN{prive/javascript/ui/mouse.js}&#034;, function(){ $.getScript(&#034;#CHEMIN{prive/javascript/ui/sortable.js}&#034;, function(){ // ... })})})}); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pourrait devenir :&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;$.getScript(&#034;#CHEMIN{prive/javascript/ui/jquery-ui.js}&#034;, function(){ // ... }); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;JS Cookie&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; La librairie JS Cookies est int&#233;gr&#233;e en version 2.1.4. Elle remplace jQuery.cookie. &lt;a href=&#034;https://github.com/js-cookie/js-cookie&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://github.com/js-cookie/js-cookie&lt;/a&gt;&lt;/li&gt;&lt;li&gt; L'ancienne &#233;criture &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$.cookie()&lt;/code&gt; fonctionne encore dans la plupart des usages mais il est conseill&#233; de migrer :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$.cookie(key)&lt;/code&gt; devient &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Cookies.get(key)&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$.cookie(key, value)&lt;/code&gt; devient &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Cookies.set(key, value)&lt;/code&gt;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$.cookie(key, value, options)&lt;/code&gt; devient &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Cookies.set(key, value, options)&lt;/code&gt;&lt;/li&gt;&lt;/ul&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;PHP&#034;&gt;&lt;h2 class=&#034;h2&#034; id='PHP'&gt;PHP&lt;a class='sommaire-back sommaire-back-4' href='#s-PHP' 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; Nombreuses notices PHP enlev&#233;es encore.&lt;/li&gt;&lt;li&gt; Compatibilit&#233; PHP 7.4 maximum&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a id=&#034;core&#034;&gt;&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;Core&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Core'&gt;Core&lt;a class='sommaire-back sommaire-back-4' href='#s-Core' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Tri des items de navigation &amp; entr&#233;es favorites&lt;/strong&gt;&lt;br class='autobr' /&gt;
Le fonctionnement du plugin &#171; &lt;a href=&#034;https://contrib.spip.net/Menu-prive-alphabetique&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Menu priv&#233; alphab&#233;tique&lt;/a&gt; &#187; est int&#233;gr&#233; :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; les sous-menus de navigation (au survol des menus &#171; &#201;dition &#187;, &#171; Publication &#187;, &#171; Activit&#233; &#187;, ...) sont maintenant tri&#233;s par ordre alphab&#233;tique&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Auparavant, l'ordre pouvait d&#233;pendre d'une position souhait&#233;e, mais aussi de (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;li&gt; dans ses pr&#233;f&#233;rences personnelles, il est maintenant possible de cocher des entr&#233;es de menus &#171; favorites &#187;, qui s'afficheront alors en t&#234;te dans les sous-menus de navigation concern&#233;s.&lt;/li&gt;&lt;li&gt; si un sous-menu contient plus de 20 entr&#233;es, il est alors affich&#233; en 2 colonnes.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Simplification du &#171; cookie de correspondance &#187;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le bouton pour activer ce cookie dans l'espace priv&#233; n'&#233;tait pas explicite. Par ailleurs, le cookie se d&#233;sactivait &#224; terme si un auteur se connectait r&#233;guli&#232;rement sur un m&#234;me site. La solution retenue est de supprimer la notion (et le bouton) de &#171; cookie de correspondance &#187;, et de cr&#233;er le cookie (dit d'admin) syst&#233;matiquement lorsqu'un auteur se loge et a les droits d'acc&#232;s &#224; l'espace priv&#233;. Le cookie d'admin est renouvel&#233; en m&#234;me temps que le cookie de session. Et s'enl&#232;ve en se d&#233;connectant.&lt;br class='autobr' /&gt;
Tickets associ&#233;s : &lt;a href=&#034;https://core.spip.net/issues/3740&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;#1740&lt;/a&gt;, &lt;a href=&#034;https://core.spip.net/issues/3710&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;#1710&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;D&#233;pendances des plugins &#224; des extensions PHP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il est maintenant possible d'indiquer dans un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;paquet.xml&lt;/code&gt; qu'un plugin a besoin d'une extension PHP pour fonctionner. &lt;a href=&#034;https://core.spip.net/issues/3819&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3829&lt;/a&gt;. Une erreur sera affich&#233;e dans le cas contraire &#224; l'activation du plugin. Syntaxe :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;xml&#034; class='spip_code spip_code_block language-xml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;necessite nom=&#034;php:curl&#034; /&gt; &lt;necessite nom=&#034;php:xdebug&#034; compatibilite=&#034;[2.0.0;]&#034; /&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Formulaire&lt;/strong&gt;&lt;br class='autobr' /&gt;
La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#FORMULAIRE_INSCRIPTION&lt;/code&gt; s'enrichie de deux nouvelles possibilit&#233;s :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; elle accepte un 3e argument pour indiquer la page vers laquelle on redirige la personne lorsqu'elle confirme son inscription ;&lt;/li&gt;&lt;li&gt; Il est possible de forcer l'utilisation du lien de confirmation contenu dans l'email.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Les explications d&#233;taill&#233;es dans l'article &lt;a href='https://www.spip.net/fr_article4590.html#inscription_spip32' class=&#034;spip_in&#034;&gt;FORMULAIRE_INSCRIPTION&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Crit&#232;res&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{par champ}&lt;/code&gt; a &#233;t&#233; r&#233;&#233;crit et tol&#232;re mieux les noms de champs provenant de tables de jointures, en harmonisant avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{par num champ}&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{par multi champ}&lt;/code&gt; le fonctionnement. Des expressions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{par expr champ}&lt;/code&gt; peuvent maintenant &#234;tre cr&#233;&#233;es sans surcharger tout le crit&#232;re, &#224; toutes fins utiles.&lt;/li&gt;&lt;li&gt; ajout de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{par sinum champ}&lt;/code&gt; qui met en premier les &#233;l&#233;ments ayant des num&#233;ros (hors &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;0.&lt;/code&gt;). Ainsi &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{par sinum titre, num titre, titre}&lt;/code&gt; mettra les titres avec des num&#233;ros avant ceux n'en ayant pas (contrairement &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{par num titre, titre}&lt;/code&gt;), puis triera par num&#233;ro. Et contrairement &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{par titre, num titre}&lt;/code&gt;, le num&#233;ro 100 sera bien plac&#233; apr&#232;s le num&#233;ro 20.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pipelines&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;formulaire_receptionner&lt;/strong&gt; : pipeline appel&#233; au moment o&#249; un formulaire est post&#233; par un visiteur, mais avant l'analyse des donn&#233;es post&#233;es par la fonction de v&#233;rification. &lt;a href=&#034;https://core.spip.net/projects/spip/repository/revisions/23308&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://core.spip.net/projects/spip/repository/revisions/23308&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Divers tickets&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Inclusions, connect &amp; pagination (Tickets &lt;a href=&#034;https://core.spip.net/issues/3823&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;#3823&lt;/a&gt; et &lt;a href=&#034;https://core.spip.net/issues/3899&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;#3899&lt;/a&gt;) : les paginations ajax prennent en compte le param&#232;tre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;connect&lt;/code&gt; qui &#233;tait utilis&#233;. Le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;connect&lt;/code&gt; explicit&#233; sur une inclusion est prioritaire sur celui provenant de l'URL.&lt;/li&gt;&lt;li&gt; Limiter le nombre de fichiers de session d'un auteur (Ticket &lt;a href=&#034;https://core.spip.net/issues/3807&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;#3807&lt;/a&gt;)&lt;/li&gt;&lt;li&gt; Permettre d'envoyer un nouveau mot de passe &#224; un auteur depuis l'interface priv&#233;e (Ticket &lt;a href=&#034;https://core.spip.net/issues/2250&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;#2250&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Fichiers supprim&#233;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; ecrire/inc/aider.php (d&#233;plac&#233; dans plugins-dist/aide/inc/aide.php)&lt;/li&gt;&lt;li&gt; ecrire/inc/pclzip.php (d&#233;plac&#233; dans plugins-dist/archiviste/inc/pclzip.php)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;D&#233;placements&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; les filtres de dates sont maintenant dans inc/filtres_dates.php (d&#233;plac&#233;s depuis inc/filtres.php) (&lt;a href=&#034;https://core.spip.net/issues/3583&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3583&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Suppression&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; les fonctions d&#233;pr&#233;ci&#233;es &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;afficher_plus()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;debut_cadre_couleur_foncee()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fin_cadre_couleur_foncee()&lt;/code&gt; sont pass&#233;es dans le plugin Grenier.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a id=&#034;plugins&#034;&gt;&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;Plugins&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Plugins'&gt;Plugins&lt;a class='sommaire-back sommaire-back-4' href='#s-Plugins' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Aide&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Nouveau plugin qui int&#232;gre la gestion de l'aide en ligne (fonctions d&#233;plac&#233;es depuis le Core ou plugin SVP)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Archiviste&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Nouveau plugin qui int&#232;gre la gestion des archives zip et tar (fonctions d&#233;plac&#233;es depuis le Core)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Filtres Images&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Suppression des fonctions et fichiers d&#233;pr&#233;ci&#233;s depuis SPIP 2.1 (&lt;a href=&#034;https://core.spip.net/issues/3601&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3601&lt;/a&gt;). Les &#233;l&#233;ments ont &#233;t&#233; d&#233;plac&#233;s dans le plugin Grenier.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Grenier&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Accueil des fonctions d&#233;pr&#233;ci&#233;es du plugin Filtres images.&lt;/li&gt;&lt;li&gt; Accueil des fonctions d&#233;pr&#233;ci&#233;es du Core&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;M&#233;dias&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Int&#233;gration du plugin &lt;a href=&#034;https://contrib.spip.net/4859&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Minidoc&lt;/a&gt; dans le plugin m&#233;dias. Il permet diff&#233;rents affichages des listes de documents attach&#233;s aux objets &#233;ditoriaux. &lt;a href=&#034;https://core.spip.net/issues/3888&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3888&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Modification &#233;galement de la pr&#233;sentation par d&#233;faut de ces listes documents attach&#233;s&lt;/li&gt;&lt;li&gt; Int&#233;gration du plugin &lt;a href=&#034;https://contrib.spip.net/4860&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ordoc&lt;/a&gt; dans le plugin m&#233;dias. &lt;a href=&#034;https://core.spip.net/issues/3887&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3887&lt;/a&gt;. Il permet d'ordonner les listes de documents joints aux objets &#233;ditoriaux&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Pour les sites qui utilisaient le plugin Mosaique pour cela, un plugin de (&#8230;)&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;, et ajoute un champ &#034;rang_lien&#034; dans la table spip_documents_liens. Il devient alors possible d'utiliser des boucles telle que :&lt;br class='manualbr' /&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_docs(DOCUMENTS){id_article}{par rang_lien, num titre, titre, date}&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt; Changement de structure du code HTML attendu en retour du pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;afficher_metas_document&lt;/code&gt;, qui par ailleurs envoie le code HTML des d&#233;tails affich&#233;s pour le document plut&#244;t que rien par d&#233;faut, ce qui permet de compl&#233;ter la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;table&gt;&lt;/code&gt; utilis&#233;e.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Mots&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ajout d'une administration avanc&#233;e sur les mots pour permettre de les fusionner ou de cr&#233;er des associations/dissociations par rapport &#224; un autre mot cl&#233; &lt;a href=&#034;https://zone.spip.org/trac/spip-zone/changeset/100448/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Commit 100448&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Organiseur&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Mise &#224; jour de la librairie &lt;a href=&#034;https://fullcalendar.io/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;FullCalendar&lt;/a&gt; en version 3.5.1 (auparavant en version 1.6). Pour migrer si vous utilisiez cette librairie dans l'espace public, se reporter &#224; &lt;a href=&#034;https://fullcalendar.io/wiki/Upgrading-to-v2/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://fullcalendar.io/wiki/Upgrading-to-v2/&lt;/a&gt; ou &lt;a href=&#034;https://fullcalendar.io/docs/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://fullcalendar.io/docs/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Int&#233;gration de la librairie &lt;a href=&#034;http://momentjs.com/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Moment.js&lt;/a&gt; (n&#233;cessaire &#224; FullCalendar)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Sites&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Permettre de rechercher dans les articles syndiqu&#233;s sur un site. &lt;a href=&#034;https://core.spip.net/issues/3859&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3859&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;SVP - Gestion des plugin&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Prise en compte de l'affichage des erreurs de d&#233;pendances sur les extensions PHP. &lt;a href=&#034;https://core.spip.net/issues/3819&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3819&lt;/a&gt;.&lt;/li&gt;&lt;li&gt; Affichage plus compr&#233;hensible des versions sur les erreurs de d&#233;pendances.&lt;/li&gt;&lt;li&gt; On peut maintenant t&#233;l&#233;charger un plugin sans l'activer. Dans ce cas on reste sur la page de recherche de plugin. &lt;a href=&#034;https://core.spip.net/issues/3471&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3471&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Afficher une barre de progression lors d'actions multiples (&#233;vite des erreurs de redirections). &lt;a href=&#034;https://core.spip.net/issues/3473&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Ticket #3473&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Correction de l'absence de confirmation des actions lorsque des actions suppl&#233;mentaires sont ajout&#233;es automatiquement par SVP (par exemple activer ou d&#233;sactiver des d&#233;pendances).&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;inc/pcltar.php&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lib/pcltar/&lt;/code&gt; d&#233;plac&#233;s dans le plugin Archiviste.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;URL &#201;tendues&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les URLs Arborescentes (principalement) peuvent g&#233;rer du multilinguisme (champs multis sur les rubriques par exemple) et des parents multiples (polyhi&#233;rarchie).&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Tol&#233;rer plusieurs parents pour un objet. &lt;a href=&#034;https://zone.spip.org/trac/spip-zone/changeset/100814&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Commit 100814&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Ajout d'un champ &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;langue&lt;/code&gt; sur la table &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_urls&lt;/code&gt;. &lt;a href=&#034;https://zone.spip.org/trac/spip-zone/changeset/100835&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Commit 100835&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Il est possible de d&#233;finir une URL sp&#233;cifique pour une certaine langue langue sur un objet &#233;ditorial en &#233;ditant l'URL. Pour ce faire, dans le champ de saisie, indiquer &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[code langue]:[url propre]&lt;/code&gt; tel que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;en:movies&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fr:videos&lt;/code&gt;. &lt;a href=&#034;https://zone.spip.org/trac/spip-zone/changeset/100835&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Commit 100835&lt;/a&gt;&lt;/li&gt;&lt;li&gt; La d&#233;claration du &#171; type &#187; pr&#233;fixant &#233;ventuellement l'URL d'un objet dans les URLs arborescentes (exemple : 'mot' dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mot/titre_du_mot&lt;/code&gt;) peut recevoir une &#233;criture &#224; base de balise multi pour que le terme soit traduit en fonction de la langue &lt;a href=&#034;https://zone.spip.org/trac/spip-zone/changeset/100836&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Commit 100836&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Les URLs arborescentes peuvent g&#233;rer du multilinguisme, en ajoutant le code de langue dans l'URL, activable par la constante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_url_arbo_multilang&lt;/code&gt;. &lt;a href=&#034;https://zone.spip.org/trac/spip-zone/changeset/100844&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Commit 100844&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Auparavant, l'ordre pouvait d&#233;pendre d'une position souhait&#233;e, mais aussi de l'ordre dont s'activaient les plugins&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Pour les sites qui utilisaient le plugin &lt;a href=&#034;https://contrib.spip.net/4232&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Mosaique&lt;/a&gt; pour cela, un &lt;a href=&#034;https://contrib.spip.net/4864&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;plugin de migration&lt;/a&gt; existe&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>SPIP 3.1</title>
		<link>https://www.spip.net/fr_article5713.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article5713.html</guid>
		<dc:date>2016-01-09T09:21:09Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>L'&#233;quipe de SPIP, tofulm</dc:creator>



		<description>
&lt;p&gt;SPIP 3.1 est une version am&#233;lior&#233;e de SPIP 3.0, qui comprend une mise &#224; jour des biblioth&#232;ques JavaScript embarqu&#233;es, un nouvel habillage graphique pour l'espace priv&#233; et les pages publiques ainsi que de nombreuses am&#233;liorations. Sa maintenance active s'arr&#234;te le 30 juin 2019. &#192; compter de cette date, seule les correctifs li&#233;s &#224; la s&#233;curit&#233; lui seront apport&#233;s. &lt;br class='autobr' /&gt; Cette version sort trois ans apr&#232;s SPIP 3.0 et offre essentiellement aux d&#233;veloppeurs : une mise &#224; jour des biblioth&#232;ques (&#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;SPIP 3.1 est une version am&#233;lior&#233;e de SPIP 3.0, qui comprend une mise &#224; jour des biblioth&#232;ques JavaScript embarqu&#233;es, un nouvel habillage graphique pour l'espace priv&#233; et les pages publiques ainsi que de nombreuses am&#233;liorations. Sa maintenance active s'arr&#234;te le 30 juin 2019. &#192; compter de cette date, seule les correctifs li&#233;s &#224; la s&#233;curit&#233; lui seront apport&#233;s.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-6&#034; id=&#034;nav69f62d20605437.65044276&#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-SPIP-3-1-des-nouveautes&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#SPIP-3-1-des-nouveautes&#034; class=&#034;spip_ancre&#034;&gt;SPIP 3.1 : des nouveaut&#233;s&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-SPIP-3-1-l-ecriture-des-squelettes-est-facilitee&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#SPIP-3-1-l-ecriture-des-squelettes-est-facilitee&#034; class=&#034;spip_ancre&#034;&gt;SPIP 3.1 : l'&#233;criture des squelettes est facilit&#233;e&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-SPIP-3-1-sous-le-capot&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#SPIP-3-1-sous-le-capot&#034; class=&#034;spip_ancre&#034;&gt;SPIP 3.1 : sous le capot&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-SPIP-3-1-un-code-source-plus-beau&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#SPIP-3-1-un-code-source-plus-beau&#034; class=&#034;spip_ancre&#034;&gt;SPIP 3.1 : un code source plus beau&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-SPIP-3-1-les-performances-web-cote-client&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#SPIP-3-1-les-performances-web-cote-client&#034; class=&#034;spip_ancre&#034;&gt;SPIP 3.1 : les performances web cot&#233; client&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Mettre-a-jour-un-site-existant-vers-SPIP-3-1&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Mettre-a-jour-un-site-existant-vers-SPIP-3-1&#034; class=&#034;spip_ancre&#034;&gt;Mettre &#224; jour un site existant vers SPIP 3.1&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Cette version sort trois ans apr&#232;s SPIP 3.0 et offre essentiellement aux d&#233;veloppeurs :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; une mise &#224; jour des biblioth&#232;ques JavaScript qui accompagnent le c&#339;ur de SPIP et les plugins fournis, avec notamment jQuery et jQuery UI ;&lt;/li&gt;&lt;li&gt; une actualisation du th&#232;me graphique de l'espace public. Ce th&#232;me int&#232;gre la base CSS &lt;a href=&#034;http://tinytypo.tetue.net&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Tiny Typo&lt;/a&gt; ; Lire &lt;a href='https://www.spip.net/fr_article5720.html' class=&#034;spip_in&#034;&gt;Pr&#233;sentation de la dist &lt;/a&gt;&lt;/li&gt;&lt;li&gt; une actualisation &lt;i&gt;l&#233;g&#232;re&lt;/i&gt; du th&#232;me graphique de l'espace priv&#233; ;&lt;/li&gt;&lt;li&gt; des nouveaut&#233;s et de nombreux bugs corrig&#233;s.&lt;/li&gt;&lt;/ul&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;SPIP-3-1-des-nouveautes&#034;&gt;&lt;h2 class=&#034;h2&#034; id='SPIP-3-1-des-nouveautes'&gt; SPIP 3.1 : des nouveaut&#233;s &lt;a class='sommaire-back sommaire-back-6' href='#s-SPIP-3-1-des-nouveautes' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Les r&#233;dacteurs et administrateurs pourront trouver utile :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; un bouton suppl&#233;mentaire sur les barres d'outils d'&#233;dition qui permet d'&#233;diter le texte en plein &#233;cran, avec sa pr&#233;visualisation directe sur le c&#244;t&#233; ;&lt;/li&gt;&lt;li&gt; le lecteur multim&#233;dia HTML5 &lt;a href=&#034;http://mediaelementjs.com&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://mediaelementjs.com&lt;/a&gt; fourni en standard pour lire directement vid&#233;os et sons ;&lt;/li&gt;&lt;li&gt; l'ajout d'une vid&#233;o calcule, ses dimensions et sa dur&#233;e (int&#233;gration partielle du plugin getID3 dans le plugin m&#233;dias) ;&lt;/li&gt;&lt;li&gt; les forums de discussion dans l'espace priv&#233; peuvent se greffer sur n'importe quel objet &#233;ditorial via un formulaire de configuration ;&lt;/li&gt;&lt;li&gt; les statistiques peuvent &#234;tre affich&#233;es soit sous forme de graphique, soit sous forme de tableau ;&lt;/li&gt;&lt;li&gt; la page plan de l'espace priv&#233; est am&#233;lior&#233;e et permet de d&#233;placer des &#233;l&#233;ments par glisser/d&#233;poser ;&lt;/li&gt;&lt;li&gt; une nouvelle option dans les pr&#233;f&#233;rences personnelles des webmestres pour afficher ou non le menu &#171; D&#233;veloppement &#187; ;&lt;/li&gt;&lt;li&gt; des am&#233;liorations de l'ergonomie du multilinguisme par secteur.&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;SPIP-3-1-l-ecriture-des-squelettes-est-facilitee&#034;&gt;&lt;h2 class=&#034;h2&#034; id='SPIP-3-1-l-ecriture-des-squelettes-est-facilitee'&gt; SPIP 3.1 : l'&#233;criture des squelettes est facilit&#233;e&lt;a class='sommaire-back sommaire-back-6' href='#s-SPIP-3-1-l-ecriture-des-squelettes-est-facilitee' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt; Crit&#232;res &lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{age}&lt;/code&gt; est modifi&#233;, code simplifi&#233; et d&#233;bogu&#233; pour certaines dur&#233;es ;&lt;/li&gt;&lt;li&gt; le crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{tri}&lt;/code&gt; accepte un 3e argument avec le nom commen&#231;ant par 'session' et indiquant que le sens et l'&#233;l&#233;ment tri&#233; doivent &#234;tre sauv&#233;s dans la session de l'utilisateur ;&lt;/li&gt;&lt;li&gt; le crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{branche}&lt;/code&gt; accepte un second argument pour pr&#233;ciser la ou les rubriques &#224; parcourir.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt; Balises &lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#MODELE&lt;/code&gt; accepte le param&#232;tre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;env&lt;/code&gt; transmettant l'environnement complet ;&lt;/li&gt;&lt;li&gt; la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#INCLURE&lt;/code&gt; transmet l'&#233;ventuel param&#232;tre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;connect&lt;/code&gt; pr&#233;sent dans l'URL, tout comme le fait d&#233;j&#224; l'inclusion &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;INCLURE...&gt;&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt; Filtres&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le nouveau filtre &lt;a href='https://www.spip.net/fr_article5840.html' class=&#034;spip_in&#034;&gt;|setenv&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt; Logos et images &lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;filtre_inactif&lt;/code&gt; au lieu de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;no_image_filtrer&lt;/code&gt; ;&lt;/li&gt;&lt;li&gt; la classe &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.spip_logo&lt;/code&gt; sur les documents &#224; la place de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.spip_logos&lt;/code&gt; (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.spip_logos&lt;/code&gt; support&#233; encore quelques temps) ;&lt;/li&gt;&lt;li&gt; l'action d'&#233;dition des logos a &#233;volu&#233; :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la hauteur ou largeur maximale des logos peuvent &#234;tre d&#233;finies seules ;&lt;/li&gt;&lt;li&gt; si un logo ou une image t&#233;l&#233;vers&#233;e d&#233;passe la taille maximale autoris&#233;e, et que les miniatures sont autoris&#233;es, on r&#233;duit le logo ou l'image transmise &#224; la taille maximale plut&#244;t que renvoyer une erreur ;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; si un document d&#233;passe la taille exploitable par le serveur, une erreur est affich&#233;e sans poser de probl&#232;me ajax.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Plugins&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; meilleure ergonomie de l'interface de gestion des plugins ;&lt;/li&gt;&lt;li&gt; nouvelles balises dans le paquet.xml ;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;script&lt;/code&gt; pour ajouter un script JavaScript dans le header public ou priv&#233; ;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;style&lt;/code&gt; pour ajouter un fichier CSS ;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;genie&lt;/code&gt; pour ex&#233;cuter une tache cron simplement ;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;procure&lt;/code&gt; pour indiquer qu'un plugin procure des fonctionnalit&#233;s.&lt;/li&gt;&lt;/ul&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;SPIP-3-1-sous-le-capot&#034;&gt;&lt;h2 class=&#034;h2&#034; id='SPIP-3-1-sous-le-capot'&gt; SPIP 3.1 : sous le capot&lt;a class='sommaire-back sommaire-back-6' href='#s-SPIP-3-1-sous-le-capot' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Certaines modifications mineures du core peuvent int&#233;resser les h&#233;bergeurs ou webmestres de sites SPIP :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; les sessions anonymes de SPIP utilisent maintenant les sessions PHP ;&lt;/li&gt;&lt;li&gt; le cache des vignettes d'images est stock&#233; dans 256 sous-r&#233;pertoires (&lt;a href=&#034;http://core.spip.org/issues/3277&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;#3277&lt;/a&gt;), ce qui peut am&#233;liorer les performances sur les disques NAS ;&lt;/li&gt;&lt;li&gt; lors de l'utilisation d'une base MySQL, les fonctions PHP &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysqli_*&lt;/code&gt; sont utilis&#233;es &#224; la place des fonctions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysql_*&lt;/code&gt;. Il faut donc que les fonctions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mysqli&lt;/code&gt; soient pr&#233;sentes sur le serveur h&#233;bergeant le site (elles sont actives par d&#233;faut dans PHP depuis la version 5.0) ;&lt;/li&gt;&lt;li&gt; les tables MySQL utilisent maintenant MyISAM par d&#233;faut (les versions r&#233;centes de MySQL s'installaient en INNODB) ;&lt;/li&gt;&lt;li&gt; la gestion du cache a &#233;t&#233; am&#233;lior&#233;e en reprenant la m&#233;thode &lt;i&gt;filecache&lt;/i&gt; du plugin m&#233;moization ;&lt;/li&gt;&lt;li&gt; les r&#233;visions des objets &#233;ditoriaux ne sont plus stock&#233;es de fa&#231;on compress&#233;e afin d'&#233;viter des probl&#232;mes lors de la restauration de sauvegardes de la base de donn&#233;es ;&lt;/li&gt;&lt;li&gt; int&#233;gration des fonctions d'import/export de fichiers CSV du plugin SPIP-Bonux ;&lt;/li&gt;&lt;li&gt; API &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;objet_inserer()&lt;/code&gt; plus consistante avec le second param&#232;tre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$set&lt;/code&gt; ;&lt;/li&gt;&lt;li&gt; API de r&#244;les sur les liens : aux liens entre objets peuvent &#234;tre associ&#233;s des r&#244;les.&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;SPIP-3-1-un-code-source-plus-beau&#034;&gt;&lt;h2 class=&#034;h2&#034; id='SPIP-3-1-un-code-source-plus-beau'&gt; SPIP 3.1 : un code source plus beau &lt;a class='sommaire-back sommaire-back-6' href='#s-SPIP-3-1-un-code-source-plus-beau' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un gros travail sur la pr&#233;sentation du code source a &#233;t&#233; effectu&#233; :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; adoption des &lt;a href=&#034;http://www.spip.net/fr_article3497.html#regles_codage&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;normes de codage PSR2 &lt;strong&gt;personnalis&#233;es&lt;/strong&gt;&lt;/a&gt; ;&lt;/li&gt;&lt;li&gt; annotation de nombreuses fonctions PHP au format phpDoc&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;texte de documentation pr&#233;c&#233;dent le code source d'une fonction, dans un (&#8230;)&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; qui permet de g&#233;n&#233;rer automatiquement une &lt;a href=&#034;http://code.spip.net/autodoc/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;documentation technique du code source&lt;/a&gt; ;&lt;/li&gt;&lt;li&gt; nombreuses &#171; notices &#187; PHP corrig&#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;SPIP-3-1-les-performances-web-cote-client&#034;&gt;&lt;h2 class=&#034;h2&#034; id='SPIP-3-1-les-performances-web-cote-client'&gt; SPIP 3.1 : les performances web cot&#233; client&lt;a class='sommaire-back sommaire-back-6' href='#s-SPIP-3-1-les-performances-web-cote-client' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Dans une optique de performance, la m&#233;thode &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;getScript&lt;/code&gt; de la biblioth&#232;que JavaScript jQuery est surcharg&#233;e pour utiliser le cache navigateur. En effet, par d&#233;faut, jQuery ne met pas en cache ces &#233;l&#233;ments. Il est par cons&#233;quent conseill&#233; dans un squelette SPIP, utilisant &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jQuery.getScript(...)&lt;/code&gt;, d'appliquer le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;timestamp&lt;/code&gt; au fichier demand&#233;, de sorte qu'une modification du fichier source entra&#238;ne une actualisation du cache navigateur.&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;jQuery.getScript('[(#CHEMIN{prive/javascript/ui/widget.js}|timestamp)]', function(){ ... }); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Un header Link est envoy&#233; dans les en-t&#234;tes HTTP pour annoncer la feuille de style compress&#233;e pour qu'elle soit charg&#233;e plus rapidement par le navigateur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Biblioth&#232;que jQL dans le plugin Compresseur&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il est &#233;galement possible d'activer via la constante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_JS_ASYNC_LOAD&lt;/code&gt; un chargement asynchrone du JavaScript compress&#233; de l'espace public par l'interm&#233;diaire de la biblioth&#232;que jQL int&#233;gr&#233;e au compresseur. Il faut que les scripts &#171; inline &#187; soient compatibles.&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-site-existant-vers-SPIP-3-1&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Mettre-a-jour-un-site-existant-vers-SPIP-3-1'&gt;Mettre &#224; jour un site existant vers SPIP 3.1&lt;a class='sommaire-back sommaire-back-6' href='#s-Mettre-a-jour-un-site-existant-vers-SPIP-3-1' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;V&#233;rifier la compatibilit&#233; de ses plugins&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Avant le lancer la mise &#224; jour par les m&#233;thodes habituelles (FTP, Spip loader, Subversion), il est conseill&#233; de mettre &#224; jour ses plugins.&lt;br class='autobr' /&gt;
Le plugin suivant permet aussi de v&#233;rifier si les plugins de votre site sont bien compatibles avec SPIP 3.1&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://contrib.spip.net/Verifier-ses-plugins-pour-le-passage-a-SPIP-3-1&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://contrib.spip.net/Verifier-ses-plugins-pour-le-passage-a-SPIP-3-1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passer un plugin SPIP 3.0 vers SPIP 3.1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&#192; ce sujet, &lt;a href=&#034;http://contrib.spip.net/Passer-un-plugin-SPIP-3-0-vers-SPIP-3-1&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;consulter l'article de spip-contrib&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Au sommaire :&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Biblioth&#232;ques JavaScript jQuery et jQuery UI&lt;/li&gt;&lt;li&gt; Formulaires CVT&lt;/li&gt;&lt;li&gt; Jointures&lt;/li&gt;&lt;li&gt; Manipulation des logos&lt;/li&gt;&lt;li&gt; Balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#FICHIER&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Une fois test&#233; et approuv&#233;...&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&#201;volution des biblioth&#232;ques JavaScript&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La mise-&#224;-jour des biblioth&#232;ques JavaScript int&#233;gr&#233;es &#224; SPIP 3.1 peut dans certains cas n&#233;cessiter une mise-&#224;-jour des squelettes ou plugins lors d'une migration depuis SPIP 3.0. Particuli&#232;rement, pour les mises-&#224;-jour de jQuery et jQuery UI.&lt;br class='autobr' /&gt;
Vous pouvez regarder les conseils de mise-&#224;-jour de ces biblioth&#232;ques respectives :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; jQuery est mis &#224; jour de 1.7.2 &#224; 1.11.3 . Voir &lt;a href=&#034;http://blog.jquery.com/2012/08/09/jquery-1-8-released/&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;jquery 1.8&lt;/a&gt;, &lt;a href=&#034;http://blog.jquery.com/2013/01/15/jquery-1-9-final-jquery-2-0-beta-migrate-final-released/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;jQuery 1.9&lt;/a&gt;, &lt;a href=&#034;http://jquery.com/upgrade-guide/1.9/&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;jquery 1.9 guide de mise-&#224;-jour&lt;/a&gt;, &lt;a href=&#034;http://blog.jquery.com/2013/05/24/jquery-1-10-0-and-2-0-1-released/&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;jQuery 1.10&lt;/a&gt;, &lt;a href=&#034;http://blog.jquery.com/2014/01/24/jquery-1-11-and-2-1-released/&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;jQuery 1.11&lt;/a&gt; ;&lt;/li&gt;&lt;li&gt; jQuery UI est mis &#224; jour de 1.8.21 &#224; 1.11.4. Voir les &lt;a href=&#034;http://jqueryui.com/upgrade-guide/&#034; class=&#034;spip_out&#034; hreflang=&#034;en&#034; rel=&#034;external&#034;&gt;guides de migration&lt;/a&gt;. Notez &#233;galement que les emplacement des fichiers JavaScript et CSS dans jQuery UI comme dans le plugin SPIP jQuery UI ont chang&#233;. Les inclusions de ces scripts dans les squelettes devront donc probablement &#234;tre r&#233;&#233;crites.&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;texte de documentation pr&#233;c&#233;dent le code source d'une fonction, dans un format pr&#233;cis&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
