Documentation du code de SPIP et de ses plugins

SVP

svp_depoter_distant.php

Traitement des dépots distants

Un dépot distant est une liste de paquets que l'on peut télécharger. Cette liste est donnée par un fichier XML que l'on peut relire régulièrement pour actualiser nos informations. Effectivement, chaque paquet (et plugin) décrit est inséré en base de données pour nous faciliter les recherches.

Tags
plugin

SVP pour SPIP

license

GPL

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()  : void
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é.

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) : void

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()

        
On this page

Search results