Package Depots

Fichiers du package

FichierDescription
svp_depoter_distant.php

Traitement des dépots distants

svp_depoter_local.php

Traitement du dépot local

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

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.

string svp_actualiser_paquets_locaux( boolean $force = false , array & $erreurs_xml = array() )

Paramètres

  1. boolean $force = false
    • false : n'actualise que les paquets modifiés
    • true : efface et recrée la liste de tous les paquets locaux
  2. array & $erreurs_xml = array()

    Si des erreurs XML sont présentes, elles se retrouvent dans ce tableau

Retour

  • string

    Temps d'exécution

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

C'est à dire, met les necessite, utilises, lib, procure dans une sous clé 0

array svp_adapter_structure_dependances( array $paquet )

Paramètres

  1. array $paquet

    Description d'un paquet

Retour

  • array

    Description d'un paquet adaptée

Package

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

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

void svp_base_inserer_paquets_locaux( array $paquets_locaux )

Paramètres

  1. array $paquets_locaux

    Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description

Package

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)
Proposer une amélioration
void svp_base_modifier_paquets_locaux( array $paquets_locaux )

Paramètres

  1. array $paquets_locaux

    Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description

Package

Proposer une amélioration
array svp_compiler_multis( string $prefixe , string $dir_source )

Paramètres

  1. string $prefixe

    Préfixe du plugin

  2. string $dir_source

    Chemin d'accès du plugin

Retour

  • array

    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.

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

L'obsolescence indique qu'un paquet est plus ancien (de version ou état moins avancé) qu'un autre également présent localement.

void svp_corriger_obsolete_paquets( array $ids_plugin = array() )

Paramètres

  1. array $ids_plugin = array()

    Liste d'identifiants de plugins En cas d'absence, passera sur tous les paquets locaux

Package

Proposer une amélioration

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

array svp_descriptions_paquets_locaux( array & $erreurs_xml = array() )

Paramètres

  1. array & $erreurs_xml = array()

    Les erreurs XML éventuelles des paquet.xml se retrouvent dedans s'il y en a

Retour

  • array

    Descriptions des paquets (intégrant un hash), stockés par constante, puis par chemin. array[_DIR_PLUGIN*][$chemin] = description

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
string svp_rechercher_maj_version( string $prefixe , string $version , integer $etatnum )

Paramètres

  1. string $prefixe

    Préfixe du plugin

  2. string $version

    Version du paquet à comparer

  3. integer $etatnum

    État du paquet numérique

Retour

  • string

    Version plus à jour, sinon rien

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
array svp_supprimer_plugins_orphelins( array $ids_plugin )

Paramètres

  1. array $ids_plugin

    Liste d'identifiants de plugins

Retour

  • array

    Liste de plugins non orphelins

Package

Proposer une amélioration