Fichier plugins-dist/svp/inc/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.

Plugin

  • SVP pour SPIP

License

  • GPL

Source

Proposer une amélioration

Liste des fonctions

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...
array eclater_plugin_paquet( array $champs_aplat )

Paramètres

  1. array $champs_aplat

    Couples (clé => valeur) d'un paquet issu de l'analyse XML du dépot

Retour

  • array

    Tableau de 2 index :

    • Index 'plugin' : couples (clé=>valeur) relatives au plugin
    • Index 'paquet' : couples (clé=>valeur) spécifiques au paquet

Package

Proposer une amélioration

Actualise les informations uniquement si la signature du fichier XML de description du dépot a changé

boolean svp_actualiser_depot( integer $id )

Paramètres

  1. integer $id

    Identifiant du dépot

Retour

  • boolean

    false si erreur, true sinon

Package

Proposer une amélioration

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.

boolean svp_actualiser_paquets( integer $id_depot , array $paquets , integer & $nb_paquets , integer & $nb_plugins , integer & $nb_autres )

Paramètres

  1. integer $id_depot

    Identifiant du dépot

  2. array $paquets

    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
  3. integer & $nb_paquets

    Nombre de paquets réellement inserés dans la base

  4. integer & $nb_plugins

    Nombre de plugins parmi les paquets inserés

  5. integer & $nb_autres

    Nombre de contributions non issues de plugin parmi les paquets inserés

Retour

  • boolean

    false si aucun dépot ou paquets, true sinon

Package

Proposer une amélioration

Supprime toutes les urls de plugin de la table spip_urls puis les régénère.

integer svp_actualiser_url_plugins( )

Retour

  • integer

    Nombre d'URLs de plugin régénérées

Package

Proposer une amélioration

Si une erreur survient (syntaxe XML incorrecte, pas de plugin dans le dépot), son texte est placé dans le paramètre $erreur

boolean svp_ajouter_depot( string $url , string & $erreur = '' )

Paramètres

  1. string $url

    URL du fichier XML de description du dépot

  2. string & $erreur = ''

    Texte d'un éventuel message d'erreur

Retour

  • boolean

    true si le dépot est ajouté correctement, false sinon

Package

Proposer une amélioration
boolean svp_completer_plugins( array $ids_plugin )

Paramètres

  1. array $ids_plugin

    Liste d'identifiants de plugins

Retour

  • boolean

    false si rien à faire, true sinon

Package

Proposer une amélioration

Les paquets peuvent de pas avoir d'info "prefixe" (à transformer en id_plugin) lorsqu'ils ne proviennent pas de plugin (squelettes...)

void svp_inserer_multi( array & $insert_plugins , array & $insert_paquets , array & $insert_contribs , array & $prefixes )

Paramètres

  1. array & $insert_plugins

    Tableau de description de plugins. Une description est un tableau de couples (colonne sql => valeur) pour l'insertion en base de données.

  2. array & $insert_paquets

    Tableau de description de paquets. Une description est un tableau de couples (colonne sql => valeur) pour l'insertion en base de données.

  3. array & $insert_contribs

    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.

  4. array & $prefixes

    Couples de relation (préfixe de plugin => identifiant de plugin) connues, pour limiter les accès SQL.

Retour

  • void

Package

Proposer une amélioration

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
boolean svp_nettoyer_apres_suppression( integer $id_depot , array $vmax )

Paramètres

  1. integer $id_depot

    Identifiant du dépot

  2. array $vmax

    Tableau de la version maximale des plugins du dépot supprimé Tableau (id_plugin => version maximale)

Retour

  • boolean

    true toujours.

Utilisé par

Package

Proposer une amélioration

Cette suppression entraîne des recalcul comme les versions maximales des plugins téléchargeables qui peuvent changer.

boolean svp_supprimer_depot( integer $id )

Paramètres

  1. integer $id

    Identifiant du dépot

Retour

  • boolean

    false si le dépot n'est pas trouvé, true sinon

Package

Proposer une amélioration