<?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="en">
	<title>SPIP</title>
	<link>https://www.spip.net/</link>
	<description>Syst&#232;me de Publication pour Internet</description>
	<language>en</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.spip.net/spip.php?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="en">
		<title>Configuring a feature of your site or a plugin</title>
		<link>https://www.spip.net/en_article7334.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article7334.html</guid>
		<dc:date>2026-02-28T11:11:15Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>jack</dc:creator>


		<dc:subject>CVT Forms</dc:subject>
		<dc:subject>SPIP 3.0</dc:subject>

		<description>
&lt;p&gt;Configuring a feature or plugin involves defining values for their various parameters. To do this, you need to define a form and be able to access the parameter values anywhere in your templates. &lt;br class='autobr' /&gt;
CVT forms also make it easy to create a configuration page for a feature on your site or for configuring a plugin. &lt;br class='autobr' /&gt;
A configuration mode is built into SPIP. &lt;br class='autobr' /&gt; Configuration Form &lt;br class='autobr' /&gt;
Suppose you have a &#8216;thing' feature to configure. Create a CVT form whose name begins with &#8216;configure_', with just (&#8230;)&lt;/p&gt;


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

/ 
&lt;a href="https://www.spip.net/@multifrformulairescvtencvtformsesformularioscvtcaformulariscvtmulti" rel="tag"&gt;CVT Forms&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@spip30" rel="tag"&gt;SPIP 3.0&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Configuring a feature or plugin involves defining values for their various parameters. To do this, you need to define a form and be able to access the parameter values anywhere in your templates.&lt;/p&gt;
&lt;p&gt;CVT forms also make it easy to create a configuration page for a feature on your site or for configuring a plugin.&lt;/p&gt;
&lt;p&gt;A configuration mode is built into SPIP.&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;nav69e1968825eea5.55177972&#034;&gt;
&lt;h2&gt;Table of contents&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Configuration-Form&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Configuration-Form&#034; class=&#034;spip_ancre&#034;&gt;Configuration Form&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Configuring-a-plugin&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Configuring-a-plugin&#034; class=&#034;spip_ancre&#034;&gt;Configuring a plugin&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Access-configured-values&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Access-configured-values&#034; class=&#034;spip_ancre&#034;&gt;Access configured values&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Autorisations&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Autorisations&#034; class=&#034;spip_ancre&#034;&gt;Autorisations&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Customise-treatments&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Customise-treatments&#034; class=&#034;spip_ancre&#034;&gt;Customise treatments&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Use-another-table-to-store-the-configured-values&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Use-another-table-to-store-the-configured-values&#034; class=&#034;spip_ancre&#034;&gt;Use another table to store the configured values&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Configuration-Form&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Configuration-Form'&gt;Configuration Form &lt;a class='sommaire-back sommaire-back-6' href='#s-Configuration-Form' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Suppose you have a &#8216;thing' feature to configure.&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Create a CVT form whose name begins with &#8216;configure_', with just the HTML file and without the PHP (and therefore without defining the load, verify and process functions)&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;To further simplify the creation of this form, you can use the Entries plugin&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;li&gt; create a page &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configure_thing.html&lt;/code&gt; in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;private/squelettes/contenu/&lt;/code&gt;, inside your plugin or your skeleton directory. Inside, call the form with simply &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#FORMULAIRE_CONFIGURER_THING&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;That's all!&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Configuring-a-plugin&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Configuring-a-plugin'&gt;Configuring a plugin&lt;a class='sommaire-back sommaire-back-6' href='#s-Configuring-a-plugin' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When a plugin has a configuration page, a &#8216;Configure' option leading to this page automatically appears next to this plugin in the plugin administration page.&lt;/p&gt;
&lt;p&gt;This page is defined by the template &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;prive/squelettes/contenu/configurer_prefixeplugin.html&lt;/code&gt; and most often uses a configuration form.&lt;/p&gt;
&lt;p&gt;Example: for the &#8220;mediabox&#8221; plugin, the file &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;prive/squelettes/contenu/configurer_mediabox.html&lt;/code&gt; contains:&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;[(#AUTORISER{configurer,mediabox}|oui) &lt;h1&gt;&lt;:mediabox:titre_page_configurer_box:&gt;&lt;/h1&gt; &lt;div class=&#034;ajax&#034;&gt; #FORMULAIRE_CONFIGURER_MEDIABOX &lt;/div&gt; ] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If you want an entry to also appear in the menus in the private area to give you direct access to this configuration page, add a &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;menu&gt;&lt;/code&gt; entry in the &lt;a href=&#034;https://plugins.spip.net/redaction-du-paquet-xml.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;paquet.xml file&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Example :&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;menu nom=&#034;thing&#034; titre=&#034;prefixeplugin:itemdelangue_thing&#034; parent=&#034;bando_configuration&#034; icone=&#034;images/thing-16.png&#034; /&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To initialise the value of a configuration (e.g. the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;in_the_spotlight&lt;/code&gt; parameter) when creating or updating the plugin, add the following to the myplugin_upgrade() pipeline:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; during creation:
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$maj['create'] = array( array('ecrire_config','myplugin/in_the_spotlight', '3'), ); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; during an update:
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$maj['0.1'] = array( array('ecrire_config','myplugin/in_the_spotlight', '3'), ); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;To clear the value when uninstalling the plugin, add the following to the pipeline: myplugin_vider_tables():&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;effacer_config(&#034;myplugin/in_the_spotlight&#034;); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Access-configured-values&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Access-configured-values'&gt;Access configured values&lt;a class='sommaire-back sommaire-back-6' href='#s-Access-configured-values' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;In a template&lt;/strong&gt;, the value of a configuration can be accessed using the &lt;a href='https://www.spip.net/en_article5097.html' class=&#034;spip_in&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#CONFIG&lt;/code&gt;&lt;/a&gt; tag (for example &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#CONFIG{myplugin/in_the_spotlight}&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In PHP&lt;/strong&gt; the values can be accessed in read mode using the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lire_config&lt;/code&gt; function with &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lire_config(&#8220;myplugin/in_the_spotlight&#8221;)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When writing, use the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ecrire_config&lt;/code&gt; function:&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ecrire_config('myplugin/in_the_spotlight', 3)&lt;/code&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Autorisations&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Autorisations'&gt;Autorisations&lt;a class='sommaire-back sommaire-back-6' href='#s-Autorisations' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Not all users have access to the configuration page. By default, only administrators have this option, but you can redefine access rights to your configuration form. To do this, use the php &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;authorise&lt;/code&gt; API, as well as the &lt;a href='https://www.spip.net/en_article5103.html' class=&#034;spip_in&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#AUTHORISE&lt;/code&gt;&lt;/a&gt; tag and the &lt;a href='https://www.spip.net/en_article6612.html' class=&#034;spip_in&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;otherwise_deny_access&lt;/code&gt;&lt;/a&gt; filter for your form template.&lt;/p&gt;
&lt;p&gt;Example : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#AUTORISER{configurer,mediabox}|sinon_interdire_acces)]&lt;/code&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Customise-treatments&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Customise-treatments'&gt;Customise treatments&lt;a class='sommaire-back sommaire-back-6' href='#s-Customise-treatments' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Sometimes, other specific treatments are required when configuration values are changed. In this case, the usual &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;traiter()&lt;/code&gt; function from the CVT API must be added, and the common function that handles configuration processing must be called:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;function formulaires_configurer_myplugin_traiter_dist() { include_spip('inc/cvt_configurer'); $retours = array(); // The new configuration is saved. $trace = cvtconf_formulaires_configurer_enregistre('configurer_myplugin', array()); // Customised treatments // &#8230; $retours['message_ok'] = _T('config_info_enregistree') . $trace; $retours['editable'] = true; return $retours; } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Use-another-table-to-store-the-configured-values&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Use-another-table-to-store-the-configured-values'&gt;Use another table to store the configured values&lt;a class='sommaire-back sommaire-back-6' href='#s-Use-another-table-to-store-the-configured-values' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By default, the configured values are stored in the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_meta&lt;/code&gt; table, and the entire table is loaded into memory with each hit. However, it is possible to use another table to store the configured values.&lt;/p&gt;
&lt;p&gt;For example, to use the meta_myplugin table, add the following line to the configuration form:&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;input type=&#034;hidden&#034; name=&#034;_meta_table&#034; value=&#034;meta_myplugin&#034; /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then, to access the values stored in this table, specify the table name prefixed with a / at the beginning of the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lire_config&lt;/code&gt; argument:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;ecrire_config('/meta_myplugin/description', 'blah'); lire_config('/meta_myplugin/argument'); &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In addition to &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_meta_table&lt;/code&gt;, the name of the table where the configured values are stored, there are three other useful variables to change where or how the configuration is saved:&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;_meta_casier&lt;/code&gt;: name of the &#8216;casier' in which to serialise (by default, this is the xx from &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;formulaire_configurer_xx&lt;/code&gt;)&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_meta_prefixe&lt;/code&gt;: prefix the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;meta&lt;/code&gt; (alternative to the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;casier&lt;/code&gt;) in the meta table (no default prefix)&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_meta_stockage&lt;/code&gt;: use an external storage method. None are provided by the core.&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;Footnotes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;To further simplify the creation of this form, you can use the &lt;a href=&#034;https://contrib.spip.net/Formulaire-de-configuration-avec-le-plugin-Saisies&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Entries&lt;/a&gt; plugin&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>#VIRTUEL</title>
		<link>https://www.spip.net/en_article7333.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article7333.html</guid>
		<dc:date>2026-02-28T09:34:16Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>jack</dc:creator>


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

		<description>
&lt;p&gt;This tag returns the value of the redirection field entered for an article (this entry is made in the navigation column of the article editing page). &lt;br class='autobr' /&gt;
This option must have been enabled in the &#8216;Site content' configuration page.&lt;/p&gt;


-
&lt;a href="https://www.spip.net/en_rubrique545.html" rel="directory"&gt;Tags&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;This tag returns the value of the redirection field entered for an article (this entry is made in the navigation column of the article editing page).&lt;/p&gt;
&lt;p&gt;This option must have been enabled in the &#8216;Site content' configuration page.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>{virtuel}</title>
		<link>https://www.spip.net/en_article7332.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article7332.html</guid>
		<dc:date>2026-02-24T09:34:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>jack</dc:creator>


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

		<description>
&lt;p&gt;The virtuel criterion in an ARTICLES loop allows only virtual articles (which redirect to another URL) to be retained. &lt;br class='autobr' /&gt;
Conversely, with virtuel='' or !virtuel, the loop will only return items that have not been redirected. &lt;br class='autobr' /&gt;
See: #VIRTUEL&lt;/p&gt;


-
&lt;a href="https://www.spip.net/en_rubrique546.html" rel="directory"&gt;Criteria&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;The &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{virtuel}&lt;/code&gt; criterion in an ARTICLES loop allows only virtual articles (which redirect to another URL) to be retained.&lt;/p&gt;
&lt;p&gt;Conversely, with &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{virtuel=''}&lt;/code&gt; or &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{!virtuel}&lt;/code&gt;, the loop will only return items that have not been redirected.&lt;/p&gt;
&lt;p&gt;See: &lt;a href='https://www.spip.net/en_article7333.html' class=&#034;spip_in&#034; hreflang=&#034;en&#034;&gt;#VIRTUEL&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>|wrap</title>
		<link>https://www.spip.net/en_article7331.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article7331.html</guid>
		<dc:date>2026-02-23T13:41:06Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>jack</dc:creator>


		<dc:subject>wrap</dc:subject>

		<description>
&lt;p&gt;The |wrap&lt;tag&gt; filter wraps the tag to which it is applied with the HTML tag specified as a parameter. &lt;br class='autobr' /&gt;
Simple examples [(#BALISE|wrap&lt;b&gt;)] &lt;br class='autobr' /&gt;
will display as HTML source:
&lt;br class='autobr' /&gt;
&lt;b&gt;blah blah&lt;/b&gt; [(#TITRE|wrap#TOTAL_BOUCLE|==1|?&lt;h1&gt;, &lt;h2&gt;)] &lt;br class='autobr' /&gt;
will display as HTML source if the loop returns only one result:
&lt;br class='autobr' /&gt;
&lt;h1&gt;The Title&lt;/h1&gt; &lt;br class='autobr' /&gt;
but will display:
&lt;br class='autobr' /&gt;
&lt;h2&gt;The Title&lt;/h2&gt;&lt;h2&gt;Another Title&lt;/h2&gt;
&lt;br class='autobr' /&gt;
if the loop returns several results. (&#8230;)&lt;/p&gt;


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

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

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;The &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|wrap{&lt;tag&gt;}&lt;/code&gt;&lt;/strong&gt; filter wraps the tag to which it is applied with the HTML tag specified as a parameter.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Simple examples&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#BALISE|wrap{&lt;b&gt;})]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;will display as HTML source:&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;b&gt;blah blah&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[(#TITRE|wrap{#TOTAL_BOUCLE|=={1}|?{&lt;h1&gt;, &lt;h2&gt;}})]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;will display as HTML source if the loop returns only one result:&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;h1&gt;The Title&lt;/h1&gt;&lt;/code&gt; &lt;br class='autobr' /&gt;
but will display:&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;h2&gt;The Title&lt;/h2&gt;&lt;h2&gt;Another Title&lt;/h2&gt;&lt;/code&gt;&lt;br class='autobr' /&gt;
if the loop returns several results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTML tag sequences&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It is also possible to pass a series of tags as arguments. The final tags will be calculated to produce a correct nesting. The tags specified as filter arguments may include attributes.&lt;/p&gt;
&lt;p&gt;Example :&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;[(#BALISE|wrap{&lt;div&gt;&lt;span class=&#034;thing&#034;&gt;&lt;b&gt;})]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;will display as HTML source:&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;div&gt;&lt;span class=&#034;thing&#034;&gt;&lt;b&gt;blah blah&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>#PRODUIRE</title>
		<link>https://www.spip.net/en_article7245.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article7245.html</guid>
		<dc:date>2025-09-09T16:37:12Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Ricardo Porto</dc:creator>


		<dc:subject>SPIP 3.0</dc:subject>
		<dc:subject>#PRODUIRE</dc:subject>

		<description>&lt;p&gt;Produzir o ficheiro est&#225;tico resultante da avalia&#231;&#227;o de um template de ficheiro CSS ou Javascript.&lt;/p&gt;

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

/ 
&lt;a href="https://www.spip.net/@spip30" rel="tag"&gt;SPIP 3.0&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@produire" rel="tag"&gt;#PRODUIRE&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;A tag &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PRODUIRE&lt;/code&gt; (produzir) gera um ficheiro est&#225;tico a partir de um template din&#226;mico de CSS (.css.html) ou de Javascript (.js.html). A partir do SPIP 4, os ficheiros que geram SVG (.svg.html), XML (.xml.html) e JSON (.json.html) tamb&#233;m s&#227;o levados em conta.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PRODUIRE&lt;/code&gt; retorna o nome desse ficheiro est&#225;tico, o que permite ao Apache servi-lo diretamente, sem passar por spip.php a cada hit.&lt;/p&gt;
&lt;p&gt;A sintaxe dos argumentos da tag &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PRODUIRE&lt;/code&gt; &#233; a mesma de &lt;a href='https://www.spip.net/pt_article6922.html' class=&#034;spip_in&#034; hreflang=&#034;pt&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#INCLURE&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;link rel=&#034;stylesheet&#034; type=&#034;text/css&#034; href=&#034;#PRODUIRE{fond=css/meucss.css,couleur=ffffff}&#034;&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;O formato do ficheiro &#233; indicado pela pr&#233;-extens&#227;o do ficheiro: .css.html, .js.html, .xml.html, .json.html, .svg.html. Sen&#227;o, &#233; HTML.&lt;/p&gt;
&lt;p&gt;Pode-se for&#231;ar o formato do ficheiro passando como argumento adicional &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;format=css&lt;/code&gt; (ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;format=js&lt;/code&gt;...)..&lt;/p&gt;
&lt;p&gt;Nota: o resultado de #PRODUIRE inclui o timestamp do ficheiro template recebido como argumento.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Online Help</title>
		<link>https://www.spip.net/en_article2150.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article2150.html</guid>
		<dc:date>2025-09-01T10:47:18Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>jack</dc:creator>



		<description>
&lt;p&gt;SPIP incorporates an online help system which you can access from the private area of your site. Help for authors &lt;br class='autobr' /&gt;
SPIP includes online help for authors.
&lt;br class='autobr' /&gt;
This help documents all the typographical shortcuts that can be used by editors. &lt;br class='autobr' /&gt;
This help is available via a plugin-dist &#8216;help'. The available languages can be seen by their prefix in the directory aide/aide. To add new languages to this file, you must contribute via the SPIP forge. &lt;br class='autobr' /&gt;
See Contributing to SPIP development Can be (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/en_rubrique656.html" rel="directory"&gt;Editing user guide&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='https://www.spip.net/local/cache-vignettes/L48xH48/arton2150-658f6.png?1594848131' class='spip_logo spip_logo_right' width='48' height='48' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;SPIP incorporates an &lt;i&gt;online help&lt;/i&gt; system which you can access from the private area of your site.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-3&#034; id=&#034;nav69e1ff53966a94.68680637&#034;&gt;
&lt;h2&gt;Table of contents&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Help-for-authors&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Help-for-authors&#034; class=&#034;spip_ancre&#034;&gt;Help for authors&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Can-be-enhanced-by-plug-ins&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Can-be-enhanced-by-plug-ins&#034; class=&#034;spip_ancre&#034;&gt;Can be enhanced by plug-ins&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-History&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#History&#034; class=&#034;spip_ancre&#034;&gt;History&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Help-for-authors&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Help-for-authors'&gt;Help for authors&lt;a class='sommaire-back sommaire-back-3' href='#s-Help-for-authors' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SPIP includes online help for authors.&lt;br class='autobr' /&gt;
This help documents all the typographical shortcuts that can be used by editors.&lt;/p&gt;
&lt;div class='spip_document_4335 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/screenshot_2025-09-01-help.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH346/screenshot_2025-09-01-help-65779.png?1756724016' width='500' height='346' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;This help is available via a plugin-dist &#8216;&lt;a href=&#034;https://git.spip.net/spip/aide&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;help&lt;/a&gt;'. The available languages can be seen by their prefix in the directory &lt;a href=&#034;https://git.spip.net/spip/aide/-/tree/master/aide?ref_type=heads&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;aide/aide&lt;/a&gt;. To add new languages to this file, you must contribute via the SPIP forge.&lt;/p&gt;
&lt;p&gt;See &lt;a href='https://www.spip.net/en_article5226.html' class=&#034;spip_in&#034; hreflang=&#034;en&#034;&gt;Contributing to SPIP development&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;Can-be-enhanced-by-plug-ins&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Can-be-enhanced-by-plug-ins'&gt;Can be enhanced by plug-ins&lt;a class='sommaire-back sommaire-back-3' href='#s-Can-be-enhanced-by-plug-ins' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Plug-ins can also enhance this help, as is the case with the &#8216;Pense-b&#234;te' plug-in, for example, using the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;aide_index&lt;/code&gt; pipeline.&lt;/p&gt;
&lt;div class='spip_document_4334 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L227xH208/screenshot_2025-09-01-90878.png?1756723905' width='227' height='208' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;History&#034;&gt;&lt;h2 class=&#034;h2&#034; id='History'&gt;History&lt;a class='sommaire-back sommaire-back-3' href='#s-History' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Previous versions of SPIP up to SPIP 3.2 included online help written on the spip.net website. These help sections are set to disappear from this site as the versions that include them have not been maintained for a long time.&lt;/i&gt;&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Writing a commit message</title>
		<link>https://www.spip.net/en_article7161.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article7161.html</guid>
		<dc:date>2025-08-09T11:31:53Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>jack</dc:creator>



		<description>
&lt;p&gt;Commit messages in SPIP follow the specifications of Conventional Commits. This facilitates a posteriori review of the code history, as well as PR analysis. &lt;br class='autobr' /&gt;
The body of the message must be clear and explanatory: describe the problem addressed and the changes or corrections made. Structure of a conventional commit First line starting with the type of commit, followed by a colon (:), followed by a message summarising the commit. The type can optionally be supplemented by a scope in brackets (&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Commit messages in SPIP follow the specifications of &lt;a href=&#034;https://www.conventionalcommits.org/en/v1.0.0/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Conventional Commits&lt;/a&gt;. This facilitates &lt;i&gt;a posteriori&lt;/i&gt; review of the code history, as well as PR analysis.&lt;/p&gt;
&lt;p&gt;The body of the message must be clear and explanatory: describe the problem addressed and the changes or corrections made.&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;nav69e1e92de2ea73.69164896&#034;&gt;
&lt;h2&gt;Table of contents&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Structure-of-a-conventional-commit&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Structure-of-a-conventional-commit&#034; class=&#034;spip_ancre&#034;&gt;Structure of a conventional commit&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Example-of-a-conventional-commit&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Example-of-a-conventional-commit&#034; class=&#034;spip_ancre&#034;&gt;Example of a conventional commit&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-List-of-commit-types&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#List-of-commit-types&#034; class=&#034;spip_ancre&#034;&gt;List of commit types&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Further-reading&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Further-reading&#034; class=&#034;spip_ancre&#034;&gt;Further reading&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Structure-of-a-conventional-commit&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Structure-of-a-conventional-commit'&gt;Structure of a conventional commit&lt;a class='sommaire-back sommaire-back-4' href='#s-Structure-of-a-conventional-commit' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; First line starting with the &lt;i&gt;type&lt;/i&gt; of commit, followed by a colon (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:&lt;/code&gt;), followed by a message summarising the commit.&lt;/li&gt;&lt;li&gt; The type can optionally be supplemented by a &lt;i&gt;scope&lt;/i&gt; in brackets to specify the component or feature that has been modified.&lt;/li&gt;&lt;li&gt; Optionally, one or more additional paragraphs describing the commit in more detail can be added after a blank line. Markdown syntax can be used.&lt;/li&gt;&lt;li&gt; Finally, a last line (separated from the previous ones by a blank line) must contain a reference to the ticket to which the commit is linked. The reference takes the following form: &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Refs: #XXX&lt;/code&gt;, or &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Fix: #XXX&lt;/code&gt; to automatically close the ticket when merging into the destination branch.&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Example-of-a-conventional-commit&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Example-of-a-conventional-commit'&gt;Example of a conventional commit&lt;a class='sommaire-back sommaire-back-4' href='#s-Example-of-a-conventional-commit' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Example of a complete commit log:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;fix: repair the link to the GPL licence in the footer of private pages by replacing it with a simple link to the official gnu.org website Fix: #5328 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;List-of-commit-types&#034;&gt;&lt;h2 class=&#034;h2&#034; id='List-of-commit-types'&gt;List of commit types&lt;a class='sommaire-back sommaire-back-4' href='#s-List-of-commit-types' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Convention used in SPIP.&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='ide7bf_c0'&gt;Type&lt;/th&gt;&lt;th id='ide7bf_c1'&gt;Meaning&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='ide7bf_c0'&gt;build&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Modifies a program compilation script or modifies external dependencies. Also indicates a version upgrade.&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='ide7bf_c0'&gt;change&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Modifies the implementation of a feature &#8212; may modify function signatures (&#8800; refactor)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='ide7bf_c0'&gt;chore&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Background work that does not alter the code (release a version, regenerate compiled code)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='ide7bf_c0'&gt;ci&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Related to continuous integration&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='ide7bf_c0'&gt;deprecate&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Deprecate (without removing) a feature&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='ide7bf_c0'&gt;docs&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Related to documentation (docs, readme, changelog)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='ide7bf_c0'&gt;feat&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Adds a feature&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='ide7bf_c0'&gt;fix&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Fixes a problem&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='ide7bf_c0'&gt;i18n&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Related to translations and language strings&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='ide7bf_c0'&gt;perf&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Improves algorithm or programme performance&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='ide7bf_c0'&gt;refactor&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Rewrites code without changing its API&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='ide7bf_c0'&gt;remove&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Removes code or functionality (previously deprecated)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='ide7bf_c0'&gt;revert&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Reverses a previous change (commit)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='ide7bf_c0'&gt;security&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Related to security&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='ide7bf_c0'&gt;style&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Related to code writing rules (Coding Standard)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='ide7bf_c0'&gt;test&lt;/td&gt;
&lt;td headers='ide7bf_c1'&gt;Related to software testing&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Further-reading&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Further-reading'&gt;Further reading&lt;a class='sommaire-back sommaire-back-4' href='#s-Further-reading' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;See the website&lt;a href=&#034;https://www.conventionalcommits.org/en/v1.0.0/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;www.conventionnalecommits&lt;/a&gt;.&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Installation mit spip_loader</title>
		<link>https://www.spip.net/en_article7132.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article7132.html</guid>
		<dc:date>2025-06-24T10:05:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>klaus++</dc:creator>



		<description>
&lt;p&gt;&#8222;spip_loader&#8221; ist ein Skript, mit dem Sie Ihre SPIP-Website automatisch installieren oder aktualisieren k&#246;nnen, ohne alle Dateien per FTP &#252;bertragen zu m&#252;ssen. &lt;br class='autobr' /&gt; Aktuelle Version von spip_loader: 6.2.1 Download &lt;br class='autobr' /&gt; Verwenden Sie spip_loader, um SPIP automatisch zu installieren &lt;br class='autobr' /&gt;
spip_loader erfordert mindestens PHP 5.6 &#220;berpr&#252;fen Sie die PHP-Kompatibilit&#228;t Ihres Hosts anhand der folgenden Tabelle: Versions maintenues Laden Sie das Skript herunter Speichern Sie diese Datei &#252;ber SFTP in dem (&#8230;)&lt;/p&gt;


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


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;&#8222;spip_loader&#8221; ist ein Skript, mit dem Sie Ihre SPIP-Website automatisch installieren oder aktualisieren k&#246;nnen, ohne alle Dateien per FTP &#252;bertragen zu m&#252;ssen.&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;nav69e1e92de602a7.57878769&#034;&gt;
&lt;h2&gt;Table of contents&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Verwenden-Sie-spip_loader-um-SPIP-automatisch-zu-installieren&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Verwenden-Sie-spip_loader-um-SPIP-automatisch-zu-installieren&#034; class=&#034;spip_ancre&#034;&gt;Verwenden Sie spip_loader, um SPIP automatisch zu installieren&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Verwenden-Sie-spip_loader-um-ein-Update-durchzufuhren&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Verwenden-Sie-spip_loader-um-ein-Update-durchzufuhren&#034; class=&#034;spip_ancre&#034;&gt;Verwenden Sie spip_loader, um ein Update durchzuf&#252;hren&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Die-zur-Aktualisierung-berechtigten-Autoren-anpassen&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Die-zur-Aktualisierung-berechtigten-Autoren-anpassen&#034; class=&#034;spip_ancre&#034;&gt;Die zur Aktualisierung berechtigten Autoren anpassen&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Haufig-auftretende-Fehler&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Haufig-auftretende-Fehler&#034; class=&#034;spip_ancre&#034;&gt;H&#228;ufig auftretende Fehler&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Was-tun-wenn-es-nicht-funktioniert&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Was-tun-wenn-es-nicht-funktioniert&#034; class=&#034;spip_ancre&#034;&gt;Was tun, wenn es nicht funktioniert?&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Technische-Hinweise&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Technische-Hinweise&#034; class=&#034;spip_ancre&#034;&gt;Technische Hinweise&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;Aktuelle Version von spip_loader: &lt;strong&gt;6.2.1&lt;/strong&gt;&lt;/p&gt;
&lt;div style=&#034;text-align:center&#034;&gt;&lt;a href=&#034;https://get.spip.net/spip_loader.php&#034; class=&#034;&#034;&gt;&lt;span class=&#034;download__span&#034;&gt;Download&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a id=&#034;Installation&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Verwenden-Sie-spip_loader-um-SPIP-automatisch-zu-installieren&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Verwenden-Sie-spip_loader-um-SPIP-automatisch-zu-installieren'&gt;Verwenden Sie spip_loader, um SPIP automatisch zu installieren&lt;a class='sommaire-back sommaire-back-6' href='#s-Verwenden-Sie-spip_loader-um-SPIP-automatisch-zu-installieren' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;spip_loader erfordert mindestens &lt;strong&gt;PHP 5.6&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &#220;berpr&#252;fen Sie die PHP-Kompatibilit&#228;t Ihres Hosts anhand der folgenden Tabelle: &lt;a href='https://www.spip.net/fr_article6500.html' class=&#034;spip_in&#034; hreflang=&#034;fr&#034;&gt;Versions maintenues&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Laden Sie das Skript herunter&lt;/li&gt;&lt;li&gt; Speichern Sie diese Datei &#252;ber &lt;strong&gt;S&lt;/strong&gt;FTP in dem Verzeichnis, in dem Sie SPIP installieren m&#246;chten (in der Regel im Stammverzeichnis Ihres Servers oder im Ordner, der die Website enth&#228;lt, wenn es sich um ein Update handelt).&lt;br class='manualbr' /&gt;&lt;strong&gt;Achtung&lt;/strong&gt;: Da das Skript komprimiert ist, m&#252;ssen Sie bei Verwendung des FTP-Protokolls Ihre Client-Software f&#252;r diese &#220;bertragung &lt;strong&gt;auf Bin&#228;rmodus&lt;/strong&gt; einstellen&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;Siehe File_Transfer_Protocol&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/li&gt;&lt;li&gt; Rufen Sie das Skript &#252;ber Ihren Browser auf &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;https://www.adressedevotresite.net/spip_loader.php&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Das Skript &#252;berpr&#252;ft, ob Ihr Hosting kompatibel ist. Ist dies der Fall, listet es alle Versionen auf, die Sie installieren k&#246;nnen, und schl&#228;gt Ihnen standardm&#228;&#223;ig die letzte stabile Version vor.&lt;/li&gt;&lt;li&gt; W&#228;hlen Sie Ihre Version und starten Sie die automatische Installation.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Skript online lassen&lt;/strong&gt;&lt;br class='autobr' /&gt;
Nach der Installation von SPIP k&#246;nnen Sie das Skript spip_loader.php bedenkenlos auf dem Server belassen. Nur autorisierte und authentifizierte Administratoren k&#246;nnen darauf zugreifen. Der Vorteil besteht darin, dass Sie Ihr SPIP im Falle einer Warnmeldung sehr einfach aktualisieren k&#246;nnen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Detaillierte Erl&#228;uterungen&lt;/strong&gt;&lt;br class='autobr' /&gt;
Der spip_loader erkennt neue Versionen und schl&#228;gt vor, diese zu aktualisieren, ohne dass eine FTP-&#220;bertragung erforderlich ist.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &#220;ber eine Dropdown-Liste kann die zu installierende Version ausgew&#228;hlt werden&lt;/li&gt;&lt;li&gt; Wenn kein SPIP installiert ist:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Die Dropdown-Liste w&#228;hlt die letzte stabile Version aus&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Wenn bereits ein SPIP installiert ist:
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Die Dropdown-Liste ist standardm&#228;&#223;ig auf die letzte Version desselben Zweigs wie die Website eingestellt (sofern diese noch referenziert ist).&lt;/li&gt;&lt;li&gt; Dateien, die nach dem Update veraltet sind (d. h. die zwischen der aktuellen Version der Website und der installierten Version entfernt wurden), werden in einem Verzeichnis &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fichiers_obsoletes_{date}&lt;/code&gt; archiviert, wobei &lt;i&gt;date&lt;/i&gt; durch das aktuelle Datum und die aktuelle Uhrzeit ersetzt wird. Dies geschieht nur in den Verzeichnissen: &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; und &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;plugins-dist&lt;/code&gt; (sowie im alten Verzeichnis &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;extensions&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; In Verbindung mit dem vorherigen Punkt werden Plugins, die im Verzeichnis plugins-dist/ hinzugef&#252;gt wurden (und somit nicht zum von SPIP bereitgestellten Zip-Archiv geh&#246;ren), ebenfalls in dieses Verzeichnis f&#252;r veraltete Dateien verschoben, es sei denn, sie enthalten eine Datei &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.spip_loader_keep&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Es ist m&#246;glich, eine Konfigurationsdatei zu verwenden, um die Definitionen zu verwalten und sie von einem Update zum n&#228;chsten beizubehalten, mit &lt;strong&gt;spip_loader_config.php&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ab der &lt;strong&gt;Version v5.2.0&lt;/strong&gt; ist spip_loader.php ein kompiliertes Skript im komprimierten Bin&#228;rformat &lt;a href=&#034;https://www.php.net/manual/fr/intro.phar.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;phar&lt;/a&gt;, das auch die &#220;bersetzungen enth&#228;lt. Wenn Sie Definitions verwenden m&#252;ssen, m&#252;ssen Sie daher eine Konfigurationsdatei &lt;i&gt;spip_loader_config.php&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Ab der &lt;strong&gt;Version 6.0.0&lt;/strong&gt; sind die Anpassungskonstanten &lt;i&gt;veraltet&lt;/i&gt;. Die Konfigurationsdatei &lt;i&gt;spip_loader_config.php&lt;/i&gt; muss ein Array zur&#252;ckgeben, wie im folgenden Beispiel gezeigt.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;maj&#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;Verwenden-Sie-spip_loader-um-ein-Update-durchzufuhren&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Verwenden-Sie-spip_loader-um-ein-Update-durchzufuhren'&gt;Verwenden Sie spip_loader, um ein Update durchzuf&#252;hren&lt;a class='sommaire-back sommaire-back-6' href='#s-Verwenden-Sie-spip_loader-um-ein-Update-durchzufuhren' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Um ein SPIP zu aktualisieren, gehen Sie wie folgt vor:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Bevor Sie das Skript aufrufen, m&#252;ssen Sie sich zun&#228;chst im privaten Bereich von SPIP anmelden.&lt;/li&gt;&lt;li&gt; Das Skript auf Ihrem Server ablegen, falls es noch nicht vorhanden ist&lt;/li&gt;&lt;li&gt; Das Skript &#252;ber Ihren Browser aufrufen &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;https://www.monsite.tld/spip_loader.php&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Die zu installierende Version ausw&#228;hlen&lt;/li&gt;&lt;li&gt; Den automatischen Installationsvorgang starten&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;a id=&#034;define&#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;Die-zur-Aktualisierung-berechtigten-Autoren-anpassen&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Die-zur-Aktualisierung-berechtigten-Autoren-anpassen'&gt;Die zur Aktualisierung berechtigten Autoren anpassen&lt;a class='sommaire-back sommaire-back-6' href='#s-Die-zur-Aktualisierung-berechtigten-Autoren-anpassen' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Standardm&#228;&#223;ig kann nur der Autor Nr. 1 dieses Update durchf&#252;hren.&lt;/p&gt;
&lt;p&gt;Wenn Sie weitere Autoren hinzuf&#252;gen m&#246;chten, m&#252;ssen Sie eine Konfigurationsdatei &lt;strong&gt;spip_loader_config.php&lt;/strong&gt; (im Stammverzeichnis) erstellen, die automatisch eingebunden wird. So bleiben Ihre Einstellungen bei einem Update von spip_loader erhalten.&lt;/p&gt;
&lt;p&gt;Beispiel f&#252;r die Datei &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_loader_config.php&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;php&#034; class='spip_code spip_code_block language-php' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;?php return [ &#8218;authorized.users&#8216; =&gt; [5, 6, 8], ]; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a id=&#034;Fehler&#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;Haufig-auftretende-Fehler&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Haufig-auftretende-Fehler'&gt;H&#228;ufig auftretende Fehler&lt;a class='sommaire-back sommaire-back-6' href='#s-Haufig-auftretende-Fehler' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='idd963_c0'&gt;Aufgetretener Fehler&lt;/th&gt;&lt;th id='idd963_c1'&gt;L&#246;sung&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='idd963_c0'&gt;SHA512-Signatur konnte nicht &#252;berpr&#252;ft werden: Signatur defekt..&lt;/td&gt;
&lt;td headers='idd963_c1'&gt;Sie haben die Datei spip_loader.php nicht korrekt auf Ihren Server &#252;bertragen: Sie m&#252;ssen die Datei im &lt;strong&gt;Bin&#228;rmodus&lt;/strong&gt; von Ihrer FTP-Software &#252;bertragen. Siehe &lt;a href=&#034;#spip_loader-verwenden-um-SPIP-automatisch-zu-installieren&#034; class=&#034;spip_ancre&#034;&gt;#spip_loader-verwenden-um-SPIP-auto...&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td rowspan='2' headers='idd963_c0'&gt;403 - File Access Denied&lt;/td&gt;
&lt;td headers='idd963_c1'&gt;H&#228;ufig befindet sich am Ende von &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;monsite/spip_loader.php&lt;/code&gt; ein Schr&#228;gstrich &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/&lt;/code&gt;, der von fr&#252;heren Verwendungen stammt. Oft reicht es aus, diesen Schr&#228;gstrich zu l&#246;schen, um den Fehler zu beheben und spip_loader.php seine Arbeit tun zu lassen.&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='idd963_c1'&gt;In hartn&#228;ckigen F&#228;llen muss der Verlauf der Seite im Browser gel&#246;scht werden&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='idd963_c0'&gt;Fehler 403 Sie sind nicht berechtigt, diese Seite anzuzeigen (Installation und Aktion nicht m&#246;glich)&lt;/td&gt;
&lt;td headers='idd963_c1'&gt;&#220;berpr&#252;fen Sie, ob mod_rewrite aktiviert ist&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='idd963_c0'&gt;GuzzleHttp erfordert cURL, die INI-Einstellung allow_url_fopen oder einen benutzerdefinierten HTTP-Handler.&lt;/td&gt;
&lt;td headers='idd963_c1'&gt;Ihr Server erlaubt kein Laden externer Dateien. Sie m&#252;ssen Ihre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;php.ini&lt;/code&gt; mit dem Befehl &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;allow_url_fopen = On&lt;/code&gt; &#228;ndern&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='idd963_c0'&gt;Deprecated: Usage of &#8218;_SPIP_LOADER_UPDATE_AUTEURS&#8216;&lt;/td&gt;
&lt;td headers='idd963_c1'&gt;&lt;a href=&#034;#define&#034; class=&#034;spip_ancre&#034;&gt;&#196;ndern Sie die Datei &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip_loader_config.php&lt;/code&gt;&lt;/a&gt; im Stammverzeichnis Ihrer Website wie angegeben.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Was-tun-wenn-es-nicht-funktioniert&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Was-tun-wenn-es-nicht-funktioniert'&gt;Was tun, wenn es nicht funktioniert?&lt;a class='sommaire-back sommaire-back-6' href='#s-Was-tun-wenn-es-nicht-funktioniert' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Spip_loader kann beim Laden von Dateien fehlschlagen. In der Regel handelt es sich dabei um Probleme mit den Rechten auf dem Server oder mit der PHP-Konfiguration. In diesem Fall m&#252;ssen Sie Ihr SPIP installieren&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; entweder durch manuelles &#220;bertragen der Dateien per FTP&lt;/li&gt;&lt;li&gt; oder durch Verwendung von GIT (f&#252;r erfahrene Benutzer)&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;Technische-Hinweise&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Technische-Hinweise'&gt;Technische Hinweise&lt;a class='sommaire-back sommaire-back-6' href='#s-Technische-Hinweise' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Quellen und Entwicklungsbereich von spip_loader&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://git.spip.net/spip-contrib-outils/spip_loader&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://git.spip.net/spip-contrib-outils/spip_loader&lt;/a&gt;&lt;/p&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;Footnotes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Siehe &lt;a href=&#034;https://en.wikipedia.org/wiki/File_Transfer_Protocol&#034; class=&#034;spip_glossaire&#034; title=&#034;Mode_de_transfert&#034; rel=&#034;external&#034;&gt;File_Transfer_Protocol&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>SPIP 4.4</title>
		<link>https://www.spip.net/en_article7023.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article7023.html</guid>
		<dc:date>2025-02-18T09:18:46Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>jack</dc:creator>



		<description>
&lt;p&gt;This LTS branch will benefit from extended support until July 2027. &lt;br class='autobr' /&gt; Compatible with PHP 7.4 to 8.4 &lt;br class='autobr' /&gt;
SPIP 4.4 requires PHP 7.4 or higher, and runs up to PHP 8.4. It requires the following PHP extensions: sodium, Zlib, Zip and Phar. &lt;br class='autobr' /&gt;
Changes introduced by SPIP 4.4 &lt;br class='autobr' /&gt;
The most striking changes are the fact that SPIP no longer sends passwords in clear text in registration and password reminder emails. &lt;br class='autobr' /&gt;
On the technical side, it should be noted that the write, prive and template-dist (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/en_rubrique247.html" rel="directory"&gt;Upgrades and version history&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;This LTS branch will benefit from extended support until July 2027.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-9&#034; id=&#034;nav69e19a84660a13.93997531&#034;&gt;
&lt;h2&gt;Table of contents&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Compatible-with-PHP-7-4-to-8-4&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Compatible-with-PHP-7-4-to-8-4&#034; class=&#034;spip_ancre&#034;&gt;Compatible with PHP 7.4 to 8.4&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Changes-introduced-by-SPIP-4-4&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Changes-introduced-by-SPIP-4-4&#034; class=&#034;spip_ancre&#034;&gt;Changes introduced by SPIP 4.4&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Security&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Security&#034; class=&#034;spip_ancre&#034;&gt;Security&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Added&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Added&#034; class=&#034;spip_ancre&#034;&gt;Added&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Changes&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Changes&#034; class=&#034;spip_ancre&#034;&gt;Changes&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Corrections&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Corrections&#034; class=&#034;spip_ancre&#034;&gt;Corrections&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Deprecating&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Deprecating&#034; class=&#034;spip_ancre&#034;&gt;Deprecating&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Withdrawals&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Withdrawals&#034; class=&#034;spip_ancre&#034;&gt;Withdrawals&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Supported-plug-ins&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Supported-plug-ins&#034; class=&#034;spip_ancre&#034;&gt;Supported plug-ins&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Compatible-with-PHP-7-4-to-8-4&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Compatible-with-PHP-7-4-to-8-4'&gt; Compatible with PHP 7.4 to 8.4 &lt;a class='sommaire-back sommaire-back-9' href='#s-Compatible-with-PHP-7-4-to-8-4' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SPIP 4.4 requires PHP 7.4 or higher, and runs up to PHP 8.4.&lt;br class='autobr' /&gt;
It requires the following PHP extensions: sodium, Zlib, Zip and Phar.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Changes-introduced-by-SPIP-4-4&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Changes-introduced-by-SPIP-4-4'&gt;Changes introduced by SPIP 4.4&lt;a class='sommaire-back sommaire-back-9' href='#s-Changes-introduced-by-SPIP-4-4' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The most striking changes are the fact that SPIP no longer sends passwords in clear text in registration and password reminder emails.&lt;/p&gt;
&lt;p&gt;On the technical side, it should be noted that the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;write&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;prive&lt;/code&gt; and &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;template-dist&lt;/code&gt; folders, as well as the security screen, are installed using Composer. This changes nothing for people who use spip_loader. Also worth noting is the introduction of &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;#TRAD&lt;/code&gt; and &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_DOCUMENT_FICHIER&lt;/code&gt; tags.&lt;/p&gt;
&lt;p&gt;There has also been a series of optimisations for image filters.&lt;/p&gt;
&lt;p&gt;The &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE&lt;/code&gt; tag replaces &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LARGEUR_ECRAN&lt;/code&gt; and enables new layouts to be used for pages in the back office:&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE{fluide}&lt;/code&gt;, the central content adapts according to the presence or absence of content in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#extra&lt;/code&gt; and &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=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_flui-9b36212e.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&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=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_flui-44f5d7b1.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&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=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_flui-660a45c8.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&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=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_plei-a46afc98.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&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=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_comp-f758c317.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&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=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_comp-5e19ffc0.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&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=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_comp-7787f8f6.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&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=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/disposition_comp-d195e1b6.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&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;The &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#TRAD&lt;/code&gt; tag avoids writing things like &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#VAL{module:cle}|_T&lt;/code&gt;, for example &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#TRAD{module:cle, #ARRAY{param, val, ..}, #ARRAY{option, val..}}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Directories&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;- The &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vendor/&lt;/code&gt; directory has been completed, with the arrival of the first &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;spip-league&lt;/code&gt; libraries, which will provide an initial gateway to elements of the future SPIP 5.0.
&lt;br /&gt;- There is now also a &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config/spip&lt;/code&gt; directory.&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;This version also brings other improvements and bug fixes.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Security&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Security'&gt;Security&lt;a class='sommaire-back sommaire-back-9' href='#s-Security' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Cleaning up certain author entries on the author edit form (avoids ending up in logs if verbose logs are activated)&lt;/li&gt;&lt;li&gt; Updating the list of bots &amp; add antennapod (RSS reader) as a legal bot&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;Added&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Added'&gt;Added&lt;a class='sommaire-back sommaire-back-9' href='#s-Added' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Not sending passwords in clear text, instead sending links to set your password&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;copie_locale()&lt;/code&gt; passes an &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;action&lt;/code&gt; key to the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;post_edition&lt;/code&gt; pipeline&lt;/li&gt;&lt;li&gt; Additional language strings for item lists&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE&lt;/code&gt; tag&lt;/li&gt;&lt;li&gt; Tag&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#TRAD{module:key, #ARRAY{param, val, ..}, #ARRAY{option, val..}}&lt;/code&gt;&lt;/li&gt;&lt;li&gt; #MIME_TYPE tag calculated&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_DOCUMENT_FICHIER&lt;/code&gt; tag always returns the file of a document, which allows &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#URL_DOCUMENT&lt;/code&gt; to be used to refer to a web page when desired. Document templates are updated to use this tag.&lt;/li&gt;&lt;li&gt; The &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;add_link&lt;/code&gt; and &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;remove_link&lt;/code&gt; actions can handle a qualifier&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;add_menus_args&lt;/code&gt; pipeline, in addition to the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;add_menus&lt;/code&gt; pipeline, which passes on the arguments to &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;definir_barre_boutons()&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Purging &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;var_nullify&lt;/code&gt; variables from the context in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;traiter_appels_inclusions_ajax&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PARAM&lt;/code&gt; tag to retrieve service container parameters&lt;/li&gt;&lt;li&gt; The &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|affdate&lt;/code&gt; filter accepts a timestamp as input&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_image_extensions_logos()&lt;/code&gt; function and &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_extensions_logos&lt;/code&gt; pipeline&lt;/li&gt;&lt;li&gt; cli command to purge cache images that are too old (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cache-gd2&lt;/code&gt; and &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cache-vignettes&lt;/code&gt;)&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_oriente_selon_exif()&lt;/code&gt; filter to automatically reorient an image according to its exif tag&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;Changes&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Changes'&gt;Changes&lt;a class='sommaire-back sommaire-back-9' href='#s-Changes' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The &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; folders are installed with Composer&lt;/li&gt;&lt;li&gt; The security screen is installed with Composer&lt;/li&gt;&lt;li&gt; Updating language strings from trad.spip.net&lt;/li&gt;&lt;li&gt; Use the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;compter_contributions_auteur&lt;/code&gt; pipeline in an author's info box&lt;/li&gt;&lt;li&gt; Ability to customise the singular and plural language strings in the title of all object lists&lt;/li&gt;&lt;li&gt; New layouts for back office (&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; Environment values explicitly emptied in ajax are passed through &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;var_nullify&lt;/code&gt; to be completely purged.&lt;/li&gt;&lt;li&gt; Allowing &#8216;new' visitor accounts to be sorted by registration-reminding date&lt;/li&gt;&lt;li&gt; Add the publication time next to the date&lt;/li&gt;&lt;li&gt; Use CSS variables and logical properties in the back office to avoid compiling CSS files&lt;/li&gt;&lt;li&gt; The task control page uses the layout &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;complement-gauche&lt;/code&gt;&lt;/li&gt;&lt;li&gt; Using &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_extensions_logos()&lt;/code&gt; instead of &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$GLOBALS[&#8216;formats_logos']&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Image filters such as &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_recadre&lt;/code&gt; reorient the image according to the orientation exif&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Corrections&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Corrections'&gt;Corrections&lt;a class='sommaire-back sommaire-back-9' href='#s-Corrections' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; In the back office, avoiding a horizontal scrollbar in certain operating system configurations.&lt;/li&gt;&lt;li&gt; Aligning the content of the en_lignes band with that of the banner.&lt;/li&gt;&lt;li&gt; Better display of object lists on small screens.&lt;/li&gt;&lt;li&gt; No bottom margin on last items in responses&lt;/li&gt;&lt;li&gt; Load autoloader in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;prive.php&lt;/code&gt; file&lt;/li&gt;&lt;li&gt; Avoiding a PHP warning if the logo file is not present&lt;/li&gt;&lt;li&gt; Following medias on &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;inc_vignette_dist&lt;/code&gt; which expects a &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;medias&lt;/code&gt; parameter&lt;/li&gt;&lt;li&gt; Reestablishing hiding documents viewed in the document block&lt;/li&gt;&lt;li&gt; No longer declaring &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;z-index&lt;/code&gt; on columns that are already in flex&lt;/li&gt;&lt;li&gt; Fixing image rotation with convert&lt;/li&gt;&lt;li&gt; Being able to scroll after leaving full-screen mode using the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;ESC&gt;&lt;/code&gt; key&lt;/li&gt;&lt;li&gt; Using a value for &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;IMAGETYPE_SVG&lt;/code&gt; which does not risk a collision with a future image format addition (19 has been attributed to &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;IMAGETYPE_AVIF&lt;/code&gt; in the meantime)&lt;/li&gt;&lt;li&gt; Fixed a fatal error when calling &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;phraser_champs_interieurs()&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Using &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fpassthru()&lt;/code&gt; to deliver files directly and avoid a memory limit rather than &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;readfile()&lt;/code&gt; which requires the file to be loaded into memory.&lt;/li&gt;&lt;li&gt; Requesting remote files with &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; Replacing obsolete &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tt&lt;/code&gt; tags with &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;code&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Authors' emails are hidden by default&lt;/li&gt;&lt;li&gt; Sending the number of contributions to articles to the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;compter_contributions_auteur&lt;/code&gt; pipeline&lt;/li&gt;&lt;li&gt; Passing the url to the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pass_reset_url&lt;/code&gt; language item&lt;/li&gt;&lt;li&gt; For the generic object institution form, test the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;publierdans&lt;/code&gt; authorisation using the parent declared by the parent API&lt;/li&gt;&lt;li&gt; In the generic object institution form, using the same test set for displaying the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;published&lt;/code&gt; status in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;load&lt;/code&gt; and for validation in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;verify&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Being able to remove the image from the login screen&lt;/li&gt;&lt;li&gt; Being able to change the main logo when there is a hover logo&lt;/li&gt;&lt;li&gt; Missing inclusion in some ajax contexts for bigup&lt;/li&gt;&lt;li&gt; Checking the existence of &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;exif_read_data()&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Avoiding warnings on &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_oriente_selon_exif()&lt;/code&gt; in the absence of an image&lt;/li&gt;&lt;li&gt; Optimising filters &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 of &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;crop&lt;/code&gt; parameter in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_rotation()&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Form return message in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;div&lt;/code&gt; instead of &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;p&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; The &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;audio/x-m4a&lt;/code&gt; mimetype is an alias for &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;audio/mp4a-latm&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Calling to global &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$formats_logos&lt;/code&gt; replaced by &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; Correcting logo duplication (Duplicator plug-in for example) if the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tmp/upload&lt;/code&gt; folder does not exist&lt;/li&gt;&lt;li&gt; Displaying the document role selector (with the plug-in in question)&lt;/li&gt;&lt;li&gt; Displaying of previews in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;emb&lt;/code&gt; templates&lt;/li&gt;&lt;li&gt; Fixed mediaelements library plug-in path and removed Flash fallback&lt;/li&gt;&lt;li&gt; Added the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;afficher_config_objet&lt;/code&gt; pipeline which was missing on the keywords and keyword_groups pages.&lt;/li&gt;&lt;li&gt; De-double status test in an SQL query.&lt;/li&gt;&lt;li&gt; Support for SPIP 4.4 in the plug-in repository.&lt;/li&gt;&lt;li&gt; Invalidating the cache (even for bots) when a permanent URL is added.&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;Deprecating&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Deprecating'&gt;Deprecating&lt;a class='sommaire-back sommaire-back-9' href='#s-Deprecating' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; PHP file inclusion via &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;INCLURE(file.php)&gt;&lt;/code&gt; or &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;INCLURE{fond=file.php}&gt;&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Closing tag &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;/INCLURE&gt;&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LARGEUR_ECRAN&lt;/code&gt; tag for private templates to be replaced by &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#LAYOUT_PRIVE&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; From SPIP 5 onwards, calling language strings in templates will be case-sensitive, and there will no longer be automatic conversion to lower case.&lt;/li&gt;&lt;li&gt; Internal function &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;phraser_boucle_placeholder()&lt;/code&gt; to be replaced by &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;phraser_placeholder_memoriser()&lt;/code&gt; or &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;phraser_placeholder_reinjecter()&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Internal function &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;public_generer_boucle_placeholder()&lt;/code&gt; to be replaced by &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;public_placeholder_generer()&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Language files populating a &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$GLOBALS&lt;/code&gt; are deprecated; return an array directly&lt;/li&gt;&lt;li&gt; Obsolete constant &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_DIR_IMG_PACK&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; Global &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;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mathjax&lt;/code&gt; plug-in should be used instead&lt;/li&gt;&lt;li&gt; Modifying the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$formats_logos&lt;/code&gt; global is deprecated: using the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;image_extensions_logos&lt;/code&gt; pipeline&lt;/li&gt;&lt;li&gt; Calling the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$formats_logos&lt;/code&gt; global is deprecated, using the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_images_extensions_logos()&lt;/code&gt; function.&lt;/li&gt;&lt;li&gt; Depreciation of the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_DIR_RESTREINT_ABS&lt;/code&gt; constant&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|image_typo&lt;/code&gt; filter, and &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; functions, install the plug-in &lt;a href=&#034;https://plugins.spip.net/image_typo.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&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=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Withdrawals&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Withdrawals'&gt;Withdrawals&lt;a class='sommaire-back sommaire-back-9' href='#s-Withdrawals' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&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;verif_butineur()&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;editer_texte_recolle()&lt;/code&gt; functions and &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_texte_trop_long&lt;/code&gt; form environment (unused - used for IE)&lt;/li&gt;&lt;li&gt; Support for the &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_texte_trop_long&lt;/code&gt; form environment (used for IE)&lt;/li&gt;&lt;li&gt; An obsolete and untranslated language file.&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;Supported-plug-ins&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Supported-plug-ins'&gt;Supported plug-ins&lt;a class='sommaire-back sommaire-back-9' href='#s-Supported-plug-ins' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;As with the previous version, most of the plug-ins are already compatible with SPIP 4.4, which will make upgrading easier.&lt;br class='autobr' /&gt;
See: &lt;a href='https://www.spip.net/en_article2154.html' class=&#034;spip_in&#034; hreflang=&#034;en&#034;&gt;How to upgrade SPIP&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Customizing URLs</title>
		<link>https://www.spip.net/en_article6876.html</link>
		<guid isPermaLink="true">https://www.spip.net/en_article6876.html</guid>
		<dc:date>2024-08-12T10:29:26Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>jack</dc:creator>



		<description>
&lt;p&gt;SPIP enables URLs to be managed in a fine-tuned and scalable way. Their format is defined by the webmasters. For technical details, see article Using personalised URLs. &lt;br class='autobr' /&gt;
Creating a URL &lt;br class='autobr' /&gt;
Each SPIP object can be accessed via a given URL, which depends on the chosen format: In some formats, the object identifier is used. For example, the &#034;URLs Objects&#034; format will generate a URL of the type article6858.html. In some formats, other fields are used, such as the title of the object or its (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/en_rubrique657.html" rel="directory"&gt;More advanced operations&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-3&#034; id=&#034;nav69e1ee7095a2b6.02104450&#034;&gt;
&lt;h2&gt;Table of contents&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Creating-a-URL&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Creating-a-URL&#034; class=&#034;spip_ancre&#034;&gt;Creating a URL&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Modifying-a-URL&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Modifying-a-URL&#034; class=&#034;spip_ancre&#034;&gt;Modifying a URL&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Managing-URLs&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Managing-URLs&#034; class=&#034;spip_ancre&#034;&gt;Managing URLs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;SPIP enables URLs to be managed in a fine-tuned and scalable way. Their format is defined by the webmasters. For technical details, see article &lt;a href='https://www.spip.net/en_article3588.html' class=&#034;spip_in&#034; hreflang=&#034;en&#034;&gt;Using personalised URLs&lt;/a&gt;.&lt;/p&gt;
&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Creating-a-URL&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Creating-a-URL'&gt;Creating a URL&lt;a class='sommaire-back sommaire-back-3' href='#s-Creating-a-URL' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Each SPIP object can be accessed via a given URL, which depends on the chosen format:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; In some formats, the object identifier is used. For example, the &#034;URLs Objects&#034; format will generate a URL of the type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;article6858.html&lt;/code&gt;.&lt;/li&gt;&lt;li&gt; In some formats, other fields are used, such as the title of the object or its section. For example, an article with the title &#034;I Love Pease Pudding&#034; will generate the following &#034;free URLs&#034; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;I-Love-Pease-Pudding&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;URLs are automatically generated when the object is published online.&lt;/p&gt;
&lt;p&gt;Here are a few details:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The URLs generated are automatically corrected to comply with the HTML standard (no white spaces, accents, ....).&lt;/li&gt;&lt;li&gt; If a URL is already reserved on the site, SPIP generates an alternative URL (generally by adding the object identifier).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;If the &#034;URL editing&#034; option is enabled on the site:&lt;/p&gt;
&lt;div class='spip_document_4225 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/setup_the_urls.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH118/setup_the_urls-a2131.png?1723469514' width='500' height='118' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;The object's public URL is displayed under the title:&lt;/p&gt;
&lt;div class='spip_document_4226 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/i_love_pease_pudding_3_.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH99/i_love_pease_pudding_3_-49001.png?1723469514' width='500' height='99' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Modifying-a-URL&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Modifying-a-URL'&gt;Modifying a URL&lt;a class='sommaire-back sommaire-back-3' href='#s-Modifying-a-URL' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Some URL formats allow you to edit URLs, in which case a &#034;Modify&#034; button appears when you hover over the URL.&lt;/p&gt;
&lt;div class='spip_document_4223 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/i_love_pease_pudding_2_.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH212/i_love_pease_pudding_2_-5475e.png?1723469514' width='500' height='212' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;The form displayed allows you to modify the URL.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The added URL becomes the object's main URL (indicated by a small padlock).&lt;/li&gt;&lt;li&gt; The object's old URLs are retained to avoid 404 errors. People who try to consult the old URLs will automatically be redirected to the main URL (the one with the padlock).&lt;/li&gt;&lt;/ul&gt;&lt;div class='spip_document_4224 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH129/i_love_pease_pudding-44c38.png?1723469514' width='500' height='129' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; If a URL is no longer useful (and you no longer want a redirect to the main URL), you can delete it (red cross button).&lt;/li&gt;&lt;/ul&gt;&lt;div class='spip_document_4224 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH129/i_love_pease_pudding-44c38.png?1723469514' width='500' height='129' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Managing-URLs&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Managing-URLs'&gt;Managing URLs&lt;a class='sommaire-back sommaire-back-3' href='#s-Managing-URLs' title='Back to the table of contents'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On sites with a lot of content, hundreds of URLs are generated. This can be problematic if you want to use a specific URL that is already in use.&lt;/p&gt;
&lt;p&gt;Fortunately, SPIP offers a page for managing all the URLs on the site, accessible via the &lt;strong&gt;Publish &#8594; URLs Management&lt;/strong&gt; menu:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The page displays a list of the site's URLs and associated objects&lt;/li&gt;&lt;li&gt; A search engine can be used to find a specific URL&lt;/li&gt;&lt;/ul&gt;&lt;div class='spip_document_4228 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://www.spip.net/IMG/png/all_urls_edit.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L500xH274/all_urls_edit-96f4a.png?1723469514' width='500' height='274' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;To unlock a URL, simply delete it from the old object and then assign it to the object you want.&lt;/p&gt;
&lt;p&gt;On the &lt;strong&gt;Publishing &#8594; URL Management&lt;/strong&gt; page, a button can also be used to force the update of all the URLs on the site.&lt;/p&gt;
&lt;div class='spip_document_4227 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://www.spip.net/local/cache-vignettes/L288xH206/all_urls-84299.png?1723310000' width='288' height='206' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
