Documentation du code de SPIP et de ses plugins

SVP

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
uses
svp_phraser_depot()
uses
svp_actualiser_paquets()
uses
svp_base_supprimer_paquets_locaux()
used-by
formulaires_ajouter_depot_traiter_dist()
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
uses
svp_actualiser_url_plugins()
uses
svp_nettoyer_apres_suppression()
uses
svp_base_supprimer_paquets_locaux()
used-by
action_supprimer_depot_dist()
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
used-by
svp_supprimer_depot()
Return values
bool

true toujours.

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
uses
svp_supprimer_plugins_orphelins()
uses
svp_corriger_vmax_plugins()
uses
svp_completer_plugins()
uses
eclater_plugin_paquet()
uses
svp_inserer_multi()
uses
svp_completer_plugins_depot()
uses
svp_actualiser_url_plugins()
used-by
svp_ajouter_depot()
used-by
svp_actualiser_depot()
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
used-by
svp_actualiser_paquets()

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
uses
svp_completer_plugins()
used-by
svp_actualiser_paquets()

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
uses
compiler_branches_spip()
used-by
svp_actualiser_paquets()
used-by
svp_completer_plugins_depot()
Return values
bool

false si rien à faire, true sinon

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
used-by
svp_actualiser_paquets()
used-by
svp_base_inserer_paquets_locaux()
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
used-by
svp_actualiser_paquets()

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
uses
svp_descriptions_paquets_locaux()
uses
svp_base_supprimer_paquets_locaux()
uses
svp_base_inserer_paquets_locaux()
uses
svp_base_modifier_paquets_locaux()
uses
svp_base_actualiser_paquets_actifs()
used-by
formulaires_admin_plugin_charger_dist()
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
used-by
svp_actualiser_paquets_locaux()
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_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
uses
svp_supprimer_plugins_orphelins()
uses
svp_base_inserer_paquets_locaux()
used-by
svp_actualiser_paquets_locaux()

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
note

On essaie au mieux de faire des requêtes d'insertions multiples, mieux gérées par les moteurs SQL (particulièrement pour SQLite)

uses
plugins_preparer_sql_paquet()
uses
svp_compiler_multis()
uses
eclater_plugin_paquet()
uses
svp_rechercher_maj_version()
uses
svp_corriger_obsolete_paquets()
used-by
svp_actualiser_paquets_locaux()
used-by
svp_base_modifier_paquets_locaux()

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
note

Cette clé 0 indique la description principale du paquet.xml mais d'autres clés semblent pouvoir exister si la balise <spip> est présente dedans

see
svp_phraser_plugin()

côté SVP

see
plugins_fusion_paquet()

côté SVP

see
plugins_get_infos_dist()

côté SPIP (extractions de tous les paquets d'un dossier)

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
used-by
svp_actualiser_paquets_locaux()

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
used-by
svp_base_inserer_paquets_locaux()
Return values
array<string|int, mixed>

Tableau clé => texte multilangue entre et Les clés peuvent être 'nom', 'slogan' et 'description', mais seules les clés ayant une explication dans la chaine de langue sont retournées.

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
used-by
svp_base_inserer_paquets_locaux()

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
used-by
svp_actualiser_paquets()
used-by
svp_base_modifier_paquets_locaux()
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
used-by
svp_base_inserer_paquets_locaux()
used-by
svp_actualiser_maj_version()
Return values
string

Version plus à jour, sinon rien


        
On this page

Search results