_AUTORISER_TELECHARGER_PLUGINS
public
mixed
_AUTORISER_TELECHARGER_PLUGINS
= true
public
mixed
_AUTORISER_TELECHARGER_PLUGINS
= true
public
mixed
_GIT_COMMAND
= 'git'
public
mixed
_SVN_COMMAND
= 'svn'
Mise à jour automatique des depots (CRON) true pour autoriser les actualisations automatique
public
bool
_SVP_CRON_ACTUALISATION_DEPOTS
= \true
public
string
_SVP_DTD_PAQUET
= 'paquet'
Phraseur à utiliser pour un XML de paquet.xml
public
string
_SVP_DTD_PLUGIN
= 'plugin'
Phraseur à utiliser pour un XML de plugin.xml
public
mixed
_SVP_MODE_RUNTIME
= \lire_config('svp/mode_runtime', 'oui') == 'oui' ? \true : \false
public
mixed
_SVP_PAGES_OBJET_PUBLIQUES
= ''
public
mixed
_SVP_PAQUET_MAX_SIZE
= 67108864
Période d'actualisation en nombre d'heures (de 1 a 24)
public
int
_SVP_PERIODE_ACTUALISATION_DEPOTS
= 6
public
mixed
_SVP_REGEXP_BALISE_ARCHIVE
= '#<archive[^s][^>]*>(.*)</archive>#Uims'
public
mixed
_SVP_REGEXP_BALISE_ARCHIVES
= '#<archives[^>]*>(.*)</archives>#Uims'
public
mixed
_SVP_REGEXP_BALISE_DEPOT
= '#<depot[^>]*>(.*)</depot>#Uims'
public
mixed
_SVP_REGEXP_BALISE_MULTIS
= '#<multis[^>]*>(.*)</multis>#Uims'
public
mixed
_SVP_REGEXP_BALISE_PAQUET
= '#<paquet[^>]*>(.*)</paquet>#Uims'
public
mixed
_SVP_REGEXP_BALISE_PLUGIN
= '#<plugin[^>]*>(.*)</plugin>#Uims'
public
mixed
_SVP_REGEXP_BALISE_TRADUCTIONS
= '#<traductions[^>]*>(.*)</traductions>#Uims'
public
mixed
_SVP_REGEXP_BALISE_ZIP
= '#<zip[^>]*>(.*)</zip>#Uims'
Version SPIP maximale
public
mixed
_SVP_VERSION_SPIP_MAX
= '5.0.999'
Pour l'instant on ne connait pas la borne sup exacte
Version SPIP minimale quand un plugin ne le precise pas
public
mixed
_SVP_VERSION_SPIP_MIN
= '1.9.0'
Version SPIP correspondant à l'apparition des plugins
Action effectuant 1 action dans la liste des actions à réaliser sur les plugins.
action_actionner_dist() : mixed
Cette action sera relancée tant qu'il reste des actions à faire
Redirections par refresh d'une URL afin d'éviter des blocages de redirections par les navigateurs lorsqu'elles sont trop nombreuses
svp_redirige_boucle(string $url, string $texte, string $progres) : mixed
Texte de l'action réalisée
Action de mise à jour en base de données de la liste des plugins d'un ou de tous les dépots
action_actualiser_depot_dist() : mixed
Action de mise à jour des descriptions d'un dépot
action_editer_depot_dist() : array<string|int, mixed>
Liste identifiant du dépot, texte d'erreur éventuel
Appelle toutes les fonctions de modification d'un dépot $err est de la forme '&trad_err=1'
depots_set(int $id_depot) : string
Identifiant du dépot
Texte d'une eventuelle erreur
Action de suppression en base de données d'un dépot et de ses plugins
action_supprimer_depot_dist() : mixed
Téléporter et déballer un composant
action_teleporter_composant_dist(string $methode, string $source, string $dest[, array<string|int, mixed> $options = [] ]) : bool|string
http|git|svn|...
URL source du composant
Chemin du répertoire où déballer le composant. Inclus le dernier segment
revision => '' --ignore-externals
String : texte d'une erreur true si l'opération est correctement réalisée
Vérifier et préparer l'arborescence jusqu'au répertoire parent
teleporter_verifier_destination(string $dest) : bool|string
false en cas d'échec Chemin du répertoire sinon
Déplace un répertoire pour libérer l'emplacement.
teleporter_nettoyer_vieille_version(string $dest) : string
Si le répertoire donné existe, le déplace dans un répertoire de backup. Si ce backup existe déjà, il est supprimé auparavant. Retourne le nouveau chemin du répertoire.
Chemin du répertoire à déplacer
Nouveau chemin du répertoire s'il existait, Chaîne vide sinon
Déclarer les objets éditoriaux de SVP
svp_declarer_tables_objets_sql(array<string|int, mixed> $tables) : array<string|int, mixed>
Description des tables
Description complétée des tables
Déclarer les tables de liaisons de SVP
svp_declarer_tables_auxiliaires(array<string|int, mixed> $tables_auxiliaires) : array<string|int, mixed>
Déclare la table spip_depots_plugins
Description des tables auxiliaires
Description complétée des tables auxiliaires
Déclare les alias de boucle et traitements automatiques de certaines balises
svp_declarer_tables_interfaces(array<string|int, mixed> $interface) : array<string|int, mixed>
Déclarations d'interface pour le compilateur
Déclarations d'interface pour le compilateur
Affichage de la page de gestion des plugins
exec_admin_plugin_dist() : mixed
Retourne un texte des actions realisées s'il y en a eu tel que activation, désactivation, téléchargement de plugins... Nettoie au passage le fichier de cache décrivant les actions faites (ou encore à faire) dans les cas suivant : - il n'y a plus d'action - le nettoyage est expressement demandé par la commande 'nettoyer_actions' dans l'URL (ce lien est justement disponible si l'auteur des actions tombe sur cette page alors qu'il reste des actions à faire, ce qui signale en général un problème)
svp_presenter_actions_realisees() : string
Code HTML présentant les actions réalisées Vide si rien ne s'est passé !
Chargement du formulaire de gestion des plugins
formulaires_admin_plugin_charger_dist([string $voir = '' ][, string $verrouille = '' ][, string|int $id_paquet = '' ][, string $redirect = '' ]) : array<string|int, mixed>
Statut des plugins que l'on souhaite voir : actif, inactif, tous
Types de plugins que l'on souhaite voir :
Identifiant du paquet dont on veut obtenir une description complète lors de l'affichage du formulaire
URL de redirection après les traitements
Environnement du formulaire
Vérifications du formulaire de gestion des plugins
formulaires_admin_plugin_verifier_dist([string $voir = 'actif' ][, string $verrouille = 'non' ][, string|int $id_paquet = '' ][, string $redirect = '' ]) : array<string|int, mixed>
Appelle le décideur qui détermine la liste des actions à faire et si celles-ci peuvent être faites (dépendances connues). Une erreur sera levé dans le cas contraire.
Si toutes les actions peuvent être faites, une demande de confirmation est envoyée (dans une erreur spéciale), présentant alors toutes les actions qui seront réalisées (celle demandée + celles à faire par voie de conséquence.
Si on reçoit une demande de confirmation, on sort sans lever d'erreur !
Statut des plugins que l'on souhaite voir : actif, inactif, tous
Types de plugins que l'on souhaite voir :
Identifiant du paquet dont on veut obtenir une description complète lors de l'affichage du formulaire
URL de redirection après les traitements
Tableau des erreurs
Traitement du formulaire de gestion des plugins
formulaires_admin_plugin_traiter_dist([string $voir = 'actif' ][, string $verrouille = 'non' ][, string|int $id_paquet = '' ][, string $redirect = '' ]) : array<string|int, mixed>
Si une liste d'action est validée, on redirige de formulaire sur l'action 'actionner' qui les traitera une par une.
Statut des plugins que l'on souhaite voir : actif, inactif, tous
Types de plugins que l'on souhaite voir :
Identifiant du paquet dont on veut obtenir une description complète lors de l'affichage du formulaire
URL de redirection après les traitements
Retours du traitement
Chargement du formulaire d'ajout de dépot
formulaires_ajouter_depot_charger_dist() : array<string|int, mixed>
Environnement du formulaire
Vérifications du formulaire d'ajout de dépot
formulaires_ajouter_depot_verifier_dist() : array<string|int, mixed>
Vérifie qu'une adresse valide est soumise et que ce dépot n'a pas déjà été créé.
Tableau des erreurs
Traitement du formulaire d'ajout de dépot
formulaires_ajouter_depot_traiter_dist() : array<string|int, mixed>
Ajoute le dépot. Retourne une éventuelle erreur si le dépot a un XML mal formé ou s'il n'a aucun plugin.
Retours du traitement
Teste la validité d'une URL d'un dépot de paquets
svp_verifier_adresse_depot(string $url) : bool
Pour cela on tente de rapatrier le fichier distant en local. Si on réussi, c'est bon.
URL du fichier xml de description du depot
Le dépot est-il valide ?
Chargement du formulaire de recherche et téléchargement de plugins
formulaires_charger_plugin_charger_dist() : array<string|int, mixed>
Environnement du formulaire
Vérification du formulaire de recherche et téléchargement de plugins
formulaires_charger_plugin_verifier_dist() : array<string|int, mixed>
Appelle le décideur qui détermine la liste des actions à faire et si celles-ci peuvent être faites (dépendances connues). Une erreur sera levé dans le cas contraire.
Si toutes les actions peuvent être faites, une demande de confirmation est envoyée (dans une erreur spéciale), présentant alors toutes les actions qui seront réalisées (celle demandée + celles à faire par voie de conséquence.
Si on reçoit une demande de confirmation, on sort sans lever d'erreur !
Tableau des erreurs
Traitement du formulaire de recherche et téléchargement de plugins
formulaires_charger_plugin_traiter_dist() : array<string|int, mixed>
Si une liste d'action est validée, on redirige de formulaire sur l'action 'actionner' qui les traitera une par une.
Retours du traitement
Chargement du formulaire de téléchargement de plugin
formulaires_charger_plugin_archive_charger_dist() : array<string|int, mixed>
Environnement du formulaire
Vérifications du formulaire de téléchargement de plugin
formulaires_charger_plugin_archive_verifier_dist() : array<string|int, mixed>
Vérifie qu'une archive est saisie, et si la destination existe demande à confirmer l'écrasement
Tableau des erreurs
Traitement du formulaire de téléchargement de plugin
formulaires_charger_plugin_archive_traiter_dist() : array<string|int, mixed>
Télécharge le plugin via le téléporteur et rend la main.
Retours du traitement
Chargement du formulaire d'édition de dépot
formulaires_editer_depot_charger_dist(int $id_depot, string $redirect) : array<string|int, mixed>
Identifiant du dépot
URL de redirection
Environnement du formulaire
Vérification du formulaire d'édition de dépot
formulaires_editer_depot_verifier_dist(int $id_depot, string $redirect) : array<string|int, mixed>
Identifiant du dépot
URL de redirection
Tableau des erreurs
Traitement du formulaire d'édition de dépot
formulaires_editer_depot_traiter_dist(int $id_depot, string $redirect) : array<string|int, mixed>
Identifiant du dépot
URL de redirection
Retours du traitement
Préparation des configurations particulières du formulaire d'édition de dépot
depots_edit_config(array<string|int, mixed> $row) : array<string|int, mixed>
Données SQL actuelles de l'objet qui va être édité
Tableau de configurations qui seront ajoutés à l'environnement du formulaire sous la clé 'config'
Crée une valeur d'action pour l'attribut 'name' d'une saisie de formulaire
filtre_svp_nom_action(int $id_paquet, string $action) : mixed
Identifiant du paquet
Une action possible (on, off, stop, up, on, upon, kill)
Actualise tous les dépots
genie_svp_actualiser_depots_dist(int $last) : int
Timestamp de la dernière exécution de cette tâche
Positif : la tâche a été effectuée
Ajoute la tâche d'actualisation des dépots dans la liste des tâches périodiques
svp_taches_generales_cron(array<string|int, mixed> $taches_generales) : array<string|int, mixed>
Tableau des tâches et leur périodicité en seconde
Tableau des tâches et leur périodicité en seconde
Gère le traitement des actions des formulaires utilisant l'Actionneur
svp_actionner_traiter_actions_demandees(array<string|int, mixed> $actions, array<string|int, mixed> &$retour[, string $redirect = null ]) : mixed
Liste des actions a faire (id_paquet => action)
Tableau de retour du CVT dans la partie traiter
URL de retour
Gère la partie vérifier des formulaires utilisant le Décideur
svp_decider_verifier_actions_demandees(array<string|int, mixed> $a_actionner, array<string|int, mixed> &$erreurs) : bool
Tableau des actions par paquet (id_paquet => action)
Tableau d'erreurs de verifier (CVT)
true si tout va bien, false sinon (erreur pour trouver les dépendances, ...)
Ajout d'un dépot et de son contenu (paquets, plugins) dans la base de données
svp_ajouter_depot(string $url[, string &$erreur = '' ]) : bool
Si une erreur survient (syntaxe XML incorrecte, pas de plugin dans le dépot), son texte est placé dans le paramètre $erreur
URL du fichier XML de description du dépot
Texte d'un éventuel message d'erreur
true si le dépot est ajouté correctement, false sinon
Suppression d'un dépot et de son contenu (paquets, plugins) dans la base de données
svp_supprimer_depot(int $id) : bool
Cette suppression entraîne des recalcul comme les versions maximales des plugins téléchargeables qui peuvent changer.
Identifiant du dépot
false si le dépot n'est pas trouvé, true sinon
Nettoyer la base de données après la suppression d'un dépot
svp_nettoyer_apres_suppression(int $id_depot, array<string|int, mixed> $vmax) : bool
Supprime
Identifiant du dépot
Tableau de la version maximale des plugins du dépot supprimé Tableau (id_plugin => version maximale)
true toujours.
Actualisation des plugins d'un dépot déjà crée
svp_actualiser_depot(int $id) : bool
Actualise les informations uniquement si la signature du fichier XML de description du dépot a changé
Identifiant du dépot
false si erreur, true sinon
Actualisation de la table des paquets pour le dépot choisi
svp_actualiser_paquets(int $id_depot, array<string|int, mixed> $paquets, int &$nb_paquets, int &$nb_plugins, int &$nb_autres) : bool
Enlève de la base les paquets du dépots qui ne sont plus présents dans la description du XML. Ajoute ou met à jour les autres.
Identifiant du dépot
Tableau des paquets extraits du fichier XML L'index est le nom de l'archive (xxxx.zip) et le contenu est un tableau à deux entrées :
Nombre de paquets réellement inserés dans la base
Nombre de plugins parmi les paquets inserés
Nombre de contributions non issues de plugin parmi les paquets inserés
false si aucun dépot ou paquets, true sinon
Insertion en masse de plugins ou de paquets.
svp_inserer_multi(array<string|int, mixed> &$insert_plugins, array<string|int, mixed> &$insert_paquets, array<string|int, mixed> &$insert_contribs, array<string|int, mixed> &$prefixes) : mixed
Les paquets peuvent de pas avoir d'info "prefixe" (à transformer en id_plugin) lorsqu'ils ne proviennent pas de plugin (squelettes...)
Tableau de description de plugins. Une description est un tableau de couples (colonne sql => valeur) pour l'insertion en base de données.
Tableau de description de paquets. Une description est un tableau de couples (colonne sql => valeur) pour l'insertion en base de données.
Tableau de description de paquets (contributions non plugins). Une description est un tableau de couples (colonne sql => valeur) pour l'insertion en base de données.
Couples de relation (préfixe de plugin => identifiant de plugin) connues, pour limiter les accès SQL.
Complète les informations des plugins contenus dans un depot en compilant certaines informations (compatibilités, dates, branches)
svp_completer_plugins_depot(int $id_depot) : mixed
Identifiant du depot à actualiser
Complète les informations des plugins, d'une liste de plugins donnés, en compilant certaines informations (compatibilités, dates, branches)
svp_completer_plugins(array<string|int, mixed> $ids_plugin) : bool
Liste d'identifiants de plugins
false si rien à faire, true sinon
Recrée toutes les URLs propres de plugin
svp_actualiser_url_plugins() : int
Supprime toutes les urls de plugin de la table spip_urls puis les régénère.
Nombre d'URLs de plugin régénérées
Éclate une description de paquet issu du XML du dépot en deux parties, une pour le plugin, l'autre pour le paquet
eclater_plugin_paquet(array<string|int, mixed> $champs_aplat) : array<string|int, mixed>
Sépare en deux une description de champs désignant un paquet, en extrayant :
Couples (clé => valeur) d'un paquet issu de l'analyse XML du dépot
Tableau de 2 index :
Détermine la version max de chaque plugin, c'est à dire la version maxi d'un des paquets qui lui est lié.
svp_corriger_vmax_plugins(array<string|int, mixed> $plugins) : mixed
Liste d'identifiant de plugins
Met à jour les tables SQL paquets et plugins pour qui concerne les paquets locaux (ceux présents sur le site).
svp_actualiser_paquets_locaux([bool $force = false ][, array<string|int, mixed> &$erreurs_xml = [] ]) : string
On ne met à jour que ce qui a changé, sauf si on force le recalcule de toutes les informations locales avec var_mode=vider_paquets_locaux dans l'URL ou en mettant le paramètre $force à true.
Si des erreurs XML sont présentes, elles se retrouvent dans ce tableau
Temps d'exécution
Calcule la description de chaque paquet local
svp_descriptions_paquets_locaux([array<string|int, mixed> &$erreurs_xml = [] ]) : array<string|int, mixed>
Les paquets peuvent être stockés à 3 endroits : plugins, plugins-dist, plugins-supp définis par les constantes respectives _DIR_PLUGINS, _DIR_PLUGINS_DIST, _DIR_PLUGINS_SUPP
Les erreurs XML éventuelles des paquet.xml se retrouvent dedans s'il y en a
Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description
Supprime tous les paquets et plugins locaux.
svp_base_supprimer_paquets_locaux() : mixed
Actualise les informations en base sur les paquets locaux en ne modifiant que ce qui a changé.
svp_base_modifier_paquets_locaux(array<string|int, mixed> $paquets_locaux) : mixed
Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description
Insère en base tous les paquets locaux transmis
svp_base_inserer_paquets_locaux(array<string|int, mixed> $paquets_locaux) : mixed
De chaque description est extrait la partie plugin (1 seul plugin par préfixe de plugin connu) et la partie paquet (il peut y avoir plusieurs paquets pour un même préfixe de plugin).
Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description
Adapte la structure des dépendances d'un paquet xml lu par SPIP à une structure attendue par SVP.
svp_adapter_structure_dependances(array<string|int, mixed> $paquet) : array<string|int, mixed>
C'est à dire, met les necessite, utilises, lib, procure dans une sous clé 0
Description d'un paquet
Description d'un paquet adaptée
Fait correspondre l'état des métas des plugins actifs & installés avec ceux en base de données dans spip_paquets pour le dépot local
svp_base_actualiser_paquets_actifs() : mixed
Construit le contenu multilangue (tag <multi>) des balises nom, slogan et description à partir des items de langue contenus dans le fichier paquet-prefixe_langue.php
svp_compiler_multis(string $prefixe, string $dir_source) : array<string|int, mixed>
Préfixe du plugin
Chemin d'accès du plugin
Tableau clé => texte multilangue entre
Met à jour les informations d'obsolescence des paquets locaux.
svp_corriger_obsolete_paquets([array<string|int, mixed> $ids_plugin = [] ]) : mixed
L'obsolescence indique qu'un paquet est plus ancien (de version ou état moins avancé) qu'un autre également présent localement.
Liste d'identifiants de plugins En cas d'absence, passera sur tous les paquets locaux
Supprime les plugins devenus orphelins dans cette liste.
svp_supprimer_plugins_orphelins(array<string|int, mixed> $ids_plugin) : array<string|int, mixed>
Liste d'identifiants de plugins
Liste de plugins non orphelins
Cherche dans les dépots distants un plugin qui serait plus à jour que le prefixe, version et état que l'on transmet
svp_rechercher_maj_version(string $prefixe, string $version, int $etatnum[, mixed $compatibilite_spip = null ]) : string
Préfixe du plugin
Version du paquet à comparer
État du paquet numérique
Version plus à jour, sinon rien
Actualise l'information 'maj_version' pour tous les paquets locaux
svp_actualiser_maj_version() : mixed
Fusionne 2 intervalles de compatibilité
fusionner_intervalles(string $intervalle_a, string $intervalle_b) : string
Soit '[1.9;2.1]' et '[2.1;3.0.]', la fonction retourne '[1.9;3.0.]'
En gros la fonction est utilisé pour calculer l'intervalle de validité d'un plugin ayant plusieurs paquets avec des compatibilités différentes. La compatibilité du plugin est le total de toutes les compatibilités.
Intervalle de compatibilité
Intervalle de compatibilité
Intervalle de compatibilité
Extrait les valeurs d'un intervalle de compatibilité.
extraire_bornes(string $intervalle[, bool $initialiser = false ]) : array<string|int, mixed>
Calcule les valeurs min, max et si ces valeurs sont intégrées ou non à l'intervalle. Les bornes vides sont initialisées avec la borne min ou max de SPIP. Les caractères * sont renvoyés tels quels.
Intervalle de compatibilité, tel que '[2.1;3.0]'
Tableau avec les index :
Contruit un intervalle de compatibilité
construire_intervalle(array<string|int, mixed> $bornes[, string $dtd = 'paquet' ]) : string
L'intervalle décrit sous forme de tableau avec pour index :
DTD de destination (paquet ou plugin) qui influera sur l'écriture à faire en utilisant des parenthèses ou des crochets pour définir l'exclusion d'une intervalle tel que ']2.1.2,3.0.1[' (paquet) ou '(2.1.2,3.0.1)' (plugin)
Intervalle de compatibilité tel que '[2.1;3.0]'
Retourne la liste des branches de SPIP comprises dans un intervalle de compatibilité donné.
compiler_branches_spip(string $intervalle) : string
La borne inférieure ne peut pas posséder le caractère *
et peut être libellée x, x.y ou x.y.z (écriture recommandée).
La borne supérieure peut posséder des étoiles en y ou z.
Intervalle de compatibilité, tel que [2.0.0;3.0.0]
Branches de SPIP séparées par des virgules, tel que 2.0,2.1,3.0
Transforme un texte écrit en entités HTML, dans le charset du site
entite2charset(string $texte[, string $charset = null ]) : string
Texte avec des entités HTML
Texte dans le charset du site
Teste si 2 balises XML sont identiques
balise_identique(array<string|int, mixed>|string $balise1, array<string|int, mixed>|string $balise2) : bool
Balise à comparer
Balise à comparer
True si elles sont identiques, false sinon.
Déterminer la licence exacte avec un nom et un lien de doc standardisé
definir_licence(string $prefixe, string $nom, string $suffixe, string $version) : array<string|int, mixed>
Préfixe de la licence tel que gnu, free, cc, creative common
Nom de la licence tel que gpl, lgpl, agpl, fdl, mit, bsd...
Suffixe de la licence tel que licence, -sharealike, -nc-nd ...
Version de la licence tel que 3.0
Si la licence est connu, retourne 2 index :
Liste les librairies présentes
svp_lister_librairies() : array<string|int, mixed>
Cherche des librairie dans tous les dossiers 'lib' présents dans chaque chemin déclaré (plugins, squelettes, SPIP). Un répertoire dans un dossier 'lib' est considéré comme une librairie, et le nom de ce répertoire est utilisé comme nom de la librairie.
Tableau de couples (nom de la librairie => répertoire de la librairie)
Retourne '00x.00y.00z' à partir de 'x.y.z'
normaliser_version([string $version = '' ]) : string
Retourne la chaine de la version x.y.z sous une forme normalisée permettant le tri naturel. On complète à gauche d'un nombre de zéro manquant pour aller à 3 caractères entre chaque point.
Numéro de version dénormalisée
Numéro de version normalisée
Phrase un fichier décrivant un dépot, dont le chemin local est donné
svp_phraser_depot(string $fichier_xml) : array<string|int, mixed>|bool
Le fichier est au format XML et contient deux balises principales :
La fonction met en cache le résultat du phrasage de chaque archive et ne rephrase que les archives ayant changées.
Chemin local du fichier XML de description du dépot
false si erreur, Tableau de 2 index sinon :
Phrase la liste des balises <archive>
svp_phraser_archives(array<string|int, mixed> $archives[, array<string|int, mixed> &$md5_cache = [] ]) : array<string|int, mixed>
Chaque bloc XML est constitue de 3 sous-blocs principaux :
Tableau de la liste des archives trouvées dans la description d'un dépot
Tableau des descriptions d'archives déjà connues : on supprime à la fin celles qui ne font plus parties du dépot.
Tableau décrivant chaque archive, avec en index l'url de l'archive. Tableau (url => Tableau de description de l'archive)
Phrase le contenu du XML décrivant une archive suivant une DTD de plugin.xml ou de paquet.xml donnée
svp_phraser_plugin(string $dtd, string $contenu) : array<string|int, mixed>
La fonction peut-être appelée via archives.xml ou via un xml de plugin.
Elle phrase la balise
Nom du type de dtd : plugin ou paquet (pour phraser un plugin.xml ou un paquet.xml)
Contenu XML à phraser
Description du plugin
Phrase le contenu de la balise <zip>
svp_phraser_zip(string $contenu) : array<string|int, mixed>
Extrait du XML les informations du zip
Description XML de l'archive
Description du zip.
Phrase le contenu d'une balise <traductions> en un tableau plus facilement utilisable
svp_phraser_traductions(string $contenu) : array<string|int, mixed>
Contenu XML de la balise
Tableau complexe avec pour index les noms des modules de langue et pour valeur leur description. Chaque description contient dedans 3 index :
Aplatit plusieurs clés d'un arbre xml dans un tableau
svp_aplatir_balises(array<string|int, mixed> $balises, array<string|int, mixed> $arbre_xml[, string $mode = 'vide_et_nonvide' ][, array<string|int, mixed> $tableau_initial = [] ]) : mixed
Effectue un trim() de la valeur trouvée dans l'arbre
Liste de noms de balises XML. Peut aussi être un tableau indiquant un renommage d'une balise au passage tel que 'x' => 'y' qui cherchera x dans l'arbre XML et l'applatira dans y.
Un arbre issu de spip_xml_parse()
Mode d'affectation des valeurs trouvées
Tableau initial pouvant contenir des valeurs par défaut à affecter à chaque balise avec 'x' => 'valeur'
Retourne la description complète ou une liste de champs précisés dans l'appel d'un objet plugin identifié par son préfixe.
plugin_lire(int|string $plugin[, array<string|int, mixed>|string $informations = [] ]) : mixed
La valeur du préfixe ou de l'id du plugin.
Identifiant d'un champ ou de plusieurs champs de la description d'un plugin. Si l'argument est vide, la fonction renvoie la description complète.
La description brute complète ou partielle du plugin :
Calcule une liste des paquets en fonctions de critères de recherche
svp_rechercher_plugins_spip(string $phrase, string $etat, string|int $depot[, string $version_spip = '' ][, array<string|int, mixed> $exclusions = [] ][, bool $afficher_exclusions = false ][, bool $doublon = false ][, string $tri = 'nom' ]) : array<string|int, mixed>
Cette liste :
Texte de la recherche
État de plugin (stable, test...)
Identifiant de dépot
Version de SPIP dont le paquet doit être compatible
Liste d'identifiants de plugin à ne pas intégrer dans la liste
Afficher aussi les paquets déjà installés (true) ou ceux qui ne le sont pas (false) ?
Afficher toutes les versions de paquet (true) ou seulement la plus récente (false) ?
Ordre du tri : nom | score
Tableau classé par pertinence de résultat
Récupère les identifiants des plugins déjà installés
svp_lister_plugins_installes() : array<string|int, mixed>
Liste d'identifiants de plugins
Teste la compatibilité d'un intervalle de compatibilité avec une version donnée de SPIP
svp_verifier_compatibilite_spip(string $intervalle[, string $version_spip = '' ]) : bool
Intervalle de compatibilité, tel que [2.1;3.0]
Version de SPIP, tel que 3.0.4 (par défaut la version de SPIP en cours)
true si l'intervalle est compatible, false sinon
Callback de tri pour trier les résultats de plugin par score décroissant.
svp_trier_par_score(array<string|int, mixed> $p1, array<string|int, mixed> $p2) : int
Cette fonction est appelée par un usort ou uasort
Plugin à comparer
Plugin à comparer
Callback de tri pour trier les résultats de plugin par nom (alphabétique).
svp_trier_par_nom(array<string|int, mixed> $p1, array<string|int, mixed> $p2) : int
Si le nom est identique on classe par version decroissante Cette fonction est appelée par un usort ou uasort
Plugin à comparer
Plugin à comparer
Construit le WHERE d'une requête SQL de selection des plugins ou paquets compatibles avec une version, une branche de spip ou une liste de branches.
inc_where_compatible_spip(string $version, string $table, string $op) : string
Cette fonction est appelée par le critère {compatible_spip}
Numéro de version de SPIP, tel que 2.0.8 ou de branche tel que 3.1 ou une liste de branche '3.1,3.2'
Table d'application ou son alias SQL
Opérateur de comparaison, tel que '>' ou '='
Expression where de la requête SQL
Fusion des informations de chaque balise spip d'un paquet.xml en considérant la compatibilité SPIP
plugins_fusion_paquet(array<string|int, mixed> $plugins) : array<string|int, mixed>
Pour les balises paquets sans balise spip cette fonction permet de générer une structure identique pour les balises dites techniques
Arbre de description du paquet.xml
Fusion des éléments classé par balise, puis par compatibilité à SPIP. L'index 0 dans la compatibilité est valable quelque soit la version de SPIP.
Fusion des informations de chaque balise plugin d'un plugin.xml en considérant la compatibilité SPIP
plugins_fusion_plugin(array<string|int, mixed> $plugins) : array<string|int, mixed>
Pour les balises plugins uniques cette fonction permet de générer une structure identique pour les balises dites techniques
On limite le traitement a deux balises plugins maximum, ce qui est le cas de tous les plugin.xml actuellement connus
Arbre des balises plugins présents dans un plugin.xml
Fusion des éléments classé par balise, puis par compatibilité à SPIP. L'index 0 dans la compatibilité est valable quelque soit la version de SPIP.
plugins_infos_plugin(mixed $desc[, mixed $plug = '' ][, mixed $dir_plugins = _DIR_PLUGINS ]) : mixed
Normaliser les description des balises `necessite`
info_plugin_normalise_necessite(array<string|int, mixed> $necessite) : array<string|int, mixed>
Ajoute les clés
Liste des necessite trouvés pour le plugin
Liste des necessite modifiés.
Normaliser la description des utilise
info_plugin_normalise_utilise(array<string|int, mixed> $utilise) : array<string|int, mixed>
Ajoute les clés
Liste des utilise trouvés pour le plugin
Liste des utilise modifiés.
Normaliser la description des procurations
info_plugin_normalise_procure(array<string|int, mixed> $procure) : array<string|int, mixed>
Ajoute la cle 'nom' (= id)
Liste des procure trouvés pour le plugin
Liste des procure modifiés.
Normaliser la description du chemin
info_plugin_normalise_chemin(array<string|int, mixed> $chemins) : array<string|int, mixed>
Ajoute le clés 'path' (= dir)
Liste des chemins trouvés pour le plugin
Liste des chemins modifiés.
Pour une description de plugin donnée (issue de la dtd de paquet.xml), prépare les données à installer en bdd
plugins_preparer_sql_paquet(array<string|int, mixed> $plugin) : array<string|int, mixed>
Les données sont parfois sérialisées, parfois compilées pour tenir compte des spécificités de cette DTD et du stockage en bdd.
Description de plugin
Couples clés => valeurs de description du paquet
Pour une description de plugin donnée (issue de la dtd de plugin.xml), prépare les données à installer en bdd
plugins_preparer_sql_plugin(array<string|int, mixed> $plugin) : array<string|int, mixed>
Les données sont parfois sérialisées, parfois transcodées, parfois compilées pour tenir compte des spécificités de cette DTD et du stockage en bdd.
Description de plugin
Couples clés => valeurs de description du paquet
Normalise un lien issu d'un plugin.xml
normaliser_lien(string $url) : string
Éliminer les textes superflus dans les liens (raccourcis [XXX->http...]) et normaliser l'esperluete pour éviter l'erreur d'entité indéfinie
URL à normaliser
URL normalisée
Normalise un auteur ou une licence issue d'un plugin.xml
normaliser_auteur_licence(string $texte, string $balise) : array<string|int, mixed>
Texte de la balise
Nom de la balise (auteur | licence)
Tableau listant les auteurs, licences et copyright trouvés
Expanse les multi en un tableau de textes complets, un par langue
normaliser_multi(string $texte) : array<string|int, mixed>
Le texte
Texte expansé par code de langue : couples (code de langue => texte)
Installation et mises à jour du plugin
svp_upgrade(string $nom_meta_base_version, string $version_cible) : mixed
Crée les tables SQL du plugin (spip_depots, spip_plugins, spip_depots_plugins, spip_paquets)
Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
Désinstallation du plugin
svp_vider_tables(string $nom_meta_base_version) : mixed
Supprime les tables SQL du plugin (spip_depots, spip_plugins, spip_depots_plugins, spip_paquets)
Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
Ajoute le préfixe des plugins dans chaque ligne de paquets
svp_synchroniser_prefixe() : mixed
Cette mise à jour permet de dupliquer le préfixe des plugins dans la ligne des paquets (cette colonne était absente avant) pour plus de simplicité ensuite dans les requêtes SQL.
Déclarations de fonctions
svp_importer_charset(mixed $texte) : mixed
Retourne un texte expliquant l'intervalle de compatibilité avec un plugin ou SPIP
svp_afficher_intervalle(string $intervalle, string $logiciel) : string
Retourne par exemple "2.0 <= SPIP < 3.1"
L'intervalle tel que déclaré dans paquet.xml. Par exemple "[2.1;3.0.*]"
Nom du plugin pour qui est cette intervalle
Texte expliquant l'intervalle
Traduit un type d'état de plugin
svp_afficher_etat(string $etat) : string
Si l'état n'existe pas, prendra par défaut 'developpement'
Le type d'état (stable, test, ...)
Traduction de l'état dans la langue en cours
Retourne un texte HTML présentant la liste des dépendances d'un plugin
svp_afficher_dependances(string $balise_serialisee[, string $dependance = 'necessite' ][, string $sep = '<br />' ][, string $lien = 'local' ]) : string
Des liens vers les plugins dépendants sont présents lorsque les plugins en dépendance sont connus dans notre base.
Informations des dépendances (tableau sérialisé) tel que stocké en base dans la table spip_paquets
Type de dépendances à afficher (necessite ou utilise). Une autre valeur indique qu'on demande la liste des librairies dépendantes.
Séparateur entre les noms de dépendances
Type de lien affecté au plugin référencé dans la base locale. Prend les valeurs :
Texte informant des dépendances
Retourne un texte HTML présentant les crédits d'un plugin
svp_afficher_credits(string $balise_serialisee[, string $sep = ', ' ]) : string
Des liens vers les crédits sont présents lorsqu'ils sont déclarés dans le paquet.xml.
Informations des crédits (tableau sérialisé) tel que stocké en base dans la table spip_paquets
Séparateur entre les différents crédits
Texte informant des crédits
Retourne un texte HTML présentant la liste des langues et traducteurs d'un plugin
svp_afficher_langues(array<string|int, mixed> $langues[, string $sep = ', ' ]) : string
Des liens vers les traducteurs sont présents lorsqu'ils sont connus.
Tableau code de langue => traducteurs
Séparateur entre les différentes langues
Texte informant des langues et traducteurs
Traduit un type de dépot de plugin
svp_traduire_type_depot(string $type) : string
Type de dépot (svn, git, manuel)
Titre complet et traduit du type de dépot
Calcule l'url exacte d'un lien de démo en fonction de son écriture
svp_calculer_url_demo(string $url_demo[, bool $url_absolue = false ]) : string
URL de démonstration telle que saisie dans le paquet.xml
Indique que seules les url absolues doivent être retournées par la fonction. Tous les autres types d'url renvoient une chaine vide
URL calculée en fonction de l'URL d'entrée
Critère de compatibilité avec une version précise ou une branche de SPIP ou une liste de branches séparées par une virgule.
critere_compatible_spip_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : mixed
Fonctionne sur les tables spip_paquets et spip_plugins. Si aucune valeur n'est explicité dans le critère on interroge le contexte pour trouver une variable compatible_spip et sinon tous les objets sont retournés.
Le ! (NOT) ne fonctionne que sur une branche ou une liste de branches SPIP.
Identifiant de la boucle
AST du squelette
Paramètres du critère dans cette boucle
Retourne la liste des plugins trouvés par une recherche
filtre_construire_recherche_plugins([string $phrase = '' ][, string $etat = '' ][, string|int $depot = '' ][, bool|string $afficher_exclusions = true ][, bool|string $afficher_doublons = false ]) : array<string|int, mixed>
Texte de la recherche
État de plugin (stable, test...)
Identifiant de dépot
Afficher aussi les paquets déjà installés (true ou 'oui') ou ceux qui ne le sont pas (false) ?
Afficher toutes les versions de paquet (true ou 'oui') ou seulement la plus récente (false) ?
Tableau classé par pertinence de résultat
Retourne le nombre d'heures entre chaque actualisation si le cron est activé.
filtre_svp_periode_actualisation_depots() : int
Nombre d'heures (sinon 0)
Retourne 'x.y.z' à partir de '00x.00y.00z'
denormaliser_version([string $version_normalisee = '' ]) : string
Retourne la chaine de la version x.y.z sous sa forme initiale, sans remplissage à gauche avec des 0.
Numéro de version normalisée
Numéro de version dénormalisée
Teste l'utilisation du répertoire auto des plugins.
test_plugins_auto() : bool
Ce répertoire permet de télécharger dedans des plugins lorsqu'il est présent.
Le répertoire de chargement des plugins auto est-il présent et utilisable ?
Compare 2 numéros de versions et indique le composant principal qui change : X, Y ou Z.
filtre_svp_diff_xyz(string $version1, string $version2) : string
Numéro de version initial
Numéro de version à comparer
x | y | z ou une chaîne vide si pas de différence ou erreur.
Appel a un pipeline pour filtrer eventuellement l'affichage de certains plugins (ie si on a zen-garden actif, les themes ne sont plus affiches dans la gestion des plugins, mais dans le zen garden)
filtre_svp_affichage_filtrer_paquets_dist(int $id_paquet) : bool
Ajoute les metas sauvegardables de SVP pour le plugin IEConfig
svp_ieconfig_metas(array<string|int, mixed> $table) : array<string|int, mixed>
Déclaration des sauvegardes
Déclaration des sauvegardes complétées
Fonction du pipeline autoriser. N'a rien à faire
svp_autoriser() : mixed
Autoriser l'iconification (mettre un logo) d'un dépot
autoriser_depot_iconifier_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autoriser l'ajout d'un plugin
autoriser_plugins_ajouter_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Autoriser l'ajout d'un dépôt
autoriser_depots_ajouter_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Soit on a l'autorisation de voir un plugin, soit SVP est en mode non runtime
Action demandée
Type d'objet sur lequel appliquer l'action
Identifiant de l'objet
Description de l'auteur demandant l'autorisation
Options de cette autorisation
true s'il a le droit, false sinon
Ne pas afficher par défaut les paquets,dépots,plugins locaux dans les boucles
svp_pre_boucle(Boucle $boucle) : Boucle
On n'affiche dans les boucles (PLUGINS) (DEPOTS) et (PAQUETS) que les éléments distants par défaut (on cache les locaux).
Utiliser {tout} pour tout avoir. Utiliser {tout}{id_depot=0} pour avoir les plugins ou paquets locaux.
Description de la boucle
Description de la boucle
Enlever les id_ des tables SVP du critère selections conditionnelles, ailleurs que sur les tables de SVP
svp_exclure_id_conditionnel(array<string|int, mixed> $flux) : array<string|int, mixed>
Ajoute Bootstrap dropdown aux plugins chargés
svp_jquery_plugins(array<string|int, mixed> $flux) : array<string|int, mixed>
Liste des js chargés
Liste complétée des js chargés
Ajoute Bootstrap dropdown aux css chargées dans le privé
svp_header_prive_css(string $flux) : string
Contenu du head HTML concernant les CSS
Contenu du head HTML concernant les CSS
Téléporter et déballer un composant GIT
teleporter_git_dist(string $methode, string $source, string $dest[, array<string|int, mixed> $options = [] ]) : bool
Déployer un repository GIT depuis une source et une révision données
Méthode de téléportation : http|git|svn|...
URL de la source GIT
Chemin du répertoire de destination
Tableau d'options. Index possibles :
True si l'opération réussie, false sinon.
Lire l'état GIT du repository
teleporter_git_read(string $dest[, array<string|int, mixed> $options = [] ]) : string|bool|array<string|int, mixed>
Retourne les informations GIT d'un répertoire donné
Chemin du répertoire à tester
Tableau d'options
Exécuter une commande GIT
teleporter_git_exec(string $dest, string $command) : mixed
Répertoire de destination
Commande à exécuter
Tester si la commande 'git' est disponible
teleporter_git_tester() : bool
true si on peut utiliser la commande svn
Téléporter et déballer un composant HTTP
teleporter_http_dist(string $methode, string $source, string $dest[, array<string|int, mixed> $options = [] ]) : bool|string
Méthode de téléportation : http|git|svn|...
URL de la source HTTP
Chemin du répertoire de destination
Tableau d'options. Doit au moins avoir l'index :
Texte d'erreur si erreur, True si l'opération réussie.
Récupérer la source et détecter son extension
teleporter_http_recuperer_source(string $source, string $dest_tmp) : array<string|int, mixed>|string
URL de la source HTTP
Répertoire de destination
Retrouve l'extension d'un fichier
teleporter_http_extension(string $file) : string
Chemin du fichier
Extension du fichier, sinon vide
Déballer le fichier au format tgz dans le répertoire $dest en utilisant le dossier temporaire $tmp si besoin
teleporter_http_deballe_tgz_dist(string $archive, string $dest, string $tmp) : bool|string
Chemin du fichier tgz
Répertoire où on veut décompresser
Répertoire de stockage temporaire
Répertoire où a été décompressé le tgz, false sinon.
Charger un tgz à partir d'un tableau d'options descriptives
teleporter_http_charger_tgz([array<string|int, mixed> $quoi = [] ]) : array<string|int, mixed>|bool|int|string
Tableau d'options
En cas de réussite, Tableau décrivant le zip, avec les index suivant :
Déballer le fichier au format zip dans le répertoire $dest en utilisant le dossier temporaire $tmp si besoin
teleporter_http_deballe_zip_dist(string $archive, string $dest, string $tmp) : bool|string
Chemin du fichier zip
Répertoire où on veut décompresser
Répertoire de stockage temporaire
Répertoire où a été décompressé le zip, false sinon.
Charger un zip à partir d'un tableau d'options descriptives
teleporter_http_charger_zip([array<string|int, mixed> $quoi = [] ]) : array<string|int, mixed>|bool|int|string
Tableau d'options
En cas de réussite, Tableau décrivant le zip, avec les index suivant :
Téléporter et déballer un composant SVN
teleporter_svn_dist(string $methode, string $source, string $dest[, array<string|int, mixed> $options = [] ]) : bool
Déployer un repository SVN depuis une source et une révision données
Méthode de téléportation : http|git|svn|...
URL de la source SVN
Chemin du répertoire de destination
Tableau d'options. Index possibles :
True si l'opération réussie, false sinon.
Lire source et révision d'un répertoire SVN et reconstruire la ligne de commande
teleporter_svn_read(string $dest[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|string
Chemin du répertoire SVN
Options
Chaîne vide si pas SVN ou erreur de lecture, Tableau sinon avec les index :
Tester si la commande 'svn' est disponible
teleporter_svn_tester() : bool
true si on peut utiliser la commande svn