Bien entendu, le fonctionnement SPIP 2 reste utilisable pour Installer des plugins SPIP ; mais depuis, SPIP 3 améliore les choses, sous réserve de penser ../auto/
;-) [1]
Le Serveur de Plugins SPIP3
Le SerVeur de Plugins SVP suppose une norme de stockage des plugins zippés mis à disposition des utilisateurs de SPIP, selon un protocole particulier : la première étape est donc de spécifier un (ou plusieurs) adresses d’URL de dépôts, qui permettra l’interrogation des solutions possibles par une grille de recherche.
- La nouvelle grille de recherche SVP sous SPIP 3
Vous pouvez donc CHOISIR des PLUGINS par un ou des mots-clés (voire d’autres sélections techniques...), et cliquer en fonction des résultats présentés :
- Dans le choix des plugins, divers cas...
- SPIP vous montre les plugins "stables", estompant (en grisant) des plugins en état "dev" ou "test" qui pourraient être moins fiabilisés ; à vous de voir !
Les affichages de listes de plugins de SVP sont triés par "Nom" des plugins, non pas par préfixes, sachant que le Nom est extrait des fichiers de langues,sans correspondre toujours au préfixe du plugin !
Rappelez-vous que SVP nécessite que le serveur Apache puisse écrire dans le répertoire déjà créé [2] ./plugins/auto/
(et parfois aussi dans ./lib
), avec des droits qui ne sont pas testés à l’installation.... et que votre Apache ait accès à l’Internet pour télécharger depuis spip.org [3].
Autre chose : le plugin SVP (comme la Médiathèque) dépend du plugin ARCHIVISTE ≥ 0.2.2 !
En cas d’erreurs,vous pouvez contrôler plusieurs choses :
la version de PHP utilisée (en principe SPIP 3.2 pas compatible avec PHP ≥ 7.3)
le complétude [4] de votre dépôt (hé oui, il fallait y penser !)
- Rechargement du dépot SPIP 3.2 après SVP
- ecrire/ ?exec=admin_plugin&var_mode=vider_paquets_locaux
videz le cache, puis essayer successivement chacune des deux commandes spéciales indiquées ci-après.
Chargement refusé par SVP !?
Vous êtes passé par le bloc de chargement traditionnel [5], et .... SPIP signale une erreur [6] !
si SPIP annonce un téléchargement impossible, il peut arriver (en particulier sur de vieux hébergements) qu’il s’agisse d’une erreur de certificats out-of-date : l’URL que vous avez copiée débute par http
s://files.spip.org/...
!
Corrigez en utilisant un lien http:// simple.
chez certains hébergeurs (Free ?), les téléchargements directs par le moteur Php de SPIP sont interdits (pour raison de sécurité)......
Contourner l’usage de SVP SVP
Avant SVP, on se débrouillait avec des Outils FTP pour Webmestre pour réaliser une installation manuelle des plugins : alors, si SVP refuse de vous télécharger le plugin sélectionné (avec une erreur 300 ou un simple message "Aucun plugin..." comme ci-dessous
c’est qu’effectivement aucun plugin ne correspond... Ou que le serveur est planté (cela arrive), zut alors.....
Ou bien votre serveur Apache peut aussi rencontrer des problèmes de time-out en lecture de fichiers distants,
ou de taille mémoire (Memory exhausted)...
ou d’accès à l’Internet (un pare feu local bloquerait-il SERVEUR Web de test : COMMENT ? )...
Pas de panique, vous pouvez encore récupérer le zip archivé du plugin en passant par http://plugins.spip.net qui vous proposera de le télécharger en fournissant une URL de la forme https://files.spip.net/spip-zone/
leprefixe_plugin
.zip
qui n’est pas sur le meme serveur...
Et au pire, revenez à la bonne technique du FTP !
Et l’activation du plugin plante votre SPIP : la solution passe aussi par FTP :
effacez le sous-répertoire du plugin fautif sous plugins/auto/
!
D’autres soucis ont parfois été signalés sur les utilisations fines de spip_version_compare()
(en particulier la différence entre celles du core [7] et celle du CS qui appelle directement version_compare() [8]...
Les commandes cachées pour SVP
Ces manipulations osées, parmi d’autres, peuvent vous perturber le fonctionnement de SPIP : donc, comme souvent déjà, un vidage du cache est un premier réflexe qui devrait devenir automatique en cas de soucis [9].
D’autres cas ont pu être signalés : devoir supprimer et recréer l’arborescence ./plugins/auto/
, peut-être que le re-chargement de plugins positionnait mal les sous-dossiers codés aux numéros de versions....
Deux commandes complémentaires spéciales de var_mode
, sont exploitables dans SVP (sur la page de Gestion des plugins ./ecrire/?exec=admin_plugin
) :
-
&var_mode=vider_paquets_locaux
indique à SVP de forcer un recalcul de ses informations en base pour ce qui concerne les plugins locaux, donc (plugins/ , plugins-dist/), forcer le rechargement des tables de données et paquet.xml avec le bon charset...
Vous passerez donc la commande suivante dans votre URL (pas de double /ecrire// !)/ecrire/?exec=admin_plugin&var_mode=vider_paquets_locaux
-
&var_mode=reinstaller_svp
est encore plus bourrin : il désinstalle SVP [10]
(comme il est verrouillé dans SPIP, le plugin se réinstallera automatiquement au prochain tour)./ecrire/?exec=admin_plugin&var_mode=reinstaller_svp
Donc, si c’est un problème de lecture par SVP, le premier devrait corriger ça (ça arrivait dans des cas rares, mais normalement on devrait plus en avoir besoin). Le second nécessitera évidemment de reconfigurer SVP par la suite (dépots de plugins & conf si elle avait été changé…) : voir ci-dessous (attention aussi aux versions de PHP que vous utilisez : Pre-requis Techniques, car SVP y semble particulièrement sensible....).
Enfin, SPIP peut décider qu’un paquet.xml
d’un plugin comporte des erreurs [11] et affiche un pavé d’erreurs !
Mais le lien proposé n’est pas bien codé et l’affichage insuffisant , alors en attendant que les correctifs soient implantés [12] , on vous propose de corriger le /ecrire/plugins/infos_paquet.php [80..85]
de la function plugins_infos_paquet($desc, $plug = '', $dir_plugins = _DIR_PLUGINS)
en
- // Construire le lien renvoyant sur l'application du validateur XML https://core.spip.net/issues/4257
- $h = // $GLOBALS['meta']['adresse_site'] . '/' // cf. https://core.spip.net/issues/4257
- $h = generer_url_ecrire('valider_xml', "var_url=$h");
- // Afficher le premier message d'erreur, puis le lien de détails
- array_unshift($msg, "<a href='$h'>$t</a>" . " <ul class='erreur_xml'><li>" . reset($msg) . "</li></ul>" ); /* https://git.spip.net/spip/ecrire/commit/3a4dad15c1d9b4f3c4dd4db1ef05957fccf8ef28 */
Avec les deux propositions conjointes, voici :
- L’explication fournie par SVP après ce patch
- La première erreur est affichée et le lien cliquable appelle le validateur_xml intégré a SPIP.
La configuration cachée de SVP
Enfin, SVP est un plugin SPIP (verrouillé) ...donc configurable : vous accéderez à sa ligne descriptive en cliquant le bouton d’onglet "Verrouillés" comme ci-dessous, et donc un clic donnera accès à ?exec=configurer_svp
.
- Le plugin verrouillé SVP
- (cliquer sur l’icône de configuration)
Diverses options sont alors consultables...
- ?exec=configurer_svp
Plusieurs versions de plugins ?
Tout comme SPIP, et même plus souvent encore, les plugins sont mis à jour fréquemment : SVP vous propose automatiquement les mises à jour disponibles [13], chaque fois que le webmestre revient sur la page de Gestion des Plugins, comme le faisait le Couteau Suisse en SPIP 2.
- Deux plugins actifs extraits de la page de SVP SPIP 3.2
- A droite, sur Facteur les deux icones de Mise-à-jour (à lancer par SVP), et d’appel de la page de configuration du plugin.
Noter que le clic sur le nom du plugin FreeMind vous offre plus d’informations, lien vers une page de documentation en-ligne avec "Savoir plus", et enfin le sous-répertoire d’installation du plugin.
Et la mise-à-jour de nombreux plugins est encore plus facile, car un automatisme complet est accessible en fin de page, il suffit de cliquer sur cocher les mises-à-jour avant de lancer le téléchargement et l’activation de toutes ces nouveautés traitées [14] en un lot.
- Aller en bas d’ecran pour lancer les chargements
Souvenez-vous que si le plugin n’est pas accessible depuis SVP, l’installation directe d’un zip [15] reste possible :
soit en donnant le lien HTTP de téléchargement direct, et SVP effectuera une installation automatique (dans ./plugins/auto/ s’il existe),
soit même en ’calculant’ le lien de rechargement depuis la zone, sous la forme :
https://zone.spip.net/trac/spip-zone/changeset/latest/_plugins_/
NOM_DU_PLUG?old_path=/&format=zip
pour obtenir le Zip reconstitué depuis la zone : ex. _plugins_/clients ?old_path=/&format=zip !
soit par FTP : à vous de le mettre, soit dans ./plugins/
(mais sans possibilité de mise-à-jour automatique, soit sous l’arborescence ./plugins/auto/
.
Bien sûr, vous n’oublierez pas d’activer manuellement ce plugin.
- Le bloc chargement direct d’un plugin par zip
- en bas de la page "Ajouter des plugins"
Ainsi vous pourrez charger et installer une nouvelle version de plugin, proposée depuis un autre point de chargement ou non encore rendue disponible en .zip sur la zone, par exemple :
- Le résultat d’un changement de version de plugin.
Pallier des erreurs à l’activation d’un plugin
En général, la solution est de désactiver/supprimer le plugin coupable (au moins temporairement) : pour cela, il n’y a guère qu’une solution, radicale, FTP !
s’il s’agit d’une erreur PHP (ce qui ne devrait jamais arriver ! ;-), mais bien possible sur les plugins récents sur de vieux hébergements, j’ai plusieurs fois rencontré l’erreur suivante, sur une simple ligne d’initialisation genre $array_truc = [];
!
La syntaxe Php raccourcie []
n’est pas reconnue par le vieil interpréteur PHP = remplacer par :
$array_mot = array(); // ## $array_mot = [];
un autre souci est souvent évoqué dans les forums, avec des symptômes divers : soit le webmestre voit apparaitre un pavé d’erreur indiquant une table non trouvée, l’installation du plugin est refusée sans détail, voire l’interface privée bascule totalement en debug !
En fait, une cause commune à tous ces symptômes possibles, c’est une table manquante : lors de l’installation du plugin, la table de données nécessaire au plugin n’a pas pu être ajoutée dans la base SPIP, sans message explicite [16] ...
Vérifiez déjà ce point (en tant que rédacteur) en listant les tables présentes [17] dans ./ecrire/?exec=vertebres
, ou mieux par le plugin intégré Adminer...
Et si l’installation ne veut pas se faire, récupérer sur un site SPIP correctement fonctionnel,
la seule structure SQL des tables nécessaires, puis recopiez pour exécution SQL les quelques instructions correspondantes (en corrigeant le prefix si besoin), dans votre interface SQL [18] ci-dessus.
Enfin rappelons que -vue la complexité de ce chargeur inter-serveurs- vous pourrez parfois avoir besoin des quelques commandes de déblocage de SVP vues ci-dessus.
Article publié le 19 mars 2013, et actualisé en février 2022 .
Répondre à cet article