Bien qu’outil premier des webmestres, Spip_loader ne reconnait automatiquement que le webmestre n°1 ; pour habiliter d’autres intervenants, il faut une configuration spécifique.
Depuis SPIP_loader 6.x.o
D’après les sources du spip_loader.php (v6.1.x)
Nouvelle configuration des auteurs habilités
Depuis des dernières [2] versions de spip_loader (voir précédemment Old spip_loader_config.php (v5.1.1 obsolète)), la configuration a changée : il faut aller retrouver sa documentation dans les sources (compilées en ’phar’) sur la forge https://git.spip.net/spip-contrib-o......
On y découvre un nouveau format pour la Configuration dans un fichier spip_loader_config.php (toujours placé au même niveau que le script
spip_loader.php) pour définir une configuration, en retournant un tableau associatif PHP.
Exemple
L’exemple suivant autorise les auteurs n°1, 2 et 3 à utiliser le SPIP Loader
sur un site déjà existant, s’ils sont au moins administrateurs sur le site en question.
- <?php
- // spip_loader_config.php v6.x.x
- return [
- 'authorized.users' => [1, 2, 3],
- ];
Configurations
D’autres configurations utilisateur sont possibles (et seront mieux documentées dès que j’en aurai testées plus), mais authorized.users est probablement la seule utilisée couramment. Voir Config/Custom.php ; ce qui serait dès lors intéressant, sera de pouvoir ré-utiliser facilement ce chargeur pour d’autres téléchargements...
Constantes principales configurables
Equivalent de _SPIP_LOADER_UPDATE_AUTEURS : Définit les IDs des auteurs autorisés à effectuer les mises à jour (ex : ’1:2:3’ ou ’1’ par défaut).
/**
* liste d’id_auteur (table spip_auteurs).
*/
'authorized.users' => [1], // => [1,2,3 ], Dans le cas d’une installation Linux, il peut parfois être utile de modifier le masque de droits par défaut...(par exemple pour autoriser les modifications par tout utilisateur du groupe www-data, si vous y rajoutez votre ’user ’ ! )
# Chmod à appliquer
'chmod' => 0755, Equivalent du URL_SPIP_LOADER_LIST : tableau des versions téléchargeables :
'url.spip_loader.api' =>
'https://www.spip.net/spip_loader.api', Alors que les précédentes versions de spip_loader embarquaient un tableau texte des versions disponibles, le nouveau système télécharge le tableau des versions (maintenues), directement depuis l’adresse ’https://www.spip.net/spip_loader.api , valorisé par défaut : le contenu de https://www.spip.net/spip_loader.api.
Cette page web maintenue à jour par la team contient (à date de cet été 2026) :
{
"api": 2,
"versions": {
"dev": "spip/dev/spip-master.zip",
"4.4.16": "spip/archives/spip-v4.4.16.zip",
"4.3.9": "spip/archives/spip-v4.3.9.zip",
"4.1.20": "spip/archives/spip-v4.1.20.zip"
},
"default_branch": "4.4",
"requirements": {
"php": {
"master": "8.4.0",
"4.4": "7.4.0",
"4.3": "7.4.0",
"4.1": "7.4.0"
}
}
}« On aurait aimé pouvoir rajouter
"3.2.19": "spip/archives/spip-v3.2.19.zip",
avec
"3.2":7.4.0"
Par exemple, voici une solution imaginée pour ce faire (sur "votre" serveur local) en test (et à tester !) :
vous créez une page web texte avec ce fichier complété à votre sauce
vous déposez à coté de votre fichier spip_loader.php dernière version
le fichier adapté spip_loader_config.php
- <?php
- // spip_loader_config.php v7.x.x
- return [
- 'authorized.users' => [1, 2, 3],
- # Chmod à appliquer
- 'chmod' => 2775,
- # 'chmod' => 0755,
- ## tableau des versions amendées, à charger sur
- 'url.spip_loader.api' => 'http://localhost/spip_loader_config.api',
- ];
# Si définit, utilisera le chemin zip indiqué,
# Relatif à url.zip.depot
’archive.zip.path’ => ’’,
Autres Constantes, à re-documenter
_URL_LOADER_PROXY : URL du proxy à utiliser pour les téléchargements (vide par défaut).
_SPIP_LOADER_SCRIPT : Adresse du script d’exécution (ex : ’spip_loader.php’).
_SPIP_LOADER_PLUGIN_RETOUR : URL de redirection après l’installation ou la mise à jour (ex : ’ecrire/ ?exec=admin_plugin&voir=tous’).
_CHEMIN_FICHIER_ZIP : Chemin relatif du paquet ZIP à télécharger (ex : ’spip/stable/spip-3.2.zip’).
_DEFAUT_BRANCHE_MAJ : Branche par défaut pour les mises à jour (ex : ’3.2’, ’dev’).
_DIR_BASE et _DIR_PLUGINS : Répertoires d’installation de base et des plugins.
Equivalent _URL_SPIP_DEPOT : Adresse du dépôt de fichiers SPIP (ex : ’https://files.spip.net/’).
’url.spip.depot’ => ’https://files.spip.net/’,
’url.spip_loader.api’ => ’https://www.spip.net/spip_loader.ap...;,
_SPIP_LOADER_KEEP : Nom du fichier (par défaut .spip_loader_keep) indiquant qu’un répertoire obsolète ne doit pas être déplacé.
Jusqu’à SPIP_loader 5.2.o
D’après les sources de la version 5.1.1 du spip_loader.php
Constantes du LOADER
_SPIP_LOADER_VERSION = ’5.1.1’
_SPIP_LOADER_API = 2
_URL_LOADER_DL = # Adresse des librairies nécessaires à spip_loader
define(’_URL_LOADER_DL’, ’https://get.spip.net/’) ;
_URL_SPIP_LOADER_LIST = Url des versions proposées
define(’_URL_SPIP_LOADER_LIST’, ’https://www.spip.net/spip_loader.ap...;) ;
_URL_SPIP_LOADER = Url du fichier spip_loader permettant de tester sa version distante
define(’_URL_SPIP_LOADER’, _URL_LOADER_DL . ’spip_loader.php’) ;
_URL_LOADER_PROXY = # telecharger a travers un proxy
define(’_URL_LOADER_PROXY’, ’’) ;
Constantes de droits
_SPIP_LOADER_UPDATE_AUTEURS = Auteur(s) autorise(s) a procéder à mise a jour : ’1:2:3’
define(’_SPIP_LOADER_UPDATE_AUTEURS’, ’1’) ;
_SPIP_LOADER_SCRIPT = adresse du script exécuté :
define(’_SPIP_LOADER_SCRIPT’, ’spip_loader.php’) ;
_SPIP_LOADER_PLUGIN_RETOUR = adresse de branchement en sortie
define(’_SPIP_LOADER_PLUGIN_RETOUR’, ’ecrire/ ?exec=admin_plugin&voir=tous’) ;
_DEST_PAQUET_ZIP
define(’_DEST_PAQUET_ZIP’, ’’) ;
_PCL_ZIP_SIZE
define(’_PCL_ZIP_SIZE’, 249587) ;
PCLZIP_READ_BLOCK_SIZE = constante de la librairie PCLzip.php
define(’PCLZIP_READ_BLOCK_SIZE’, 2048) ;
_PCL_ZIP_RANGE
define(’_PCL_ZIP_RANGE’, 200) ;
_SPIP_LOADER_KEEP = /* Le SPIP Loader ne place pas dans le répertoire obsolète
* un répertoire qui contiendrait un fichier avec ce nom. */
define(’_SPIP_LOADER_KEEP’, ’.spip_loader_keep’) ;
Constantes de dossier
_DIR_BASE = # repertoires d’installation
define(’_DIR_BASE’, ’./’) ;
_DIR_PLUGINS =
define(’_DIR_PLUGINS’, _DIR_BASE . ’plugins/’) ;
Constantes definissant la Version SPIP
_URL_SPIP_DEPOT = # adresse du depot
define(’_URL_SPIP_DEPOT’, ’https://files.spip.net/’) ;
_NOM_PAQUET_ZIP = # surcharger le script pour un autre usage
define(’_NOM_PAQUET_ZIP’, ’spip’) ;
DEFAUT_BRANCHE_MAJ' = # pour fixer sur une branche
define(’_DEFAUT_BRANCHE_MAJ’, ’3.2’) ;
_REMOVE_PATH_ZIP = // par defaut le morceau de path a enlever est le nom :
define(’_REMOVE_PATH_ZIP’, ’’) ; // (anciennement ’spip/’)
define('_CHEMIN_FICHIER_ZIP =
define(’_CHEMIN_FICHIER_ZIP’, $notre_branche[’zip’]) ;
Il est possible de fixer directement la version SPIP voulue (avec la dernière release)
define(’_CHEMIN_FICHIER_ZIP’, ’spip/stable/spip-3.0.zip’) ;
Il est même possible de lui demander de remonter une version spécifique de SPIP
define(’_CHEMIN_FICHIER_ZIP’, ’spip/stable/spip-3.0.9.zip’) ;
Ces éléments pouvaient/peuvent etre fixés dans l’appel du script :
spip_loader.php?chemin=spip%2Farchives%2FSPIP-v3.2.4.zip
Attention, la forme d’écriture exacte du nom de fichier .zip ayant parfois varier, vous avez intéret à vérifier l’orthographe exacte (y compris la casse) en recherchant le fichier dans https://files.spip.net/spip/archives/
_CHEMIN_FICHIER_ZIP_FORCEE =/ éviter d’afficher le sélecteur de branche dans ces cas là.
define(’_CHEMIN_FICHIER_ZIP_FORCEE’, true) ;
Fichier .json des versions suivies
Par exemple voici le fichier décrivant les dernières releases disponibles
(à la date du 6/08/2022) :
{
"api":2,"versions":
{
"dev":"spip\/dev\/spip-master.zip",
"4.1.5":"spip\/archives\/spip-v4.1.5.zip",
"3.2.16":"spip\/archives\/spip-v3.2.16.zip",
"4.0.8":"spip\/archives\/spip-v4.0.8.zip"
},
"default_branch":"4.1",
"requirements": {
"php": {
"master":"7.4.0",
"4.1":"7.4.0",
"3.2":"5.4.0",
"4.0":"7.3.0"
}
}
}
Article publié le 4 juin 2024, et actualisé en août 2026 .
Répondre à cet article