Depots
Table of Contents
Functions
- svp_ajouter_depot() : bool
- Ajout d'un dépot et de son contenu (paquets, plugins) dans la base de données
- svp_supprimer_depot() : bool
- Suppression d'un dépot et de son contenu (paquets, plugins) dans la base de données
- svp_nettoyer_apres_suppression() : bool
- Nettoyer la base de données après la suppression d'un dépot
- svp_actualiser_depot() : bool
- Actualisation des plugins d'un dépot déjà crée
- svp_actualiser_paquets() : bool
- Actualisation de la table des paquets pour le dépot choisi
- svp_inserer_multi() : mixed
- Insertion en masse de plugins ou de paquets.
- svp_completer_plugins_depot() : mixed
- Complète les informations des plugins contenus dans un depot en compilant certaines informations (compatibilités, dates, branches)
- svp_completer_plugins() : bool
- Complète les informations des plugins, d'une liste de plugins donnés, en compilant certaines informations (compatibilités, dates, branches)
- svp_actualiser_url_plugins() : int
- Recrée toutes les URLs propres de plugin
- eclater_plugin_paquet() : array<string|int, mixed>
- Éclate une description de paquet issu du XML du dépot en deux parties, une pour le plugin, l'autre pour le paquet
- svp_corriger_vmax_plugins() : mixed
- Détermine la version max de chaque plugin, c'est à dire la version maxi d'un des paquets qui lui est lié.
- svp_actualiser_paquets_locaux() : string
- Met à jour les tables SQL paquets et plugins pour qui concerne les paquets locaux (ceux présents sur le site).
- svp_descriptions_paquets_locaux() : array<string|int, mixed>
- Calcule la description de chaque paquet local
- svp_base_supprimer_paquets_locaux() : mixed
- Supprime tous les paquets et plugins locaux.
- svp_base_modifier_paquets_locaux() : mixed
- Actualise les informations en base sur les paquets locaux en ne modifiant que ce qui a changé.
- svp_base_inserer_paquets_locaux() : mixed
- Insère en base tous les paquets locaux transmis
- svp_adapter_structure_dependances() : array<string|int, mixed>
- Adapte la structure des dépendances d'un paquet xml lu par SPIP à une structure attendue par SVP.
- svp_base_actualiser_paquets_actifs() : mixed
- 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_compiler_multis() : array<string|int, 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_corriger_obsolete_paquets() : mixed
- Met à jour les informations d'obsolescence des paquets locaux.
- svp_supprimer_plugins_orphelins() : array<string|int, mixed>
- Supprime les plugins devenus orphelins dans cette liste.
- svp_rechercher_maj_version() : string
- Cherche dans les dépots distants un plugin qui serait plus à jour que le prefixe, version et état que l'on transmet
- svp_actualiser_maj_version() : mixed
- Actualise l'information 'maj_version' pour tous les paquets locaux
Functions
svp_ajouter_depot()
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
Parameters
- $url : string
-
URL du fichier XML de description du dépot
- $erreur : string = ''
-
Texte d'un éventuel message d'erreur
Tags
Return values
bool —true si le dépot est ajouté correctement, false sinon
svp_supprimer_depot()
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.
Parameters
- $id : int
-
Identifiant du dépot
Tags
Return values
bool —false si le dépot n'est pas trouvé, true sinon
svp_nettoyer_apres_suppression()
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
- les liens des plugins avec le dépot (table spip_depots_plugins)
- les plugins dont aucun paquet n'est encore hébergé par un dépot restant (table spip_plugins) Remet à zéro la version maximale des plugins ayant vu leur paquet en version maximale supprimée
Parameters
- $id_depot : int
-
Identifiant du dépot
- $vmax : array<string|int, mixed>
-
Tableau de la version maximale des plugins du dépot supprimé Tableau (id_plugin => version maximale)
Tags
Return values
bool —true toujours.
svp_actualiser_depot()
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é
Parameters
- $id : int
-
Identifiant du dépot
Tags
Return values
bool —false si erreur, true sinon
svp_actualiser_paquets()
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.
Parameters
- $id_depot : int
-
Identifiant du dépot
- $paquets : array<string|int, mixed>
-
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 :
- Index 'plugin' : le tableau des infos du plugin
- Index 'file' : le nom de l'archive .zip
- $nb_paquets : int
-
Nombre de paquets réellement inserés dans la base
- $nb_plugins : int
-
Nombre de plugins parmi les paquets inserés
- $nb_autres : int
-
Nombre de contributions non issues de plugin parmi les paquets inserés
Tags
Return values
bool —false si aucun dépot ou paquets, true sinon
svp_inserer_multi()
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...)
Parameters
- $insert_plugins : array<string|int, mixed>
-
Tableau de description de plugins. Une description est un tableau de couples (colonne sql => valeur) pour l'insertion en base de données.
- $insert_paquets : array<string|int, mixed>
-
Tableau de description de paquets. Une description est un tableau de couples (colonne sql => valeur) pour l'insertion en base de données.
- $insert_contribs : array<string|int, mixed>
-
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.
- $prefixes : array<string|int, mixed>
-
Couples de relation (préfixe de plugin => identifiant de plugin) connues, pour limiter les accès SQL.
Tags
svp_completer_plugins_depot()
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
Parameters
- $id_depot : int
-
Identifiant du depot à actualiser
Tags
svp_completer_plugins()
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
Parameters
- $ids_plugin : array<string|int, mixed>
-
Liste d'identifiants de plugins
Tags
Return values
bool —false si rien à faire, true sinon
svp_actualiser_url_plugins()
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.
Tags
Return values
int —Nombre d'URLs de plugin régénérées
eclater_plugin_paquet()
É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 :
- la partie plugin, soit ce qui peut être propre à plusieurs paquets. On trouve dedans le prefixe, nom, slogan, catégorie, tags
- la partie paquet, soit ce qui est propre à ce conteneur là. On trouve dedans entre autres la description, la version, la compatibilité à SPIP, les dépendances, etc...
Parameters
- $champs_aplat : array<string|int, mixed>
-
Couples (clé => valeur) d'un paquet issu de l'analyse XML du dépot
Tags
Return values
array<string|int, mixed> —Tableau de 2 index :
- Index 'plugin' : couples (clé=>valeur) relatives au plugin
- Index 'paquet' : couples (clé=>valeur) spécifiques au paquet
svp_corriger_vmax_plugins()
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
Parameters
- $plugins : array<string|int, mixed>
-
Liste d'identifiant de plugins
Tags
svp_actualiser_paquets_locaux()
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.
Parameters
- $force : bool = false
-
- false : n'actualise que les paquets modifiés
- true : efface et recrée la liste de tous les paquets locaux
- $erreurs_xml : array<string|int, mixed> = []
-
Si des erreurs XML sont présentes, elles se retrouvent dans ce tableau
Tags
Return values
string —Temps d'exécution
svp_descriptions_paquets_locaux()
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
Parameters
- $erreurs_xml : array<string|int, mixed> = []
-
Les erreurs XML éventuelles des paquet.xml se retrouvent dedans s'il y en a
Tags
Return values
array<string|int, mixed> —Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description
svp_base_supprimer_paquets_locaux()
Supprime tous les paquets et plugins locaux.
svp_base_supprimer_paquets_locaux() : mixed
Tags
svp_base_modifier_paquets_locaux()
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
Parameters
- $paquets_locaux : array<string|int, mixed>
-
Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description
Tags
svp_base_inserer_paquets_locaux()
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).
Parameters
- $paquets_locaux : array<string|int, mixed>
-
Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description
Tags
svp_adapter_structure_dependances()
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
Parameters
- $paquet : array<string|int, mixed>
-
Description d'un paquet
Tags
Return values
array<string|int, mixed> —Description d'un paquet adaptée
svp_base_actualiser_paquets_actifs()
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
Tags
svp_compiler_multis()
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>
Parameters
- $prefixe : string
-
Préfixe du plugin
- $dir_source : string
-
Chemin d'accès du plugin
Tags
Return values
array<string|int, mixed> —Tableau clé => texte multilangue entre
svp_corriger_obsolete_paquets()
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.
Parameters
- $ids_plugin : array<string|int, mixed> = []
-
Liste d'identifiants de plugins En cas d'absence, passera sur tous les paquets locaux
Tags
svp_supprimer_plugins_orphelins()
Supprime les plugins devenus orphelins dans cette liste.
svp_supprimer_plugins_orphelins(array<string|int, mixed> $ids_plugin) : array<string|int, mixed>
Parameters
- $ids_plugin : array<string|int, mixed>
-
Liste d'identifiants de plugins
Tags
Return values
array<string|int, mixed> —Liste de plugins non orphelins
svp_rechercher_maj_version()
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
Parameters
- $prefixe : string
-
Préfixe du plugin
- $version : string
-
Version du paquet à comparer
- $etatnum : int
-
État du paquet numérique
- $compatibilite_spip : mixed = null
Tags
Return values
string —Version plus à jour, sinon rien
svp_actualiser_maj_version()
Actualise l'information 'maj_version' pour tous les paquets locaux
svp_actualiser_maj_version() : mixed