- UPGRADE de SPIP 4.2 à 5.0
- Préliminaires
- Migration BDD
- Déplacement plugins-dist
- Webmestres
- Squelettes
- Parties optionnelles des balises
- Avant
- Après
- Nouvelles dépréciations
- Syntaxes de squelettes
- Critère {collecte} (déprécié en 5.0)
- Avant
- Après
- Critères {fusion} (déprécié en 5.0)
- Avant
- Après
- Critères {fusion_supprimer} (déprécié en 5.0)
- Avant
- Après
- Fonctions PHP
- Fonctions extraire_multi et extraire_idiome
- Avant
- Après
- Fonction spip_setcookie
- Exemple
- Fonction spip_sha256 (dépréciée en 5.0)
- Avant
- Après
- Suppressions des éléments dépréciés
- Syntaxes de squelettes
- Filtres de #LOGO_ (dépréciés en 2.1)
- Avant
- Après
- Filtre de #FORMULAIRE_RECHERCHE|parametre (déprécié en 2.1)
- Avant
- Après
- Balise #EXPOSER (déprécié en 1.8.2)
- Avant
- Après
- Balise #EMBED_DOCUMENT (déprécié en 2.0)
- Avant
- Après
- Filtre foreach
- Avant
- Après
- Boucle POUR
- Avant
- Après
- Fonctions PHP
- Fonction http_status
- Avant
- Après
- Fonction generer_url_ecrire_objet
- Avant
- Après
- Fonctions generer_{x}_entite
UPGRADE de SPIP 4.2 à 5.0
Préliminaires
SPIP 5.0 nécessite PHP 8.1 minimum.
Migration BDD
SPIP 5.0 ne contient pas les mises à jour de BDD antérieures à SPIP 4.0. Pour rappel, SPIP 4.x ne contient pas les mises à jour antérieures SPIP 2.0.
Dit autrement, il faut a minima partir d’un SPIP 3.2 (ou supérieur donc) pour que la migration en SPIP 5.0 de la base de données s’effectue correctement. Pour des questions de compatibilité de SPIP 5.0 avec PHP 8.1 minimum, il est conseillé (mais pas obligatoire) de partir au moins d’un SPIP 4.1.
Déplacement plugins-dist
Les plugins-dist (plugins fournis avec la distribution SPIP et toujours activés) sont maintenant installés via l’outil Composer (ou présents dans l’archive SPIP téléchargée).
Ils sont maintenant placés dans le répertoire plugins-dist/spip/
avec leur préfixe comme nom de répertoire. Ils étaient auparavant directement à la racine de plugins-dist/
.
En conséquence, et en fonction de votre méthode de migration vers SPIP 5.0,
il faudra supprimer les anciens plugins-dist/
de SPIP 4.2 à la racine s’ils sont présents.
Ainsi, par exemple, le plugin Textwheel était auparavant dans plugins-dist/textwheel
et se retrouve après mise à jour en SPIP 5.0 dans plugins-dist/spip/tw
(où tw
est le préfixe du plugin)
Webmestres
La constante _ID_WEBMESTRES
(dépréciée en SPIP 2.1) n’est plus utilisée et n’a plus d’effet.
Si vous déclariez cette constante (dans config/mes_options.php
par exemple), il convient de l’enlever et de déclarer les autrices et auteurs webmestres en conséquence depuis l’interface privée de SPIP en tant que webmestre (ou via le champ webmestre
de la table spip_auteurs
directement dans la base de données).
Squelettes
Parties optionnelles des balises
Il devient possible d’utiliser des crochets dans les parties optionnelles des balises. Ainsi :
-
[avant] (#VAL{texte})]
écritavant] texte
-
[(#VAL{texte}) [après]
écrittexte [après
-
[avant] (#VAL{texte}) [après]
écritavant] texte [après
En conséquence, certaines écritures de squelettes deviennent comprises comme des parties optionnelles, lorsque (#BALISE
est utilisé alors que la parenthèse ne désigne pas une partie optionnelle.
Ce cas peut se trouver par exemple dans des écriture pour du CSS. Il convient de lever l’ambiguité
Avant
a[href] { background-image: url(#CHEMIN_IMAGE{img.svg}); }
Après
a[href] { background-image: url\(#CHEMIN_IMAGE{img.svg}); }
ou
a[href] { background-image: url("#CHEMIN_IMAGE{img.svg}"); }
Nouvelles dépréciations
Les éléments suivants sont dépréciés et seront supprimés dans une future version.
Syntaxes de squelettes
{collecte}
(déprécié en 5.0)
Critère Utiliser {collate}
Avant
<BOUCLE_a(ARTICLES) {par titre} {collecte utf8_spanish_ci} {"<br />"}>...
Après
<BOUCLE_a(ARTICLES) {par titre} {collate utf8_spanish_ci} {"<br />"}>...
{fusion}
(déprécié en 5.0)
Critères Utiliser {groupby}
Avant
<BOUCLE_extrait(ARTICLES){fusion id_rubrique}>...
Après
<BOUCLE_extrait(ARTICLES){groupby id_rubrique}>...
{fusion_supprimer}
(déprécié en 5.0)
Critères Utiliser {groupby_supprimer}
Avant
<BOUCLE_facette_annee(ARTICLES){id_mot=27}{fusion_supprimer}{fusion YEAR(date)}>
[(#DATE|annee)]<br />
</BOUCLE_facette_annee>
Après
<BOUCLE_facette_annee(ARTICLES){id_mot=27}{groupby_supprimer}{groupby YEAR(date)}>
[(#DATE|annee)]<br />
</BOUCLE_facette_annee>
Fonctions PHP
Dans certains cas parfois utilisées en filtres de squelettes également.
extraire_multi
et extraire_idiome
Fonctions Le 3è paramètre $options
déprécié si booléen.
Ce paramètre $options
doit être un array
.
Avant
$multi = extraire_multi($texte, 'en', true);
$idiome = extraire_idiome($texte, 'en', true);
Après
$multi = extraire_multi($texte, 'en', ['echappe_span' => true]);
$idiome = extraire_idiome($texte, 'en', ['echappe_span' => true]);
spip_setcookie
Fonction La fonction spip_setcookie()
reprend les arguments de la fonction php setcookie
.
Les constantes _COOKIE_SECURE
et _COOKIE_SECURE_LIST
sont dépréciées au profit des options
secure
(activée par défaut en HTTPS) et httponly
de la fonction
Exemple
spip_setcookie('mon_cookie', 'ma valeur', time() + 3600, httponly: true);
spip_sha256
(dépréciée en 5.0)
Fonction Utiliser la fonction native hash
Avant
$hash = spip_sha256('mon contenu');
Après
$hash = hash('sha256', 'mon contenu');
Suppressions des éléments dépréciés
Les éléments suivants ont été supprimés et doivent être adaptés si ce n’est pas encore le cas.
Syntaxes de squelettes
#LOGO_
(dépréciés en 2.1)
Filtres de Les syntaxes des #LOGO_xx
avec de faux filtres |left
|right
|center
|bottom
, |top
, |lien
|fichier
ne sont plus prises en compte.
Avant
- [(#LOGO_ARTICLE|#URL_ARTICLE)]
- [(#LOGO_ARTICLE|fichier)]
- [(#LOGO_ARTICLE|lien)]
- [(#LOGO_ARTICLE|left)]
Après
- [(#LOGO_ARTICLE{#URL_ARTICLE})]
- [(#LOGO_ARTICLE**)]
- [(#LOGO_ARTICLE*)]
- [(#LOGO_ARTICLE{left})]
Note: les positionnements left
, right
, center
, bottom
, top
ajustent simplement une classe CSS.
#FORMULAIRE_RECHERCHE|parametre
(déprécié en 2.1)
Filtre de Avant
[(#FORMULAIRE_RECHERCHE|param)]
Après
[(#FORMULAIRE_RECHERCHE{param})]
#EXPOSER
(déprécié en 1.8.2)
Balise Avant
[(#EXPOSER|on,off)]
Après
[(#EXPOSE{on,off})]
#EMBED_DOCUMENT
(déprécié en 2.0)
Balise Avant
[(#EMBED_DOCUMENT|autostart=true)]
Après
[(#MODELE{emb, autostart=true})]
foreach
Filtre Le filtre déprécié foreach
est supprimé. Utiliser une boucle DATA
.
Avant
[(#LISTE{a,b,c,d}|foreach)]
Après
<BOUCLE_liste(DATA){source tableau, #LISTE{a,b,c,d}}>
- #CLE => #VALEUR <br />
</BOUCLE_liste>
POUR
Boucle La boucle POUR
dépréciée est supprimée. Utiliser une boucle DATA
.
Avant
<BOUCLE_liste(POUR){tableau #LISTE{un,deux,trois}}>
- #CLE : #VALEUR <br />
</BOUCLE_liste>
Après
<BOUCLE_liste(DATA){source tableau, #LISTE{un,deux,trois}}>
- #CLE : #VALEUR <br />
</BOUCLE_liste>
Fonctions PHP
Dans certains cas parfois utilisées en filtres de squelettes également.
http_status
Fonction La fonction dépréciée http_status
est supprimée.
Utiliser la fonction PHP native http_response_code
Avant
http_status(404);
Après
http_response_code(404);
generer_url_ecrire_objet
Fonction La fonction dépréciée generer_url_ecrire_objet
est supprimée.
Utiliser generer_objet_url_ecrire
.
Avant
$url = generer_url_ecrire_objet(3, 'article');
[(#ID_ARTICLE|generer_url_ecrire_objet{article})]
Après
$url = generer_objet_url_ecrire(3, 'article');
[(#ID_ARTICLE|generer_objet_url_ecrire{article})]
generer_{x}_entite
Fonctions De même que generer_url_ecrire_objet
les fonctions dépréciées
generer_lien_entite
generer_introduction_entite
generer_info_entite
Sont supprimées et remplacées (renommées) par
generer_objet_lien
generer_objet_introduction
generer_objet_info