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

<channel xml:lang="fr">
	<title>SPIP</title>
	<link>https://www.spip.net/</link>
	<description>Système de Publication pour Internet</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.spip.net/spip.php?page=backend&amp;lang=fr" 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>



<itunes:explicit>yes</itunes:explicit><itunes:subtitle>Système de Publication pour Internet</itunes:subtitle><item xml:lang="fr">
		<title>_IS_BOT</title>
		<link>https://www.spip.net/fr_article7163.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7163.html</guid>
		<dc:date>2026-05-20T13:32:38Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>JLuc</dc:creator>



		<description>
&lt;p&gt;Cette constante indique si c'est un robot connu de SPIP qui consulte la page courante. &lt;br class='autobr' /&gt;
Exemple d'usage en PHP, dans le plugin pdf_version, pour refuser aux robots l'accès aux fichiers pdf : function autoriser_voirpdfversion_dist($faire, $type, $id, $qui, $opt) if (_IS_BOT) return false ; return autoriser('voir', $type, $id, $qui, $opt) ;&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Cette constante indique si c'est un robot connu de SPIP qui consulte la page courante.&lt;/p&gt;
&lt;p&gt;Exemple d'usage en PHP, dans le plugin pdf_version, pour refuser aux robots l'accès aux fichiers pdf :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="php" class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;function autoriser_voirpdfversion_dist($faire, $type, $id, $qui, $opt) { if (_IS_BOT) { return false; } return autoriser('voir', $type, $id, $qui, $opt); } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Migration d'un SPIP 1 ou 2 vers SPIP 3.2.19</title>
		<link>https://www.spip.net/fr_article7338.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7338.html</guid>
		<dc:date>2026-04-15T18:35:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierre KUHN</dc:creator>



		<description>
&lt;p&gt;Cette documentation concerne le passage d'un SPIP 1 ou 2 vers SPIP 3.2.19 &lt;br class='autobr' /&gt;
La méthode proposée permet de partir sur des bases saines en effectuant un grand ménage dans les fichiers de SPIP et de repartir à zéro sur de nouveaux plugins (SPIP permet d'installer des plugins très rapidement). &lt;br class='autobr' /&gt; Sauvegarde avant la migration &lt;br class='autobr' /&gt;
Sauvegarde de la base de données Si vous en avez la possibilité, il est sage de faire une sauvegarde de la base MySQL via PHPMyAdmin, disponible sur beaucoup (…)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Cette documentation concerne le passage d'un SPIP 1 ou 2 vers SPIP 3.2.19&lt;/p&gt;
&lt;p&gt;La méthode proposée permet de partir sur des bases saines en effectuant un grand ménage dans les fichiers de SPIP et de repartir à zéro sur de nouveaux plugins (SPIP permet d'installer des plugins très rapidement).&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class="well nav-sommaire nav-sommaire-9" id="nav6a2a21af03e344.77615540"&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; &lt;a id="s-Sauvegarde-avant-la-migration"&gt;&lt;/a&gt;&lt;a href="#Sauvegarde-avant-la-migration" class="spip_ancre"&gt;Sauvegarde avant la migration&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Verification-de-l-encodage-avant-la-migration"&gt;&lt;/a&gt;&lt;a href="#Verification-de-l-encodage-avant-la-migration" class="spip_ancre"&gt;Vérification de l'encodage avant la migration&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Verification-des-plugins"&gt;&lt;/a&gt;&lt;a href="#Verification-des-plugins" class="spip_ancre"&gt;Vérification des plugins&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Preparation-de-la-migration"&gt;&lt;/a&gt;&lt;a href="#Preparation-de-la-migration" class="spip_ancre"&gt;Préparation de la migration&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Mise-a-niveau-de-la-base"&gt;&lt;/a&gt;&lt;a href="#Mise-a-niveau-de-la-base" class="spip_ancre"&gt;Mise à niveau de la base&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-En-cas-de-probleme"&gt;&lt;/a&gt;&lt;a href="#En-cas-de-probleme" class="spip_ancre"&gt;En cas de problème&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Installation-des-plugins-et-squelettes"&gt;&lt;/a&gt;&lt;a href="#Installation-des-plugins-et-squelettes" class="spip_ancre"&gt;Installation des plugins et squelettes&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Menage"&gt;&lt;/a&gt;&lt;a href="#Menage" class="spip_ancre"&gt;Ménage&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-A-propos-de-cette-documentation"&gt;&lt;/a&gt;&lt;a href="#A-propos-de-cette-documentation" class="spip_ancre"&gt;À propos de cette documentation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Sauvegarde-avant-la-migration"&gt;&lt;h2 class="h2" id='Sauvegarde-avant-la-migration'&gt;&lt;a id="Sauvegarde_avant_la_migration"&gt;&lt;/a&gt;
Sauvegarde avant la migration &lt;a class='sommaire-back sommaire-back-9' href='#s-Sauvegarde-avant-la-migration' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Sauvegarde de la base de données&lt;/strong&gt;
&lt;br /&gt;- Si vous en avez la possibilité, il est sage de faire une sauvegarde de la base MySQL via PHPMyAdmin, disponible sur beaucoup d'hébergements, en faisant le choix d'une sauvegarde compressée.
&lt;br /&gt;- SPIP propose aussi un système de sauvegarde&lt;/p&gt;
&lt;ol class="spip" role="list"&gt;&lt;li&gt; Récupérer par ftp le fichier généré : format xml pour les spip2, dans tmp/dump (ou ecrire/data pour un spip plus ancien)&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Sauvegarde des dossiers personnels&lt;/strong&gt;
&lt;br /&gt;- Récupérer par ftp les répertoires :&lt;/p&gt;
&lt;ul class="spip" role="list"&gt;&lt;li&gt; &lt;i&gt;IMG&lt;/i&gt;&lt;/li&gt;&lt;li&gt; &lt;i&gt;config&lt;/i&gt; (pour les spip très ancien munissez-vous de vos codes de base de données)&lt;/li&gt;&lt;li&gt; éventuellement &lt;i&gt;squelettes&lt;/i&gt; si son contenu pourrait être réutilisé&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Avec la sauvegarde de votre base de données et le dossier IMG (qui contient tous les documents et images joints à votre site), vos contenus sont sauvegardés. &lt;i&gt;config&lt;/i&gt; contient les infos de connexion à la base de données et squelettes vos personnalisations de squelette. Notez éventuellement la version précise de SPIP utilisée (avant cette migration).&lt;/p&gt;
&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Verification-de-l-encodage-avant-la-migration"&gt;&lt;h2 class="h2" id='Verification-de-l-encodage-avant-la-migration'&gt;&lt;a id="Verification_encodage"&gt;&lt;/a&gt;
Vérification de l'encodage avant la migration &lt;a class='sommaire-back sommaire-back-9' href='#s-Verification-de-l-encodage-avant-la-migration' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Si votre site est suffisamment récent (site en utf-8) ou si l'encodage de celui-ci est déjà en utf-8, vous pouvez passer à l'étape suivante.&lt;/p&gt;
&lt;p&gt;Pour le savoir, voir dans les paramètres de langue.&lt;/p&gt;
&lt;p&gt;Si l'encodage est en iso-8859-1, il est conseillé de passer votre site en utf-8. Une telle procédure est proposé dans SPIP 2 :&lt;/p&gt;
&lt;ul class="spip" role="list"&gt;&lt;li&gt; faire une sauvegarde de la base de données (en principe vous en avez déjà une)&lt;/li&gt;&lt;li&gt; dans la page de gestion des langues, cliquer sur le lien proposé vers « la page de conversion vers l'utf-8 » ( url : ecrire/ ?exec=convert_utf8)&lt;/li&gt;&lt;li&gt; lancer ensuite la page : ecrire/ ?exec=sql_convert_utf8&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Verification-des-plugins"&gt;&lt;h2 class="h2" id='Verification-des-plugins'&gt;&lt;a id="Verification_plugins"&gt;&lt;/a&gt;
Vérification des plugins &lt;a class='sommaire-back sommaire-back-9' href='#s-Verification-des-plugins' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Penser à mettre à jour vos plugins pour limiter les incompatibilités.&lt;/p&gt;
&lt;p&gt;Les plugins non compatibles seront désactivés lors de l'installation de la nouvelle version.&lt;/p&gt;
&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Preparation-de-la-migration"&gt;&lt;h2 class="h2" id='Preparation-de-la-migration'&gt;&lt;a id="Preparation_migration"&gt;&lt;/a&gt;
Préparation de la migration &lt;a class='sommaire-back sommaire-back-9' href='#s-Preparation-de-la-migration' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Vérifiez la version PHP qui est exécutée sur votre serveur (via &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;https://example.com/ecrire/?exec=info&lt;/code&gt; par exemple). &lt;br class='autobr' /&gt;
SPIP 2 fonctionne en PHP 4.x et SPIP 3 nécessite PHP en version 5.1 minimum. &lt;br class='autobr' /&gt;
Si nécessaire, voyez avec votre hébergeur comment utiliser une version récente de PHP 5.3 ou 5.4, par exemple.&lt;/p&gt;
&lt;p&gt;Pour exécuter SPIP 3.2, il vous &lt;strong&gt;faut&lt;/strong&gt; PHP 5.4 minimum donc passer d'abord votre hébergement en PHP 5.4&lt;/p&gt;
&lt;ol class="spip" role="list"&gt;&lt;li&gt; Télécharger &lt;a href="https://files.spip.net/spip/archives/spip-v3.2.19.zip" class="spip_out" rel="external"&gt;SPIP 3.2.19&lt;/a&gt; puis décompresser l'archive dans un dossier &lt;i&gt;spip&lt;/i&gt; de votre ordinateur&lt;/li&gt;&lt;li&gt; Créer par ftp le répertoire à la racine de votre site, sur le serveur : &lt;i&gt;/ancienSpip&lt;/i&gt;&lt;/li&gt;&lt;li&gt; Déplacer dedans tous les dossiers &lt;i&gt;plugins plugins-dist prive ecrire squelettes squelettes-dist local tmp&lt;/i&gt; et fichiers &lt;i&gt;spip.php index.php&lt;/i&gt; mais pas les dossiers &lt;i&gt;config IMG&lt;/i&gt;&lt;/li&gt;&lt;li&gt; Transférer par ftp les répertoires et fichiers contenus dans le dossier local &lt;i&gt;spip&lt;/i&gt; de votre ordinateur vers le dossier distant&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Mise-a-niveau-de-la-base"&gt;&lt;h2 class="h2" id='Mise-a-niveau-de-la-base'&gt;&lt;a id="maj_base"&gt;&lt;/a&gt;
Mise à niveau de la base &lt;a class='sommaire-back sommaire-back-9' href='#s-Mise-a-niveau-de-la-base' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;En fonction du type de mise à jour, une procédure de mise à niveau de la base de données vous sera proposé en accédant à l'espace privé. Suivez les indications.&lt;/p&gt;
&lt;ol class="spip" role="list"&gt;&lt;li&gt; Consulter votre site. Normalement, il devrait s'afficher (sous l'apparence des squelettes par défaut de SPIP)&lt;/li&gt;&lt;li&gt; Se connecter sur l'interface privé de SPIP avec un compte administrateur (en cas de difficulté, se rendre à l'url /ecrire du site).&lt;/li&gt;&lt;li&gt; Suivre la procédure de maintenance proposée.
&lt;div class='spip_document_4341 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len="34" data-legende-lenx="x"
&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH252/upgrade_1-3a316.png?1776278267' width='500' height='252' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-4341 '&gt;&lt;strong&gt;Mise à jour de la base - Etape 1
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div class='spip_document_4342 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len="34" data-legende-lenx="x"
&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH153/upgrade_2-8c8bd.png?1776278267' width='500' height='153' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-4342 '&gt;&lt;strong&gt;Mise à jour de la base - Etape 2
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div class='spip_document_4343 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len="34" data-legende-lenx="x"
&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH146/upgrade_3-d3a41.png?1776278267' width='500' height='146' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-4343 '&gt;&lt;strong&gt;Mise à jour de la base - Etape 3
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/li&gt;&lt;li&gt; Se rendre ensuite sur la page de gestion des plugins (dans configuration) afin de réactivé les plugins compatible et mettre à jour ceux qui ne le sont pas.&lt;/li&gt;&lt;li&gt; Vérifier que le site fonctionne.&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="En-cas-de-probleme"&gt;&lt;h2 class="h2" id='En-cas-de-probleme'&gt;&lt;a id="probleme"&gt;&lt;/a&gt;
En cas de problème &lt;a class='sommaire-back sommaire-back-9' href='#s-En-cas-de-probleme' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Si besoin (si on n'arrive plus à accéder à l'espace privé du site, si des erreurs récurrentes s'affichent), il peut aussi être utile de réinitialiser certains fichiers temporaires de SPIP.&lt;/p&gt;
&lt;p&gt;Il s'agit de vider le répertoire &lt;i&gt;tmp&lt;/i&gt; sauf éventuellement les sous-répertoires &lt;i&gt;dump&lt;/i&gt;, sessions et visites.&lt;/p&gt;
&lt;p&gt;Pour cette opération : aller dans le dossier &lt;i&gt;tmp&lt;/i&gt; et effacer tout sauf les dossiers &lt;i&gt;dump&lt;/i&gt; et visites. Il vous faudra ensuite vous reconnecter.&lt;/p&gt;
&lt;p&gt;Si un problème persiste, venez poser vos question sur le forum : &lt;a href="https://discuter.spip.net/c/spip/6" class="spip_url spip_out auto" rel="nofollow external"&gt;https://discuter.spip.net/c/spip/6&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Installation-des-plugins-et-squelettes"&gt;&lt;h2 class="h2" id='Installation-des-plugins-et-squelettes'&gt;&lt;a id="installation_plugins"&gt;&lt;/a&gt;
Installation des plugins et squelettes&lt;a class='sommaire-back sommaire-back-9' href='#s-Installation-des-plugins-et-squelettes' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Créer les dossier suivant à la racine de votre site :&lt;/p&gt;
&lt;ul class="spip" role="list"&gt;&lt;li&gt; /plugins (puis dans ce dossier, créer le dossier auto)&lt;/li&gt;&lt;li&gt; /lib&lt;/li&gt;&lt;li&gt; /squelettes&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Adaptez les droits de ces dossiers pour que le serveur puisse y écrire.&lt;/p&gt;
&lt;p&gt;Se rendre dans l'interface de gestion des plugins et, &lt;strong&gt;dans « dépôts », utiliser le dépôt proposé&lt;/strong&gt; - (&lt;i&gt;important pour la mise en œuvre de la nouvelle gestion des plugins&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;Installez les plugins nécessaires (les rechercher dans le moteur de recherche) au fonctionnement de votre site. Vérifiez que le site public fonctionne (éventuellement, vider le cache ou le répertoire &lt;i&gt;tmp&lt;/i&gt; comme expliqué ci-dessus). Repassez en revue les réglages des plugins (cliquez sur l'icône de configuration après les avoir activés).&lt;/p&gt;
&lt;p&gt;Rétablissez enfin si besoin vos personnalisations de squelettes en remettant progressivement les fichiers html dans votre dossier squelettes qui se trouve dans &lt;i&gt;/ancienSpip&lt;/i&gt;. Vérifiez que chacun produit bien le résultat souhaité.&lt;/p&gt;
&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Menage"&gt;&lt;h2 class="h2" id='Menage'&gt;&lt;a id="Menage"&gt;&lt;/a&gt;
Ménage &lt;a class='sommaire-back sommaire-back-9' href='#s-Menage' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Quand tout est terminé :&lt;/p&gt;
&lt;ul class="spip" role="list"&gt;&lt;li&gt; vérifier que les autres applications installées sur l'hébergement fonctionnent.&lt;/li&gt;&lt;li&gt; vérifier le contenu du dossier &lt;i&gt;/ancienSpip&lt;/i&gt;. Celui-ci ne devrait contenir que des dossiers et fichiers issus de votre ancien SPIP (&lt;i&gt;ecrire&lt;/i&gt;, &lt;i&gt;local&lt;/i&gt;, &lt;i&gt;tmp&lt;/i&gt;, &lt;i&gt;squelettes-dist&lt;/i&gt; ou &lt;i&gt;dist&lt;/i&gt;, &lt;i&gt;extensions&lt;/i&gt; et quelques fichiers)&lt;/li&gt;&lt;li&gt; supprimer finalement le dossier &lt;i&gt;/ancienSpip&lt;/i&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="A-propos-de-cette-documentation"&gt;&lt;h2 class="h2" id='A-propos-de-cette-documentation'&gt;&lt;a id="A_propos"&gt;&lt;/a&gt;
À propos de cette documentation &lt;a class='sommaire-back sommaire-back-9' href='#s-A-propos-de-cette-documentation' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Auteurs&lt;/strong&gt;&lt;/p&gt;
&lt;ul class="spip" role="list"&gt;&lt;li&gt; Michel Suquet&lt;/li&gt;&lt;li&gt; Johan Pustoch&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Adaptations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Collectif SPIP&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	<enclosure length="11347422" type="application/zip" url="https://files.spip.net/spip/archives/spip-v3.2.19.zip"/><itunes:explicit>yes</itunes:explicit><itunes:subtitle>Cette documentation concerne le passage d'un SPIP 1 ou 2 vers SPIP 3.2.19 La méthode proposée permet de partir sur des bases saines en effectuant un grand ménage dans les fichiers de SPIP et de repartir à zéro sur de nouveaux plugins (SPIP permet d'installer des plugins très rapidement). Sauvegarde avant la migration Sauvegarde de la base de données Si vous en avez la possibilité, il est sage de faire une sauvegarde de la base MySQL via PHPMyAdmin, disponible sur beaucoup (…) - Évolutions et mises à jour</itunes:subtitle><itunes:summary>Cette documentation concerne le passage d'un SPIP 1 ou 2 vers SPIP 3.2.19 La méthode proposée permet de partir sur des bases saines en effectuant un grand ménage dans les fichiers de SPIP et de repartir à zéro sur de nouveaux plugins (SPIP permet d'installer des plugins très rapidement). Sauvegarde avant la migration Sauvegarde de la base de données Si vous en avez la possibilité, il est sage de faire une sauvegarde de la base MySQL via PHPMyAdmin, disponible sur beaucoup (…) - Évolutions et mises à jour</itunes:summary></item>
<item xml:lang="fr">
		<title>_DIR_PLUGIN_XXX</title>
		<link>https://www.spip.net/fr_article7336.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7336.html</guid>
		<dc:date>2026-03-10T15:00:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>JLuc</dc:creator>


		<dc:subject>_DIR_PLUGIN_XXX</dc:subject>

		<description>
&lt;p&gt;La constante _DIR_PLUGIN_TRUC indique le chemin du dossier où est installé le plugin truc. &lt;br class='autobr' /&gt;
On peut s'en servir en PHP pour inclure des fichiers de ce plugin : include_once _DIR_PLUGIN_TRUC . 'inc/une_inclusion.php ;' &lt;br class='autobr' /&gt;
Toutefois, pour que d'autres plugins puissent surcharger l'inclusion, on préférera ne pas utiliser cette constante mais la fonction include_spip, car celle-ci parcourt tous les chemins accessibles : include_spip( 'inc/une_inclusion.php) ; &lt;br class='autobr' /&gt;
Voir : fonction include_spip&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/@_dir_plugin_xxx" rel="tag"&gt;_DIR_PLUGIN_XXX&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;La constante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_DIR_PLUGIN_TRUC&lt;/code&gt; indique le chemin du dossier où est installé le plugin &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;truc&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On peut s'en servir en PHP pour inclure des fichiers de ce plugin :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="php" class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;include_once _DIR_PLUGIN_TRUC . 'inc/une_inclusion.php;' &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Toutefois, pour que d'autres plugins puissent surcharger l'inclusion, on préférera ne pas utiliser cette constante mais la fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;include_spip&lt;/code&gt;, car celle-ci parcourt tous les chemins accessibles :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="php" class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;include_spip( 'inc/une_inclusion.php); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Voir : &lt;a href="https://programmer.spip.net/include_spip" class="spip_out" rel="external"&gt;fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;include_spip&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>_IFRAME_SAFE_DOMAINS</title>
		<link>https://www.spip.net/fr_article7328.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7328.html</guid>
		<dc:date>2026-02-17T18:04:41Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>JLuc</dc:creator>


		<dc:subject>SPIP 4.4</dc:subject>
		<dc:subject>_IFRAME_SAFE_DOMAINS</dc:subject>

		<description>
&lt;p&gt;Par mesure de sécurité, les iframes sont masquées dans l'espace privé à partir de SPIP 4.4.8, sauf pour les domaines explicitement autorisés via une constante _IFRAME_SAFE_DOMAINS. &lt;br class='autobr' /&gt;
Cette constante doit contenir un tableau d'expression régulières décrivant tous les domaines autorisés, sans protocole, sans chemin et sans '/' à la fin. &lt;br class='autobr' /&gt;
Exemple : define ('_IFRAME_SAFE_DOMAINS', [ 'fr\.wikipedia.org', '.*\.spip\.net']) ;&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/@spip44" rel="tag"&gt;SPIP 4.4&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@_iframe_safe_domains" rel="tag"&gt;_IFRAME_SAFE_DOMAINS&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Par mesure de sécurité, les iframes sont masquées dans l'espace privé à partir de SPIP 4.4.8, sauf pour les domaines explicitement autorisés via une constante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_IFRAME_SAFE_DOMAINS&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Cette constante doit contenir un tableau d'expression régulières décrivant tous les domaines autorisés, sans protocole, sans chemin et sans '/' à la fin.&lt;/p&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="php" class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;define ('_IFRAME_SAFE_DOMAINS', [ 'fr\.wikipedia.org', '.*\.spip\.net']); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>#VIRTUEL</title>
		<link>https://www.spip.net/fr_article7116.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7116.html</guid>
		<dc:date>2025-05-08T15:17:39Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>JLuc</dc:creator>


		<dc:subject>BOUCLE(ARTICLES)</dc:subject>
		<dc:subject>#VIRTUEL</dc:subject>

		<description>
&lt;p&gt;Cette balise renvoie la valeur du champ de redirection saisi pour un article (cette saisie se fait dans la colonne secondaire de la page d'édition d'un article). &lt;br class='autobr' /&gt;
Cette possibilité doit avoir été activée dans la page de configuration "Contenu du site".&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/@bouclearticles" rel="tag"&gt;BOUCLE(ARTICLES)&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@virtuel" rel="tag"&gt;#VIRTUEL&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Cette balise renvoie la valeur du champ de redirection saisi pour un article (cette saisie se fait dans la colonne secondaire de la page d'édition d'un article).&lt;/p&gt;
&lt;p&gt;Cette possibilité doit avoir été activée dans la page de configuration "Contenu du site".&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>{virtuel}</title>
		<link>https://www.spip.net/fr_article7117.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7117.html</guid>
		<dc:date>2025-05-08T10:18:28Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>JLuc</dc:creator>


		<dc:subject>BOUCLE(ARTICLES)</dc:subject>
		<dc:subject>virtuel</dc:subject>

		<description>
&lt;p&gt;Le critère virtuel d'une boucle ARTICLES permet de ne retenir que les articles virtuels (qui redirigent vers une autre url). &lt;br class='autobr' /&gt;
Inversement, avec virtuel='' ou !virtuel , la boucle ne retournera que les articles non redirigés. &lt;br class='autobr' /&gt;
Voir : #VIRTUEL&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique544.html" rel="directory"&gt;Critères&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@bouclearticles" rel="tag"&gt;BOUCLE(ARTICLES)&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@virtuel" rel="tag"&gt;virtuel&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Le critère &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{virtuel}&lt;/code&gt; d'une boucle ARTICLES permet de ne retenir que les articles virtuels (qui redirigent vers une autre url).&lt;/p&gt;
&lt;p&gt;Inversement, avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{virtuel=''}&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{!virtuel}&lt;/code&gt; , la boucle ne retournera que les articles non redirigés.&lt;/p&gt;
&lt;p&gt;Voir : &lt;a href='https://www.spip.net/fr_article7116.html' class="spip_in"&gt;#VIRTUEL&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Utiliser Rector</title>
		<link>https://www.spip.net/fr_article7090.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7090.html</guid>
		<dc:date>2025-03-20T13:43:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bricebou</dc:creator>



		<description>
&lt;p&gt;Rector est un outil de refactoring et d'amélioration automatisé de code PHP ; SPIP s'est doté d'un jeu de règles : https://git.spip.net/spip-league/rector. &lt;br class='autobr' /&gt; * Préalable &lt;br class='autobr' /&gt;
Il faut un fichier composer.json à la racine du plugin, dans lequel on déclare le dépôt composer propre à SPIP : "repositories" : "spip" : "type" : "composer", "url" : "https://get.spip.net/composer" &lt;br class='autobr' /&gt; * (…)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Rector est un outil de refactoring et d'amélioration automatisé de code PHP ; SPIP s'est doté d'un jeu de règles : &lt;a href="https://git.spip.net/spip-league/rector" class="spip_out" rel="external"&gt;https://git.spip.net/spip-league/rector&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class="well nav-sommaire nav-sommaire-4" id="nav6a2a43ac7de857.45522489"&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; &lt;a id="s-Prealable"&gt;&lt;/a&gt;&lt;a href="#Prealable" class="spip_ancre"&gt;Préalable&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Installation"&gt;&lt;/a&gt;&lt;a href="#Installation" class="spip_ancre"&gt;Installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Configuration"&gt;&lt;/a&gt;&lt;a href="#Configuration" class="spip_ancre"&gt;Configuration&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Usage"&gt;&lt;/a&gt;&lt;a href="#Usage" class="spip_ancre"&gt;Usage&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Prealable"&gt;&lt;h2 class="h2" id='Prealable'&gt; Préalable&lt;a class='sommaire-back sommaire-back-4' href='#s-Prealable' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Il faut un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;composer.json&lt;/code&gt; à la racine du plugin, dans lequel on déclare le dépôt composer propre à SPIP :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="json" class='spip_code spip_code_block language-json' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;{ "repositories": { "spip": { "type": "composer", "url": "https://get.spip.net/composer" } } } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Installation"&gt;&lt;h2 class="h2" id='Installation'&gt; Installation&lt;a class='sommaire-back sommaire-back-4' href='#s-Installation' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="precode"&gt;&lt;pre data-language="console" class='spip_code spip_code_block language-console' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;composer require --dev rector/rector spip-league/rector:"dev-main" &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Configuration"&gt;&lt;h2 class="h2" id='Configuration'&gt; Configuration&lt;a class='sommaire-back sommaire-back-4' href='#s-Configuration' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La configuration se fait dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rector.php&lt;/code&gt; à la racine de votre plugin :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="php" class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;?php declare(strict_types=1); use Rector\Config\RectorConfig; use Rector\Set\ValueObject\LevelSetList; use SpipLeague\Component\Rector\Set\SpipSetList; return RectorConfig::configure() -&gt;withPaths([__DIR__]) -&gt;withRootFiles() -&gt;withSets([SpipSetList::SPIP_41, LevelSetList::UP_TO_PHP_74]) -&gt;withSkip([ __DIR__ . '/lang', __DIR__ . '/vendor', ]) ; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On peut configurer des scripts dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;composer.json&lt;/code&gt; :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="json" class='spip_code spip_code_block language-json' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; "scripts": { "rector": "vendor/bin/rector process --ansi", "rector-dry-run": "vendor/bin/rector process --dry-run --ansi" } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Usage"&gt;&lt;h2 class="h2" id='Usage'&gt; Usage&lt;a class='sommaire-back sommaire-back-4' href='#s-Usage' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="precode"&gt;&lt;pre data-language="console" class='spip_code spip_code_block language-console' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;composer rector-dry-run composer rector composer rector dossier/fichier &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Utiliser ECS</title>
		<link>https://www.spip.net/fr_article7086.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7086.html</guid>
		<dc:date>2025-03-20T13:40:49Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bricebou</dc:creator>



		<description>
&lt;p&gt;SPIP propose un jeu de règles pour Easy Coding Standard (https://github.com/easy-coding-standard/easy-coding-standard) via le dépôt spip-league/easy-coding-standard. &lt;br class='autobr' /&gt;
L'utiliser permet de s'assurer de respecter les conventions d'écriture PHP utilisées dans la communauté SPIP. &lt;br class='autobr' /&gt; * Préalable &lt;br class='autobr' /&gt;
Il faut un fichier composer.json à la racine du plugin, dans lequel on déclare le dépôt composer propre à SPIP : "repositories" : "spip" : (…)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;SPIP propose un jeu de règles pour Easy Coding Standard (&lt;a href="https://github.com/easy-coding-standard/easy-coding-standard" class="spip_out" rel="external"&gt;https://github.com/easy-coding-standard/easy-coding-standard&lt;/a&gt;) via le dépôt &lt;a href="https://git.spip.net/spip-league/easy-coding-standard" class="spip_out" rel="external"&gt;spip-league/easy-coding-standard&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L'utiliser permet de s'assurer de respecter les conventions d'écriture PHP utilisées dans la communauté SPIP.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class="well nav-sommaire nav-sommaire-4" id="nav6a2a43ac7f9851.62162942"&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; &lt;a id="s-Prealable"&gt;&lt;/a&gt;&lt;a href="#Prealable" class="spip_ancre"&gt;Préalable&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Installation"&gt;&lt;/a&gt;&lt;a href="#Installation" class="spip_ancre"&gt;Installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Configuration"&gt;&lt;/a&gt;&lt;a href="#Configuration" class="spip_ancre"&gt;Configuration&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Usage"&gt;&lt;/a&gt;&lt;a href="#Usage" class="spip_ancre"&gt;Usage&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Prealable"&gt;&lt;h2 class="h2" id='Prealable'&gt; Préalable&lt;a class='sommaire-back sommaire-back-4' href='#s-Prealable' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Il faut un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;composer.json&lt;/code&gt; à la racine du plugin, dans lequel on déclare le dépôt composer propre à SPIP :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="json" class='spip_code spip_code_block language-json' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;{ "repositories": { "spip": { "type": "composer", "url": "https://get.spip.net/composer" } } } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Installation"&gt;&lt;h2 class="h2" id='Installation'&gt; Installation&lt;a class='sommaire-back sommaire-back-4' href='#s-Installation' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;L'installation se fait avec la commande :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="console" class='spip_code spip_code_block language-console' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;composer require --dev spip-league/easy-coding-standard &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Configuration"&gt;&lt;h2 class="h2" id='Configuration'&gt; Configuration&lt;a class='sommaire-back sommaire-back-4' href='#s-Configuration' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Créez le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ecs.php&lt;/code&gt; à la racine de votre plugin :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="php" class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;?php use SpipLeague\EasyCodingStandard\Set\SetList; use Symplify\EasyCodingStandard\Config\ECSConfig; return ECSConfig::configure() -&gt;withSets([SetList::SPIP]) -&gt;withPaths([__DIR__]) -&gt;withRootFiles() -&gt;withSkip([__DIR__ . '/lang', __DIR__ . '/vendor']) ; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Usage"&gt;&lt;h2 class="h2" id='Usage'&gt; Usage&lt;a class='sommaire-back sommaire-back-4' href='#s-Usage' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pour en faciliter l'usage, on peut ajouter des "alias" dans les scripts du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;composer.json&lt;/code&gt; :&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="json" class='spip_code spip_code_block language-json' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; "scripts": { "check-cs": "vendor/bin/ecs check --ansi", "fix-cs": "vendor/bin/ecs check --fix --ansi" } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="precode"&gt;&lt;pre data-language="console" class='spip_code spip_code_block language-console' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;composer fix-cs composer fix-cs inc/inc.inc &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>_AUTORISER_TELECHARGER_PLUGINS</title>
		<link>https://www.spip.net/fr_article7033.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7033.html</guid>
		<dc:date>2025-03-19T20:27:24Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierre KUHN</dc:creator>


		<dc:subject>_AUTORISER_TELECHARGER_PLUGINS</dc:subject>

		<description>
&lt;p&gt;La constante _AUTORISER_TELECHARGER_PLUGINS a comme valeur par défaut true, ainsi les admins d'un site peuvent ajouter ou mettre à jour les plugins du site. &lt;br class='autobr' /&gt;
Si vous souhaitez désactiver le chargement des plugins, elle peut être définie à false dans votre fichier config/mes_options.php (voir l'article qui lui est consacré). define('_AUTORISER_TELECHARGER_PLUGINS', false) ;&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/@_autoriser_telecharger_plugins" rel="tag"&gt;_AUTORISER_TELECHARGER_PLUGINS&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;La constante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_AUTORISER_TELECHARGER_PLUGINS&lt;/code&gt; a comme valeur par défaut &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;true&lt;/code&gt;, ainsi les admins d'un site peuvent ajouter ou mettre à jour les plugins du site.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez désactiver le chargement des plugins, elle peut être définie à &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;false&lt;/code&gt; dans votre 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="spip_in"&gt;l'article qui lui est consacré&lt;/a&gt;).&lt;/p&gt;
&lt;div class="precode"&gt;&lt;pre data-language="php" class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;define('_AUTORISER_TELECHARGER_PLUGINS', false); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>SPIP 4.4</title>
		<link>https://www.spip.net/fr_article7018.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article7018.html</guid>
		<dc:date>2025-02-14T13:30:11Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>b_b</dc:creator>



		<description>
&lt;p&gt;Cette branche LTS va bénéficier d'un support étendu jusqu'en juillet 2028. &lt;br class='autobr' /&gt; Compatibilité PHP 7.4 à 8.5 &lt;br class='autobr' /&gt;
SPIP 4.4 nécessite PHP 7.4 minimum, et fonctionne jusqu'à PHP 8.5. Il nécessite les extensions PHP : sodium, Zlib, Zip et Phar. &lt;br class='autobr' /&gt;
Changements apportés par SPIP 4.4 &lt;br class='autobr' /&gt;
Les changements les plus marquants sont le fait que SPIP n'envoie plus de mot de passe en clair dans les mails d'inscription et de rappel de mot de passe. &lt;br class='autobr' /&gt;
Côté technique on peut noter que les dossiers ecrire, prive, (…)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Cette branche LTS&lt;span class="spip_note_ref"&gt; [&lt;a href="#nb1" class="spip_note" rel="appendix" id="nh1"&gt;1&lt;/a&gt;]&lt;/span&gt; va bénéficier d'un support étendu jusqu'en juillet 2028.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class="well nav-sommaire nav-sommaire-9" id="nav6a2a42542ce046.41881913"&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; &lt;a id="s-Compatibilite-PHP-7-4-a-8-5"&gt;&lt;/a&gt;&lt;a href="#Compatibilite-PHP-7-4-a-8-5" class="spip_ancre"&gt;Compatibilité PHP 7.4 à 8.5&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Changements-apportes-par-SPIP-4-4"&gt;&lt;/a&gt;&lt;a href="#Changements-apportes-par-SPIP-4-4" class="spip_ancre"&gt;Changements apportés par SPIP 4.4&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Securite"&gt;&lt;/a&gt;&lt;a href="#Securite" class="spip_ancre"&gt;Sécurité&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Ajouts"&gt;&lt;/a&gt;&lt;a href="#Ajouts" class="spip_ancre"&gt;Ajouts&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Changements"&gt;&lt;/a&gt;&lt;a href="#Changements" class="spip_ancre"&gt;Changements&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Corrections"&gt;&lt;/a&gt;&lt;a href="#Corrections" class="spip_ancre"&gt;Corrections&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Depreciations"&gt;&lt;/a&gt;&lt;a href="#Depreciations" class="spip_ancre"&gt;Dépréciations&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Retraits"&gt;&lt;/a&gt;&lt;a href="#Retraits" class="spip_ancre"&gt;Retraits&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id="s-Plugins-compatibles"&gt;&lt;/a&gt;&lt;a href="#Plugins-compatibles" class="spip_ancre"&gt;Plugins compatibles&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Compatibilite-PHP-7-4-a-8-5"&gt;&lt;h2 class="h2" id='Compatibilite-PHP-7-4-a-8-5'&gt; Compatibilité PHP 7.4 à 8.5 &lt;a class='sommaire-back sommaire-back-9' href='#s-Compatibilite-PHP-7-4-a-8-5' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SPIP 4.4 nécessite PHP 7.4 minimum, et fonctionne jusqu'à PHP 8.5.&lt;br class='autobr' /&gt;
Il nécessite les extensions PHP : sodium, Zlib, Zip et Phar.&lt;/p&gt;
&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Changements-apportes-par-SPIP-4-4"&gt;&lt;h2 class="h2" id='Changements-apportes-par-SPIP-4-4'&gt;Changements apportés par SPIP 4.4&lt;a class='sommaire-back sommaire-back-9' href='#s-Changements-apportes-par-SPIP-4-4' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Les changements les plus marquants sont le fait que SPIP n'envoie plus de mot de passe en clair dans les mails d'inscription et de rappel de mot de passe.&lt;/p&gt;
&lt;p&gt;Côté technique on peut noter que les dossiers &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ecrire&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;prive&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;squelettes-dist&lt;/code&gt; ainsi que l'écran de sécurité s'installent avec Composer. Cela ne change rien pour les personnes qui utilisent spip_loader. À noter aussi, l'introduction des balises &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_DOCUMENT_FICHIER&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On peut également noter une série d'optimisations pour les filtres d'images.&lt;/p&gt;
&lt;p&gt;La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE&lt;/code&gt; remplace &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LARGEUR_ECRAN&lt;/code&gt; et permet d'utiliser de nouvelles dispositions pour les pages de l'espace privé :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE{fluide}&lt;/code&gt;, le contenu central s'adapte selon la présence ou pas de contenu dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#extra&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#navigation&lt;/code&gt;.&lt;/p&gt;
&lt;div class='spip_document_4257 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_flui-9b36212e.png' class="spip_doc_lien mediabox" type="image/png"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH194/disposition_flui-9b36212e-fa321.png?1739543711' width='500' height='194' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class='spip_document_4258 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_flui-44f5d7b1.png' class="spip_doc_lien mediabox" type="image/png"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH194/disposition_flui-44f5d7b1-d2ac5.png?1739543711' width='500' height='194' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class='spip_document_4259 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_flui-660a45c8.png' class="spip_doc_lien mediabox" type="image/png"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH194/disposition_flui-660a45c8-41ebb.png?1739543711' width='500' height='194' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE{pleine-largeur}&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_4260 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_plei-a46afc98.png' class="spip_doc_lien mediabox" type="image/png"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH191/disposition_plei-a46afc98-eafdc.png?1739543711' width='500' height='191' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE{complements-gauche}&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_4261 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_comp-f758c317.png' class="spip_doc_lien mediabox" type="image/png"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH191/disposition_comp-f758c317-6afc6.png?1739543711' width='500' height='191' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE{complements-droite}&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_4262 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_comp-5e19ffc0.png' class="spip_doc_lien mediabox" type="image/png"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH191/disposition_comp-5e19ffc0-35a7a.png?1739543711' width='500' height='191' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE{complements-bas}&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_4263 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_comp-7787f8f6.png' class="spip_doc_lien mediabox" type="image/png"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH213/disposition_comp-7787f8f6-bcf2a.png?1739543711' width='500' height='213' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE{complements-bas-inverse}&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_4264 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class="spip_doc_inner"&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_comp-d195e1b6.png' class="spip_doc_lien mediabox" type="image/png"&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH213/disposition_comp-d195e1b6-05090.png?1739543711' width='500' height='213' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Répertoires&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;- Le répertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vendor/&lt;/code&gt; se complète, avec l'arrivée de premières librairies &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip-league&lt;/code&gt;, qui vont faire une première passerelle vers des éléments du futur SPIP 5.0
&lt;br /&gt;- À ce titre, un répertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config/spip&lt;/code&gt; est maintenant présent également&lt;/p&gt;
&lt;hr class="spip" /&gt;
&lt;p&gt;Cette version apporte également d'autres améliorations ou corrections de bugs.&lt;/p&gt;
&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Securite"&gt;&lt;h2 class="h2" id='Securite'&gt;Sécurité&lt;a class='sommaire-back sommaire-back-9' href='#s-Securite' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; Nettoyer certaines entrées auteurs sur le formulaire d'édition d'auteur (évite de se retrouver dans des logs, si des logs verbeux sont activés)&lt;/li&gt;&lt;li&gt; Mise à jour de la liste des bots &amp; ajout de antennapod (lecteur RSS) comme bot licite&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Ajouts"&gt;&lt;h2 class="h2" id='Ajouts'&gt;Ajouts&lt;a class='sommaire-back sommaire-back-9' href='#s-Ajouts' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; Ne pas envoyer de mot de passe en clair, mais plutôt des liens pour définir son mot de passe&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;copie_locale()&lt;/code&gt; passe une clé &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;action&lt;/code&gt; au pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;post_edition&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Chaînes de langue supplémentaire pour les listes d'articles&lt;/li&gt;&lt;li&gt; Balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#TRAD{module:cle, #ARRAY{param, val, ..}, #ARRAY{option, val..}}&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Balise #MIME_TYPE calculée&lt;/li&gt;&lt;li&gt; Balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_DOCUMENT_FICHIER&lt;/code&gt; renvoyant toujours le fichier d'un document, ce qui permet quand on le souhaite d'utiliser &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_DOCUMENT&lt;/code&gt; pour renvoyer vers une page web. Les modèles de document sont mis à jour pour utiliser cette balise.&lt;/li&gt;&lt;li&gt; Les actions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ajouter_lien&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;supprimer_lien&lt;/code&gt; peuvent gérer un qualificatif&lt;/li&gt;&lt;li&gt; Pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ajouter_menus_args&lt;/code&gt;, en complément au pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ajouter_menus&lt;/code&gt;, qui transmet les arguments de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;definir_barre_boutons()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Purger les variables de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;var_nullify&lt;/code&gt; du contexte dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;traiter_appels_inclusions_ajax&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PARAM&lt;/code&gt; pour récupérer les paramètres du container de services&lt;/li&gt;&lt;li&gt; Le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|affdate&lt;/code&gt; accepte un timestamp en entrée&lt;/li&gt;&lt;li&gt; Fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_image_extensions_logos()&lt;/code&gt; et pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_extensions_logos&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Commande cli pour purger les images cache trop anciennes (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cache-gd2&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cache-vignettes&lt;/code&gt;)&lt;/li&gt;&lt;li&gt; Filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_oriente_selon_exif()&lt;/code&gt; pour réorienter automatiquement une image selon son exif&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Changements"&gt;&lt;h2 class="h2" id='Changements'&gt;Changements&lt;a class='sommaire-back sommaire-back-9' href='#s-Changements' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; Les dossiers &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ecrire&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;prive&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;squelettes-dist&lt;/code&gt; s'installent avec Composer&lt;/li&gt;&lt;li&gt; L'écran de sécurité s'installe avec Composer&lt;/li&gt;&lt;li&gt; Mise à jour des chaînes de langues depuis trad.spip.net&lt;/li&gt;&lt;li&gt; Utiliser le pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;compter_contributions_auteur&lt;/code&gt; dans la boite d'info d'un auteur&lt;/li&gt;&lt;li&gt; Possibilité de personnaliser les chaînes de langue singulier et pluriel du titre de toutes les listes d'objets&lt;/li&gt;&lt;li&gt; Nouveaux layouts pour le privé (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE&lt;/code&gt;) : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;defaut&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fluide&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pleine-largeur&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;complements-droite&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;complements-bas&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;complements-bas-inverse&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Les valeurs d'environnement explicitement vidées en ajax passent par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;var_nullify&lt;/code&gt; pour en être totalement expurgées&lt;/li&gt;&lt;li&gt; Permettre de trier les comptes visiteurs "nouveau" par date d'inscription-relance&lt;/li&gt;&lt;li&gt; Ajouter l'heure de publication à côté de la date&lt;/li&gt;&lt;li&gt; Utiliser des variables CSS et propriétés logiques dans l'espace privé pour éviter la compilation des fichiers CSS&lt;/li&gt;&lt;li&gt; La page de contrôle des tâches utilise le layout &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;complement-gauche&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Utilisation de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_extensions_logos()&lt;/code&gt; à la place de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$GLOBALS['formats_logos']&lt;/code&gt;&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éorientent l'image selon l'exif d'orientation&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Corrections"&gt;&lt;h2 class="h2" id='Corrections'&gt;Corrections&lt;a class='sommaire-back sommaire-back-9' href='#s-Corrections' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; Dans l'espace privé, éviter une scrollbar horizontale dans certaines configurations de systèmes d'exploitation.&lt;/li&gt;&lt;li&gt; Aligner le contenu de la bande en_lignes avec celui du bandeau&lt;/li&gt;&lt;li&gt; Meilleur affichage des listes d'objets sur petit écran&lt;/li&gt;&lt;li&gt; Pas de marge basse sur les derniers éléments des réponses&lt;/li&gt;&lt;li&gt; Charger l'autoloader dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;prive.php&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Éviter un warning PHP si le fichier du logo n'est pas présent&lt;/li&gt;&lt;li&gt; Suivre medias sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;inc_vignette_dist&lt;/code&gt; qui attend un paramètre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;medias&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Rétablir le masquage des documents vus dans le bloc des documents&lt;/li&gt;&lt;li&gt; Ne plus déclarer de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;z-index&lt;/code&gt; sur les colonnes qui sont déjà en flex&lt;/li&gt;&lt;li&gt; Réparer la rotation des images avec convert&lt;/li&gt;&lt;li&gt; Pouvoir scroller après avoir quitté le mode plein écran via la touche &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;ESC&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Utiliser pour &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;IMAGETYPE_SVG&lt;/code&gt; une valeur qui ne risque pas une collision avec un futur ajout de format image (19 a été pris par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;IMAGETYPE_AVIF&lt;/code&gt; entre temps)&lt;/li&gt;&lt;li&gt; Correction d'une erreur fatale sur l'appel à &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;phraser_champs_interieurs()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Utiliser &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fpassthru()&lt;/code&gt; pour livrer directement les fichiers et éviter un memory limit plutôt que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;readfile()&lt;/code&gt; qui passe par un chargement en mémoire du fichier&lt;/li&gt;&lt;li&gt; Requêter les fichiers distants avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;STREAM_CRYPTO_METHOD_TLS_CLIENT&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Remplacer les balises &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tt&lt;/code&gt; obsolètes par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;code&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Les emails des auteurs sont masqués par défaut&lt;/li&gt;&lt;li&gt; Transmettre au pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;compter_contributions_auteur&lt;/code&gt; le nombre de contribution sur les articles&lt;/li&gt;&lt;li&gt; Passer l'url à l'item de langue &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pass_reset_url&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Pour le formulaire générique d'institution d'objet, tester l'autorisation &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;publierdans&lt;/code&gt; en utilisant le parent déclaré par l'API de parenté&lt;/li&gt;&lt;li&gt; Dans le formulaire générique d'institution d'un objet, utiliser le même jeu de test pour l'affichage du statut &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;publie&lt;/code&gt; dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;charger&lt;/code&gt; et pour la validation dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;verifier&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Pouvoir supprimer l'image de l'écran de connexion&lt;/li&gt;&lt;li&gt; Pouvoir modifier logo principal quand il y a un logo de survol&lt;/li&gt;&lt;li&gt; Inclusion manquante dans certains contextes ajax pour bigup&lt;/li&gt;&lt;li&gt; Vérifier l'existence de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;exif_read_data()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Éviter des warnings sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_oriente_selon_exif()&lt;/code&gt; en absence d'image&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; &amp; &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ètre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;crop&lt;/code&gt; de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_rotation()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Message de retour des formulaires en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;div&lt;/code&gt; plutot qu'en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;p&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Le mimetype &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;audio/x-m4a&lt;/code&gt; est un alias de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;audio/mp4a-latm&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Appel à la globale &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$formats_logos&lt;/code&gt; remplacée par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_image_extensions_acceptees_en_entree()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Corriger la duplication (plugin Duplicator par exemple) de logo si le dossier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tmp/upload&lt;/code&gt; n'existe pas&lt;/li&gt;&lt;li&gt; Affichage du sélecteur de rôles de documents (avec le plugin en question)&lt;/li&gt;&lt;li&gt; Affichage des aperçus dans les modèles &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;emb&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Correction du chemin des plugins de la librairie mediaelements et suppression du fallback Flash&lt;/li&gt;&lt;li&gt; Ajouter le pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;afficher_config_objet&lt;/code&gt; qui manquait sur les pages mots et groupes_mots.&lt;/li&gt;&lt;li&gt; Dédoublonner test de statut dans une requête SQL.&lt;/li&gt;&lt;li&gt; Support de la branche 4.4 de SPIP dans le référentiel des plugins&lt;/li&gt;&lt;li&gt; Invalider le cache (même pour les bots) lorsqu'une URL permanente est ajoutée&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Depreciations"&gt;&lt;h2 class="h2" id='Depreciations'&gt;Dépréciations&lt;a class='sommaire-back sommaire-back-9' href='#s-Depreciations' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; Inclusion de fichier PHP via &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;INCLURE(fichier.php)&gt;&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;INCLURE{fond=fichier.php}&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Balise fermante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;/INCLURE&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LARGEUR_ECRAN&lt;/code&gt; pour les squelettes du privé à remplacer par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE&lt;/code&gt;&lt;/li&gt;&lt;li&gt; À partir de SPIP 5, l'appel des chaînes de langues en squelette sera sensible à la casse de la déclaration, il n'y aura plus de conversion automatique en minuscule&lt;/li&gt;&lt;li&gt; Fonction interne &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;phraser_boucle_placeholder()&lt;/code&gt; à remplacer par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;phraser_placeholder_memoriser()&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;phraser_placeholder_reinjecter()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Fonction interne &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;public_generer_boucle_placeholder()&lt;/code&gt; à remplacer par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;public_placeholder_generer()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Les fichiers de langue peuplant une &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$GLOBALS&lt;/code&gt; sont dépréciés ; renvoyer directement un tableau&lt;/li&gt;&lt;li&gt; Constante obsolète &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_DIR_IMG_PACK&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Globales &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$traiter_math&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$tex_server&lt;/code&gt;, fonctions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;produire_image_math()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;traiter_math()&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;replace_math()&lt;/code&gt;, utiliser le plugin &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mathjax&lt;/code&gt; à la place&lt;/li&gt;&lt;li&gt; Modifier la globale &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$formats_logos&lt;/code&gt; est déprécié : utiliser le pipeline &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_extensions_logos&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Appeler la globale &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$formats_logos&lt;/code&gt; est déprécié, utiliser la fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_images_extensions_logos()&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Dépréciation de la constante &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_DIR_RESTREINT_ABS&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_typo&lt;/code&gt;, et fonctions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rtl_mb_ord()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rtl_reverse()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rtl_visuel()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;printWordWrapped()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;produire_image_typo()&lt;/code&gt;, installer le plugin &lt;a href="https://plugins.spip.net/image_typo.html" class="spip_out" rel="external"&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Images typographiques&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Retraits"&gt;&lt;h2 class="h2" id='Retraits'&gt;Retraits&lt;a class='sommaire-back sommaire-back-9' href='#s-Retraits' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class="spip" role="list"&gt;&lt;li&gt; Fonctions &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;verif_butineur()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;editer_texte_recolle()&lt;/code&gt; et environnement &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_texte_trop_long&lt;/code&gt; des formulaires (inutilisé — servait pour IE)&lt;/li&gt;&lt;li&gt; Prise en compte de l'environnement de formulaire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_texte_trop_long&lt;/code&gt; (servait pour IE)&lt;/li&gt;&lt;li&gt; Un fichier de langue obsolète et non traduit.&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class="sommaire-section sommaire-section_niveau1 sommaire-section_h2" aria-labelledby="Plugins-compatibles"&gt;&lt;h2 class="h2" id='Plugins-compatibles'&gt;Plugins compatibles&lt;a class='sommaire-back sommaire-back-9' href='#s-Plugins-compatibles' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Comme pour la version précédente, la plupart des plugins sont déjà compatibles avec SPIP 4.4, ce qui facilitera les mises à 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="spip_in"&gt;Effectuer une mise à jour&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id="nb1"&gt;
&lt;p&gt;&lt;span class="spip_note_ref"&gt;[&lt;a href="#nh1" class="spip_note" title="Notes 1" rev="appendix"&gt;1&lt;/a&gt;] &lt;/span&gt;&lt;a href="https://fr.wikipedia.org/wiki/Long-term_support" class="spip_url spip_out auto" rel="nofollow external"&gt;https://fr.wikipedia.org/wiki/Long-term_support&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>