Documentation du code de SPIP et de ses plugins

SVP

Documentation

Table of Contents

Packages

SPIP
Application

Classes

Actionneur
L'actionneur calcule l'ordre des actions, permet de les stocker dans un fichier cache et de les effectuer.
Decideur
Le décideur calcule les actions qui doivent être faites en fonction de ce qui est demandé et des différentes dépendances des plugins.

Constants

_AUTORISER_TELECHARGER_PLUGINS  = true
_GIT_COMMAND  = 'git'
_SVN_COMMAND  = 'svn'
_SVP_CRON_ACTUALISATION_DEPOTS  = \true
Mise à jour automatique des depots (CRON) true pour autoriser les actualisations automatique
_SVP_DTD_PAQUET  = 'paquet'
_SVP_DTD_PLUGIN  = 'plugin'
_SVP_MODE_RUNTIME  = \lire_config('svp/mode_runtime', 'oui') == 'oui' ? \true : \false
_SVP_PAGES_OBJET_PUBLIQUES  = ''
_SVP_PAQUET_MAX_SIZE  = 67108864
_SVP_PERIODE_ACTUALISATION_DEPOTS  = 6
Période d'actualisation en nombre d'heures (de 1 a 24)
_SVP_REGEXP_BALISE_ARCHIVE  = '#<archive[^s][^>]*>(.*)</archive>#Uims'
_SVP_REGEXP_BALISE_ARCHIVES  = '#<archives[^>]*>(.*)</archives>#Uims'
_SVP_REGEXP_BALISE_DEPOT  = '#<depot[^>]*>(.*)</depot>#Uims'
_SVP_REGEXP_BALISE_MULTIS  = '#<multis[^>]*>(.*)</multis>#Uims'
_SVP_REGEXP_BALISE_PAQUET  = '#<paquet[^>]*>(.*)</paquet>#Uims'
_SVP_REGEXP_BALISE_PLUGIN  = '#<plugin[^>]*>(.*)</plugin>#Uims'
_SVP_REGEXP_BALISE_TRADUCTIONS  = '#<traductions[^>]*>(.*)</traductions>#Uims'
_SVP_REGEXP_BALISE_ZIP  = '#<zip[^>]*>(.*)</zip>#Uims'
_SVP_VERSION_SPIP_MAX  = '4.2.999'
Version SPIP maximale
_SVP_VERSION_SPIP_MIN  = '1.9.0'
Version SPIP minimale quand un plugin ne le precise pas

Functions

action_actionner_dist()  : mixed
Action effectuant 1 action dans la liste des actions à réaliser sur les plugins.
svp_redirige_boucle()  : mixed
Redirections par refresh d'une URL afin d'éviter des blocages de redirections par les navigateurs lorsqu'elles sont trop nombreuses
action_actualiser_depot_dist()  : mixed
Action de mise à jour en base de données de la liste des plugins d'un ou de tous les dépots
action_editer_depot_dist()  : array<string|int, mixed>
Action de mise à jour des descriptions d'un dépot
depots_set()  : string
Appelle toutes les fonctions de modification d'un dépot $err est de la forme '&trad_err=1'
action_supprimer_depot_dist()  : void
Action de suppression en base de données d'un dépot et de ses plugins
action_teleporter_composant_dist()  : bool|string
Téléporter et déballer un composant
teleporter_verifier_destination()  : bool|string
Vérifier et préparer l'arborescence jusqu'au répertoire parent
teleporter_nettoyer_vieille_version()  : string
Déplace un répertoire pour libérer l'emplacement.
svp_declarer_tables_objets_sql()  : array<string|int, mixed>
Déclarer les objets éditoriaux de SVP
svp_declarer_tables_auxiliaires()  : array<string|int, mixed>
Déclarer les tables de liaisons de SVP
svp_declarer_tables_interfaces()  : array<string|int, mixed>
Déclare les alias de boucle et traitements automatiques de certaines balises
exec_admin_plugin_dist()  : mixed
Affichage de la page de gestion des plugins
svp_presenter_actions_realisees()  : string
Retourne un texte des actions realisées s'il y en a eu tel que activation, désactivation, téléchargement de plugins... Nettoie au passage le fichier de cache décrivant les actions faites (ou encore à faire) dans les cas suivant : - il n'y a plus d'action - le nettoyage est expressement demandé par la commande 'nettoyer_actions' dans l'URL (ce lien est justement disponible si l'auteur des actions tombe sur cette page alors qu'il reste des actions à faire, ce qui signale en général un problème)
formulaires_admin_plugin_charger_dist()  : array<string|int, mixed>
Chargement du formulaire de gestion des plugins
formulaires_admin_plugin_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire de gestion des plugins
formulaires_admin_plugin_traiter_dist()  : array<string|int, mixed>
Traitement du formulaire de gestion des plugins
formulaires_ajouter_depot_charger_dist()  : array<string|int, mixed>
Chargement du formulaire d'ajout de dépot
formulaires_ajouter_depot_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire d'ajout de dépot
formulaires_ajouter_depot_traiter_dist()  : array<string|int, mixed>
Traitement du formulaire d'ajout de dépot
svp_verifier_adresse_depot()  : bool
Teste la validité d'une URL d'un dépot de paquets
formulaires_charger_plugin_charger_dist()  : array<string|int, mixed>
Chargement du formulaire de recherche et téléchargement de plugins
formulaires_charger_plugin_verifier_dist()  : array<string|int, mixed>
Vérification du formulaire de recherche et téléchargement de plugins
formulaires_charger_plugin_traiter_dist()  : array<string|int, mixed>
Traitement du formulaire de recherche et téléchargement de plugins
formulaires_charger_plugin_archive_charger_dist()  : array<string|int, mixed>
Chargement du formulaire de téléchargement de plugin
formulaires_charger_plugin_archive_verifier_dist()  : array<string|int, mixed>
Vérifications du formulaire de téléchargement de plugin
formulaires_charger_plugin_archive_traiter_dist()  : array<string|int, mixed>
Traitement du formulaire de téléchargement de plugin
formulaires_editer_depot_charger_dist()  : array<string|int, mixed>
Chargement du formulaire d'édition de dépot
formulaires_editer_depot_verifier_dist()  : array<string|int, mixed>
Vérification du formulaire d'édition de dépot
formulaires_editer_depot_traiter_dist()  : array<string|int, mixed>
Traitement du formulaire d'édition de dépot
depots_edit_config()  : array<string|int, mixed>
Préparation des configurations particulières du formulaire d'édition de dépot
filtre_svp_nom_action()  : mixed
Crée une valeur d'action pour l'attribut 'name' d'une saisie de formulaire
genie_svp_actualiser_depots_dist()  : int
Actualise tous les dépots
svp_taches_generales_cron()  : array<string|int, mixed>
Ajoute la tâche d'actualisation des dépots dans la liste des tâches périodiques
svp_actionner_traiter_actions_demandees()  : void
Gère le traitement des actions des formulaires utilisant l'Actionneur
svp_decider_verifier_actions_demandees()  : bool
Gère la partie vérifier des formulaires utilisant le Décideur
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é.
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
fusionner_intervalles()  : string
Fusionne 2 intervalles de compatibilité
extraire_bornes()  : array<string|int, mixed>
Extrait les valeurs d'un intervalle de compatibilité.
construire_intervalle()  : string
Contruit un intervalle de compatibilité
compiler_branches_spip()  : string
Retourne la liste des branches de SPIP comprises dans un intervalle de compatibilité donné.
entite2charset()  : string
Transforme un texte écrit en entités HTML, dans le charset du site
balise_identique()  : bool
Teste si 2 balises XML sont identiques
definir_licence()  : array<string|int, mixed>
Déterminer la licence exacte avec un nom et un lien de doc standardisé
svp_lister_librairies()  : array<string|int, mixed>
Liste les librairies présentes
normaliser_version()  : string
Retourne '00x.00y.00z' à partir de 'x.y.z'
svp_phraser_depot()  : array<string|int, mixed>|bool
Phrase un fichier décrivant un dépot, dont le chemin local est donné
svp_phraser_archives()  : array<string|int, mixed>
Phrase la liste des balises <archive>
svp_phraser_plugin()  : array<string|int, mixed>
Phrase le contenu du XML décrivant une archive suivant une DTD de plugin.xml ou de paquet.xml donnée
svp_phraser_zip()  : array<string|int, mixed>
Phrase le contenu de la balise <zip>
svp_phraser_traductions()  : array<string|int, mixed>
Phrase le contenu d'une balise <traductions> en un tableau plus facilement utilisable
svp_aplatir_balises()  : mixed
Aplatit plusieurs clés d'un arbre xml dans un tableau
plugin_lire()  : mixed
Retourne la description complète ou une liste de champs précisés dans l'appel d'un objet plugin identifié par son préfixe.
svp_rechercher_plugins_spip()  : array<string|int, mixed>
Calcule une liste des paquets en fonctions de critères de recherche
svp_lister_plugins_installes()  : array<string|int, mixed>
Récupère les identifiants des plugins déjà installés
svp_verifier_compatibilite_spip()  : bool
Teste la compatibilité d'un intervalle de compatibilité avec une version donnée de SPIP
svp_trier_par_score()  : int
Callback de tri pour trier les résultats de plugin par score décroissant.
svp_trier_par_nom()  : int
Callback de tri pour trier les résultats de plugin par nom (alphabétique).
inc_where_compatible_spip()  : string
Construit le WHERE d'une requête SQL de selection des plugins ou paquets compatibles avec une version, une branche de spip ou une liste de branches.
plugins_fusion_paquet()  : array<string|int, mixed>
Fusion des informations de chaque balise spip d'un paquet.xml en considérant la compatibilité SPIP
plugins_fusion_plugin()  : array<string|int, mixed>
Fusion des informations de chaque balise plugin d'un plugin.xml en considérant la compatibilité SPIP
plugins_infos_plugin()  : mixed
info_plugin_normalise_necessite()  : array<string|int, mixed>
Normaliser les description des balises `necessite`
info_plugin_normalise_utilise()  : array<string|int, mixed>
Normaliser la description des utilise
info_plugin_normalise_procure()  : array<string|int, mixed>
Normaliser la description des procurations
info_plugin_normalise_chemin()  : array<string|int, mixed>
Normaliser la description du chemin
plugins_preparer_sql_paquet()  : array<string|int, mixed>
Pour une description de plugin donnée (issue de la dtd de paquet.xml), prépare les données à installer en bdd
plugins_preparer_sql_plugin()  : array<string|int, mixed>
Pour une description de plugin donnée (issue de la dtd de plugin.xml), prépare les données à installer en bdd
normaliser_lien()  : string
Normalise un lien issu d'un plugin.xml
normaliser_auteur_licence()  : array<string|int, mixed>
Normalise un auteur ou une licence issue d'un plugin.xml
normaliser_multi()  : array<string|int, mixed>
Expanse les multi en un tableau de textes complets, un par langue
svp_upgrade()  : void
Installation et mises à jour du plugin
svp_vider_tables()  : void
Désinstallation du plugin
svp_synchroniser_prefixe()  : mixed
Ajoute le préfixe des plugins dans chaque ligne de paquets
svp_importer_charset()  : mixed
Déclarations de fonctions
svp_afficher_intervalle()  : string
Retourne un texte expliquant l'intervalle de compatibilité avec un plugin ou SPIP
svp_afficher_etat()  : string
Traduit un type d'état de plugin
svp_afficher_dependances()  : string
Retourne un texte HTML présentant la liste des dépendances d'un plugin
svp_afficher_credits()  : string
Retourne un texte HTML présentant les crédits d'un plugin
svp_afficher_langues()  : string
Retourne un texte HTML présentant la liste des langues et traducteurs d'un plugin
svp_traduire_type_depot()  : string
Traduit un type de dépot de plugin
svp_calculer_url_demo()  : string
Calcule l'url exacte d'un lien de démo en fonction de son écriture
critere_compatible_spip_dist()  : void
Critère de compatibilité avec une version précise ou une branche de SPIP ou une liste de branches séparées par une virgule.
filtre_construire_recherche_plugins()  : array<string|int, mixed>
Retourne la liste des plugins trouvés par une recherche
filtre_svp_periode_actualisation_depots()  : int
Retourne le nombre d'heures entre chaque actualisation si le cron est activé.
denormaliser_version()  : string
Retourne 'x.y.z' à partir de '00x.00y.00z'
test_plugins_auto()  : bool
Teste l'utilisation du répertoire auto des plugins.
filtre_svp_diff_xyz()  : string
Compare 2 numéros de versions et indique le composant principal qui change : X, Y ou Z.
filtre_svp_affichage_filtrer_paquets_dist()  : bool
Appel a un pipeline pour filtrer eventuellement l'affichage de certains plugins (ie si on a zen-garden actif, les themes ne sont plus affiches dans la gestion des plugins, mais dans le zen garden)
svp_ieconfig_metas()  : array<string|int, mixed>
Ajoute les metas sauvegardables de SVP pour le plugin IEConfig
svp_autoriser()  : mixed
Fonction du pipeline autoriser. N'a rien à faire
autoriser_depot_iconifier_dist()  : bool
Autoriser l'iconification (mettre un logo) d'un dépot
autoriser_plugins_ajouter_dist()  : bool
Autoriser l'ajout d'un plugin
autoriser_depots_ajouter_dist()  : bool
Autoriser l'ajout d'un dépôt
svp_pre_boucle()  : Boucle
Ne pas afficher par défaut les paquets,dépots,plugins locaux dans les boucles
svp_exclure_id_conditionnel()  : array<string|int, mixed>
Enlever les id_ des tables SVP du critère selections conditionnelles, ailleurs que sur les tables de SVP
svp_jquery_plugins()  : array<string|int, mixed>
Ajoute Bootstrap dropdown aux plugins chargés
svp_header_prive_css()  : string
Ajoute Bootstrap dropdown aux css chargées dans le privé
teleporter_git_dist()  : bool
Téléporter et déballer un composant GIT
teleporter_git_read()  : string|bool|array<string|int, mixed>
Lire l'état GIT du repository
teleporter_git_exec()  : void
Exécuter une commande GIT
teleporter_git_tester()  : bool
Tester si la commande 'git' est disponible
teleporter_http_dist()  : bool|string
Téléporter et déballer un composant HTTP
teleporter_http_recuperer_source()  : array<string|int, mixed>|string
Récupérer la source et détecter son extension
teleporter_http_extension()  : string
Retrouve l'extension d'un fichier
teleporter_http_deballe_tgz_dist()  : bool|string
Déballer le fichier au format tgz dans le répertoire $dest en utilisant le dossier temporaire $tmp si besoin
teleporter_http_charger_tgz()  : array<string|int, mixed>|bool|int|string
Charger un tgz à partir d'un tableau d'options descriptives
teleporter_http_deballe_zip_dist()  : bool|string
Déballer le fichier au format zip dans le répertoire $dest en utilisant le dossier temporaire $tmp si besoin
teleporter_http_charger_zip()  : array<string|int, mixed>|bool|int|string
Charger un zip à partir d'un tableau d'options descriptives
teleporter_svn_dist()  : bool
Téléporter et déballer un composant SVN
teleporter_svn_read()  : array<string|int, mixed>|string
Lire source et révision d'un répertoire SVN et reconstruire la ligne de commande
teleporter_svn_tester()  : bool
Tester si la commande 'svn' est disponible

Constants

_GIT_COMMAND

public mixed _GIT_COMMAND = 'git'

_SVN_COMMAND

public mixed _SVN_COMMAND = 'svn'

_SVP_CRON_ACTUALISATION_DEPOTS

Mise à jour automatique des depots (CRON) true pour autoriser les actualisations automatique

public bool _SVP_CRON_ACTUALISATION_DEPOTS = \true

_SVP_DTD_PAQUET

public string _SVP_DTD_PAQUET = 'paquet'

Phraseur à utiliser pour un XML de paquet.xml

_SVP_DTD_PLUGIN

public string _SVP_DTD_PLUGIN = 'plugin'

Phraseur à utiliser pour un XML de plugin.xml

_SVP_MODE_RUNTIME

public mixed _SVP_MODE_RUNTIME = \lire_config('svp/mode_runtime', 'oui') == 'oui' ? \true : \false

_SVP_PAQUET_MAX_SIZE

public mixed _SVP_PAQUET_MAX_SIZE = 67108864

_SVP_PERIODE_ACTUALISATION_DEPOTS

Période d'actualisation en nombre d'heures (de 1 a 24)

public int _SVP_PERIODE_ACTUALISATION_DEPOTS = 6

_SVP_REGEXP_BALISE_ARCHIVE

public mixed _SVP_REGEXP_BALISE_ARCHIVE = '#<archive[^s][^>]*>(.*)</archive>#Uims'

_SVP_REGEXP_BALISE_ARCHIVES

public mixed _SVP_REGEXP_BALISE_ARCHIVES = '#<archives[^>]*>(.*)</archives>#Uims'

_SVP_REGEXP_BALISE_DEPOT

public mixed _SVP_REGEXP_BALISE_DEPOT = '#<depot[^>]*>(.*)</depot>#Uims'

_SVP_REGEXP_BALISE_MULTIS

public mixed _SVP_REGEXP_BALISE_MULTIS = '#<multis[^>]*>(.*)</multis>#Uims'

_SVP_REGEXP_BALISE_PAQUET

public mixed _SVP_REGEXP_BALISE_PAQUET = '#<paquet[^>]*>(.*)</paquet>#Uims'

_SVP_REGEXP_BALISE_PLUGIN

public mixed _SVP_REGEXP_BALISE_PLUGIN = '#<plugin[^>]*>(.*)</plugin>#Uims'

_SVP_REGEXP_BALISE_TRADUCTIONS

public mixed _SVP_REGEXP_BALISE_TRADUCTIONS = '#<traductions[^>]*>(.*)</traductions>#Uims'

_SVP_REGEXP_BALISE_ZIP

public mixed _SVP_REGEXP_BALISE_ZIP = '#<zip[^>]*>(.*)</zip>#Uims'

_SVP_VERSION_SPIP_MAX

Version SPIP maximale

public mixed _SVP_VERSION_SPIP_MAX = '4.2.999'

Pour l'instant on ne connait pas la borne sup exacte

_SVP_VERSION_SPIP_MIN

Version SPIP minimale quand un plugin ne le precise pas

public mixed _SVP_VERSION_SPIP_MIN = '1.9.0'

Version SPIP correspondant à l'apparition des plugins

Functions

action_actionner_dist()

Action effectuant 1 action dans la liste des actions à réaliser sur les plugins.

action_actionner_dist() : mixed

Cette action sera relancée tant qu'il reste des actions à faire

svp_redirige_boucle()

Redirections par refresh d'une URL afin d'éviter des blocages de redirections par les navigateurs lorsqu'elles sont trop nombreuses

svp_redirige_boucle(string $url, string $texte, string $progres) : mixed
Parameters
$url : string
$texte : string

Texte de l'action réalisée

$progres : string

action_actualiser_depot_dist()

Action de mise à jour en base de données de la liste des plugins d'un ou de tous les dépots

action_actualiser_depot_dist() : mixed

action_editer_depot_dist()

Action de mise à jour des descriptions d'un dépot

action_editer_depot_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Liste identifiant du dépot, texte d'erreur éventuel

depots_set()

Appelle toutes les fonctions de modification d'un dépot $err est de la forme '&trad_err=1'

depots_set(int $id_depot) : string
Parameters
$id_depot : int

Identifiant du dépot

Tags
note

Cette fonction ne fait rien actuellement !!

Return values
string

Texte d'une eventuelle erreur

action_teleporter_composant_dist()

Téléporter et déballer un composant

action_teleporter_composant_dist(string $methode, string $source, string $dest[, array<string|int, mixed> $options = [] ]) : bool|string
Parameters
$methode : string

http|git|svn|...

$source : string

URL source du composant

$dest : string

Chemin du répertoire où déballer le composant. Inclus le dernier segment

$options : array<string|int, mixed> = []

revision => '' --ignore-externals

Return values
bool|string

String : texte d'une erreur true si l'opération est correctement réalisée

teleporter_verifier_destination()

Vérifier et préparer l'arborescence jusqu'au répertoire parent

teleporter_verifier_destination(string $dest) : bool|string
Parameters
$dest : string
Return values
bool|string

false en cas d'échec Chemin du répertoire sinon

teleporter_nettoyer_vieille_version()

Déplace un répertoire pour libérer l'emplacement.

teleporter_nettoyer_vieille_version(string $dest) : string

Si le répertoire donné existe, le déplace dans un répertoire de backup. Si ce backup existe déjà, il est supprimé auparavant. Retourne le nouveau chemin du répertoire.

Parameters
$dest : string

Chemin du répertoire à déplacer

Return values
string

Nouveau chemin du répertoire s'il existait, Chaîne vide sinon

svp_declarer_tables_objets_sql()

Déclarer les objets éditoriaux de SVP

svp_declarer_tables_objets_sql(array<string|int, mixed> $tables) : array<string|int, mixed>
  • Dépot : table spip_depots
  • Plugin : table spip_plugins
  • Paquet : table spip_paquets
Parameters
$tables : array<string|int, mixed>

Description des tables

Tags
pipeline

declarer_tables_objets_sql

Return values
array<string|int, mixed>

Description complétée des tables

svp_declarer_tables_auxiliaires()

Déclarer les tables de liaisons de SVP

svp_declarer_tables_auxiliaires(array<string|int, mixed> $tables_auxiliaires) : array<string|int, mixed>

Déclare la table spip_depots_plugins

Parameters
$tables_auxiliaires : array<string|int, mixed>

Description des tables auxiliaires

Tags
pipeline

declarer_tables_auxiliaires

Return values
array<string|int, mixed>

Description complétée des tables auxiliaires

svp_declarer_tables_interfaces()

Déclare les alias de boucle et traitements automatiques de certaines balises

svp_declarer_tables_interfaces(array<string|int, mixed> $interface) : array<string|int, mixed>
Parameters
$interface : array<string|int, mixed>

Déclarations d'interface pour le compilateur

Tags
pipeline

declarer_tables_interfaces

Return values
array<string|int, mixed>

Déclarations d'interface pour le compilateur

svp_presenter_actions_realisees()

Retourne un texte des actions realisées s'il y en a eu tel que activation, désactivation, téléchargement de plugins... Nettoie au passage le fichier de cache décrivant les actions faites (ou encore à faire) dans les cas suivant : - il n'y a plus d'action - le nettoyage est expressement demandé par la commande 'nettoyer_actions' dans l'URL (ce lien est justement disponible si l'auteur des actions tombe sur cette page alors qu'il reste des actions à faire, ce qui signale en général un problème)

svp_presenter_actions_realisees() : string
Tags
used-by
exec_admin_plugin_dist()
Return values
string

Code HTML présentant les actions réalisées Vide si rien ne s'est passé !

formulaires_admin_plugin_charger_dist()

Chargement du formulaire de gestion des plugins

formulaires_admin_plugin_charger_dist([string $voir = '' ][, string $verrouille = '' ][, string|int $id_paquet = '' ][, string $redirect = '' ]) : array<string|int, mixed>
Parameters
$voir : string = ''

Statut des plugins que l'on souhaite voir : actif, inactif, tous

$verrouille : string = ''

Types de plugins que l'on souhaite voir :

  • 'non' : les plugins utilisateurs
  • 'oui' : les plugins verrouillés (plugins-dist)
  • 'tous' : les deux !
$id_paquet : string|int = ''

Identifiant du paquet dont on veut obtenir une description complète lors de l'affichage du formulaire

$redirect : string = ''

URL de redirection après les traitements

Tags
uses
svp_actualiser_paquets_locaux()
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_admin_plugin_verifier_dist()

Vérifications du formulaire de gestion des plugins

formulaires_admin_plugin_verifier_dist([string $voir = 'actif' ][, string $verrouille = 'non' ][, string|int $id_paquet = '' ][, string $redirect = '' ]) : array<string|int, mixed>

Appelle le décideur qui détermine la liste des actions à faire et si celles-ci peuvent être faites (dépendances connues). Une erreur sera levé dans le cas contraire.

Si toutes les actions peuvent être faites, une demande de confirmation est envoyée (dans une erreur spéciale), présentant alors toutes les actions qui seront réalisées (celle demandée + celles à faire par voie de conséquence.

Si on reçoit une demande de confirmation, on sort sans lever d'erreur !

Parameters
$voir : string = 'actif'

Statut des plugins que l'on souhaite voir : actif, inactif, tous

$verrouille : string = 'non'

Types de plugins que l'on souhaite voir :

  • 'non' : les plugins utilisateurs
  • 'oui' : les plugins verrouillés (plugins-dist)
  • 'tous' : les deux !
$id_paquet : string|int = ''

Identifiant du paquet dont on veut obtenir une description complète lors de l'affichage du formulaire

$redirect : string = ''

URL de redirection après les traitements

Tags
uses
svp_decider_verifier_actions_demandees()
Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_admin_plugin_traiter_dist()

Traitement du formulaire de gestion des plugins

formulaires_admin_plugin_traiter_dist([string $voir = 'actif' ][, string $verrouille = 'non' ][, string|int $id_paquet = '' ][, string $redirect = '' ]) : array<string|int, mixed>

Si une liste d'action est validée, on redirige de formulaire sur l'action 'actionner' qui les traitera une par une.

Parameters
$voir : string = 'actif'

Statut des plugins que l'on souhaite voir : actif, inactif, tous

$verrouille : string = 'non'

Types de plugins que l'on souhaite voir :

  • 'non' : les plugins utilisateurs
  • 'oui' : les plugins verrouillés (plugins-dist)
  • 'tous' : les deux !
$id_paquet : string|int = ''

Identifiant du paquet dont on veut obtenir une description complète lors de l'affichage du formulaire

$redirect : string = ''

URL de redirection après les traitements

Tags
uses
svp_actionner_traiter_actions_demandees()
Return values
array<string|int, mixed>

Retours du traitement

formulaires_ajouter_depot_charger_dist()

Chargement du formulaire d'ajout de dépot

formulaires_ajouter_depot_charger_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_ajouter_depot_verifier_dist()

Vérifications du formulaire d'ajout de dépot

formulaires_ajouter_depot_verifier_dist() : array<string|int, mixed>

Vérifie qu'une adresse valide est soumise et que ce dépot n'a pas déjà été créé.

Tags
uses
svp_verifier_adresse_depot()
Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_ajouter_depot_traiter_dist()

Traitement du formulaire d'ajout de dépot

formulaires_ajouter_depot_traiter_dist() : array<string|int, mixed>

Ajoute le dépot. Retourne une éventuelle erreur si le dépot a un XML mal formé ou s'il n'a aucun plugin.

Tags
uses
svp_ajouter_depot()
Return values
array<string|int, mixed>

Retours du traitement

svp_verifier_adresse_depot()

Teste la validité d'une URL d'un dépot de paquets

svp_verifier_adresse_depot(string $url) : bool

Pour cela on tente de rapatrier le fichier distant en local. Si on réussi, c'est bon.

Parameters
$url : string

URL du fichier xml de description du depot

Tags
used-by
formulaires_ajouter_depot_verifier_dist()
Return values
bool

Le dépot est-il valide ?

formulaires_charger_plugin_charger_dist()

Chargement du formulaire de recherche et téléchargement de plugins

formulaires_charger_plugin_charger_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_charger_plugin_verifier_dist()

Vérification du formulaire de recherche et téléchargement de plugins

formulaires_charger_plugin_verifier_dist() : array<string|int, mixed>

Appelle le décideur qui détermine la liste des actions à faire et si celles-ci peuvent être faites (dépendances connues). Une erreur sera levé dans le cas contraire.

Si toutes les actions peuvent être faites, une demande de confirmation est envoyée (dans une erreur spéciale), présentant alors toutes les actions qui seront réalisées (celle demandée + celles à faire par voie de conséquence.

Si on reçoit une demande de confirmation, on sort sans lever d'erreur !

Tags
uses
svp_decider_verifier_actions_demandees()
Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_charger_plugin_traiter_dist()

Traitement du formulaire de recherche et téléchargement de plugins

formulaires_charger_plugin_traiter_dist() : array<string|int, mixed>

Si une liste d'action est validée, on redirige de formulaire sur l'action 'actionner' qui les traitera une par une.

Return values
array<string|int, mixed>

Retours du traitement

formulaires_charger_plugin_archive_charger_dist()

Chargement du formulaire de téléchargement de plugin

formulaires_charger_plugin_archive_charger_dist() : array<string|int, mixed>
Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_charger_plugin_archive_verifier_dist()

Vérifications du formulaire de téléchargement de plugin

formulaires_charger_plugin_archive_verifier_dist() : array<string|int, mixed>

Vérifie qu'une archive est saisie, et si la destination existe demande à confirmer l'écrasement

Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_charger_plugin_archive_traiter_dist()

Traitement du formulaire de téléchargement de plugin

formulaires_charger_plugin_archive_traiter_dist() : array<string|int, mixed>

Télécharge le plugin via le téléporteur et rend la main.

Return values
array<string|int, mixed>

Retours du traitement

formulaires_editer_depot_charger_dist()

Chargement du formulaire d'édition de dépot

formulaires_editer_depot_charger_dist(int $id_depot, string $redirect) : array<string|int, mixed>
Parameters
$id_depot : int

Identifiant du dépot

$redirect : string

URL de redirection

Return values
array<string|int, mixed>

Environnement du formulaire

formulaires_editer_depot_verifier_dist()

Vérification du formulaire d'édition de dépot

formulaires_editer_depot_verifier_dist(int $id_depot, string $redirect) : array<string|int, mixed>
Parameters
$id_depot : int

Identifiant du dépot

$redirect : string

URL de redirection

Return values
array<string|int, mixed>

Tableau des erreurs

formulaires_editer_depot_traiter_dist()

Traitement du formulaire d'édition de dépot

formulaires_editer_depot_traiter_dist(int $id_depot, string $redirect) : array<string|int, mixed>
Parameters
$id_depot : int

Identifiant du dépot

$redirect : string

URL de redirection

Return values
array<string|int, mixed>

Retours du traitement

depots_edit_config()

Préparation des configurations particulières du formulaire d'édition de dépot

depots_edit_config(array<string|int, mixed> $row) : array<string|int, mixed>
Parameters
$row : array<string|int, mixed>

Données SQL actuelles de l'objet qui va être édité

Return values
array<string|int, mixed>

Tableau de configurations qui seront ajoutés à l'environnement du formulaire sous la clé 'config'

filtre_svp_nom_action()

Crée une valeur d'action pour l'attribut 'name' d'une saisie de formulaire

filtre_svp_nom_action(int $id_paquet, string $action) : mixed
Parameters
$id_paquet : int

Identifiant du paquet

$action : string

Une action possible (on, off, stop, up, on, upon, kill)

Tags
example

[(#ID_PAQUET|svp_nom_action{on})] écrit : actions[on][24]

genie_svp_actualiser_depots_dist()

Actualise tous les dépots

genie_svp_actualiser_depots_dist(int $last) : int
Parameters
$last : int

Timestamp de la dernière exécution de cette tâche

Tags
genie

svp_actualiser_depots

uses
svp_actualiser_depot()
Return values
int

Positif : la tâche a été effectuée

svp_taches_generales_cron()

Ajoute la tâche d'actualisation des dépots dans la liste des tâches périodiques

svp_taches_generales_cron(array<string|int, mixed> $taches_generales) : array<string|int, mixed>
Parameters
$taches_generales : array<string|int, mixed>

Tableau des tâches et leur périodicité en seconde

Tags
pipeline

taches_generales_cron

Return values
array<string|int, mixed>

Tableau des tâches et leur périodicité en seconde

svp_actionner_traiter_actions_demandees()

Gère le traitement des actions des formulaires utilisant l'Actionneur

svp_actionner_traiter_actions_demandees(array<string|int, mixed> $actions, array<string|int, mixed> &$retour[, string $redirect = null ]) : void
Parameters
$actions : array<string|int, mixed>

Liste des actions a faire (id_paquet => action)

$retour : array<string|int, mixed>

Tableau de retour du CVT dans la partie traiter

$redirect : string = null

URL de retour

Tags
used-by
formulaires_admin_plugin_traiter_dist()

svp_decider_verifier_actions_demandees()

Gère la partie vérifier des formulaires utilisant le Décideur

svp_decider_verifier_actions_demandees(array<string|int, mixed> $a_actionner, array<string|int, mixed> &$erreurs) : bool
Parameters
$a_actionner : array<string|int, mixed>

Tableau des actions par paquet (id_paquet => action)

$erreurs : array<string|int, mixed>

Tableau d'erreurs de verifier (CVT)

Tags
used-by
formulaires_admin_plugin_verifier_dist()
used-by
formulaires_charger_plugin_verifier_dist()
Return values
bool

true si tout va bien, false sinon (erreur pour trouver les dépendances, ...)

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

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

fusionner_intervalles()

Fusionne 2 intervalles de compatibilité

fusionner_intervalles(string $intervalle_a, string $intervalle_b) : string

Soit '[1.9;2.1]' et '[2.1;3.0.]', la fonction retourne '[1.9;3.0.]'

En gros la fonction est utilisé pour calculer l'intervalle de validité d'un plugin ayant plusieurs paquets avec des compatibilités différentes. La compatibilité du plugin est le total de toutes les compatibilités.

Parameters
$intervalle_a : string

Intervalle de compatibilité

$intervalle_b : string

Intervalle de compatibilité

Tags
uses
extraire_bornes()
uses
construire_intervalle()
used-by
plugins_fusion_plugin()
Return values
string

Intervalle de compatibilité

extraire_bornes()

Extrait les valeurs d'un intervalle de compatibilité.

extraire_bornes(string $intervalle[, bool $initialiser = false ]) : array<string|int, mixed>

Calcule les valeurs min, max et si ces valeurs sont intégrées ou non à l'intervalle. Les bornes vides sont initialisées avec la borne min ou max de SPIP. Les caractères * sont renvoyés tels quels.

Parameters
$intervalle : string

Intervalle de compatibilité, tel que '[2.1;3.0]'

$initialiser : bool = false
  • True pour mettre les valeurs connues mini et maxi de SPIP lorsque les bornes ne sont pas renseignées dans l'intervalle.
  • False pour ne rien mettre sinon.
Tags
used-by
fusionner_intervalles()
used-by
compiler_branches_spip()
used-by
plugins_fusion_plugin()
Return values
array<string|int, mixed>

Tableau avec les index :

  • min : la borne inférieure, qui contient les index 'valeur' et 'incluse'
  • max : la borne supérieure, qui contient les index 'valeur' et 'incluse' Le sous index 'incluse' vaut true si cette borne est incluse dans l'intervalle.

construire_intervalle()

Contruit un intervalle de compatibilité

construire_intervalle(array<string|int, mixed> $bornes[, string $dtd = 'paquet' ]) : string
Parameters
$bornes : array<string|int, mixed>

L'intervalle décrit sous forme de tableau avec pour index :

  • min : la borne inférieure, qui contient les index 'valeur' et 'incluse'
  • max : la borne supérieure, qui contient les index 'valeur' et 'incluse' Le sous index 'incluse' vaut true si cette borne est incluse dans l'intervalle.
$dtd : string = 'paquet'

DTD de destination (paquet ou plugin) qui influera sur l'écriture à faire en utilisant des parenthèses ou des crochets pour définir l'exclusion d'une intervalle tel que ']2.1.2,3.0.1[' (paquet) ou '(2.1.2,3.0.1)' (plugin)

Tags
used-by
fusionner_intervalles()
Return values
string

Intervalle de compatibilité tel que '[2.1;3.0]'

compiler_branches_spip()

Retourne la liste des branches de SPIP comprises dans un intervalle de compatibilité donné.

compiler_branches_spip(string $intervalle) : string

La borne inférieure ne peut pas posséder le caractère * et peut être libellée x, x.y ou x.y.z (écriture recommandée). La borne supérieure peut posséder des étoiles en y ou z.

Parameters
$intervalle : string

Intervalle de compatibilité, tel que [2.0.0;3.0.0]

Tags
uses
extraire_bornes()
used-by
svp_completer_plugins()
used-by
plugins_preparer_sql_plugin()
Return values
string

Branches de SPIP séparées par des virgules, tel que 2.0,2.1,3.0

entite2charset()

Transforme un texte écrit en entités HTML, dans le charset du site

entite2charset(string $texte[, string $charset = null ]) : string
Parameters
$texte : string

Texte avec des entités HTML

$charset : string = null
Return values
string

$texte Texte dans le charset du site

balise_identique()

Teste si 2 balises XML sont identiques

balise_identique(array<string|int, mixed>|string $balise1, array<string|int, mixed>|string $balise2) : bool
Parameters
$balise1 : array<string|int, mixed>|string

Balise à comparer

$balise2 : array<string|int, mixed>|string

Balise à comparer

Return values
bool

True si elles sont identiques, false sinon.

definir_licence()

Déterminer la licence exacte avec un nom et un lien de doc standardisé

definir_licence(string $prefixe, string $nom, string $suffixe, string $version) : array<string|int, mixed>
Parameters
$prefixe : string

Préfixe de la licence tel que gnu, free, cc, creative common

$nom : string

Nom de la licence tel que gpl, lgpl, agpl, fdl, mit, bsd...

$suffixe : string

Suffixe de la licence tel que licence, -sharealike, -nc-nd ...

$version : string

Version de la licence tel que 3.0

Return values
array<string|int, mixed>

Si la licence est connu, retourne 2 index :

  • nom : le nom le la licence
  • url : lien vers la licence

svp_lister_librairies()

Liste les librairies présentes

svp_lister_librairies() : array<string|int, mixed>

Cherche des librairie dans tous les dossiers 'lib' présents dans chaque chemin déclaré (plugins, squelettes, SPIP). Un répertoire dans un dossier 'lib' est considéré comme une librairie, et le nom de ce répertoire est utilisé comme nom de la librairie.

Return values
array<string|int, mixed>

Tableau de couples (nom de la librairie => répertoire de la librairie)

normaliser_version()

Retourne '00x.00y.00z' à partir de 'x.y.z'

normaliser_version([string $version = '' ]) : string

Retourne la chaine de la version x.y.z sous une forme normalisée permettant le tri naturel. On complète à gauche d'un nombre de zéro manquant pour aller à 3 caractères entre chaque point.

Parameters
$version : string = ''

Numéro de version dénormalisée

Tags
see
denormaliser_version()
Return values
string

Numéro de version normalisée

svp_phraser_depot()

Phrase un fichier décrivant un dépot, dont le chemin local est donné

svp_phraser_depot(string $fichier_xml) : array<string|int, mixed>|bool

Le fichier est au format XML et contient deux balises principales :

  • ... : informations de description du depot (facultatif)
  • ... : liste des informations sur chaque archive (obligatoire)

La fonction met en cache le résultat du phrasage de chaque archive et ne rephrase que les archives ayant changées.

Parameters
$fichier_xml : string

Chemin local du fichier XML de description du dépot

Tags
uses
svp_aplatir_balises()
uses
svp_phraser_archives()
used-by
svp_ajouter_depot()
used-by
svp_actualiser_depot()
Return values
array<string|int, mixed>|bool

false si erreur, Tableau de 2 index sinon :

  • depot : description du dépot
  • paquets :

svp_phraser_archives()

Phrase la liste des balises <archive>

svp_phraser_archives(array<string|int, mixed> $archives[, array<string|int, mixed> &$md5_cache = [] ]) : array<string|int, mixed>

Chaque bloc XML est constitue de 3 sous-blocs principaux :

  • : contient les balises d'information sur le zip (obligatoire)
  • : contient la compilation des informations de traduction (facultatif)
  • ou suivant la DTD : le contenu du fichier plugin.xml ou paquet.xml (facultatif)
Parameters
$archives : array<string|int, mixed>

Tableau de la liste des archives trouvées dans la description d'un dépot

$md5_cache : array<string|int, mixed> = []

Tableau des descriptions d'archives déjà connues : on supprime à la fin celles qui ne font plus parties du dépot.

Tags
uses
svp_phraser_zip()
uses
svp_phraser_traductions()
uses
svp_phraser_plugin()
uses
plugin_version_compatible()
used-by
svp_phraser_depot()
Return values
array<string|int, mixed>

Tableau décrivant chaque archive, avec en index l'url de l'archive. Tableau (url => Tableau de description de l'archive)

svp_phraser_plugin()

Phrase le contenu du XML décrivant une archive suivant une DTD de plugin.xml ou de paquet.xml donnée

svp_phraser_plugin(string $dtd, string $contenu) : array<string|int, mixed>

La fonction peut-être appelée via archives.xml ou via un xml de plugin. Elle phrase la balise dans le cas d'une DTD paquet qui contient les traductions du nom, slogan et description

Parameters
$dtd : string

Nom du type de dtd : plugin ou paquet (pour phraser un plugin.xml ou un paquet.xml)

$contenu : string

Contenu XML à phraser

Tags
uses
svp_aplatir_balises()
global

$balises_multis

static

array $informer

used-by
svp_phraser_archives()
Return values
array<string|int, mixed>

Description du plugin

svp_phraser_zip()

Phrase le contenu de la balise <zip>

svp_phraser_zip(string $contenu) : array<string|int, mixed>

Extrait du XML les informations du zip

Parameters
$contenu : string

Description XML de l'archive

Tags
uses
svp_aplatir_balises()
used-by
svp_phraser_archives()
Return values
array<string|int, mixed>

Description du zip.

  • Index 'file' : nom du zip
  • Index 'size' : taille
  • Index 'date' : date de création
  • Index 'last_commit' : date du dernier commit
  • Index 'source' : arborescence relative des sources
  • Index 'logo' : nom du logo

svp_phraser_traductions()

Phrase le contenu d'une balise <traductions> en un tableau plus facilement utilisable

svp_phraser_traductions(string $contenu) : array<string|int, mixed>
Parameters
$contenu : string

Contenu XML de la balise

Tags
used-by
svp_phraser_archives()
Return values
array<string|int, mixed>

Tableau complexe avec pour index les noms des modules de langue et pour valeur leur description. Chaque description contient dedans 3 index :

  • reference : la langue de référence
  • gestionnaire : quel logiciel à servi à gérer les traductions
  • langues : tableau classé par langue puis par traducteurs, qui indique l'ensemble des traducteurs pour chacune des langues présentes

svp_aplatir_balises()

Aplatit plusieurs clés d'un arbre xml dans un tableau

svp_aplatir_balises(array<string|int, mixed> $balises, array<string|int, mixed> $arbre_xml[, string $mode = 'vide_et_nonvide' ][, array<string|int, mixed> $tableau_initial = [] ]) : mixed

Effectue un trim() de la valeur trouvée dans l'arbre

Parameters
$balises : array<string|int, mixed>

Liste de noms de balises XML. Peut aussi être un tableau indiquant un renommage d'une balise au passage tel que 'x' => 'y' qui cherchera x dans l'arbre XML et l'applatira dans y.

$arbre_xml : array<string|int, mixed>

Un arbre issu de spip_xml_parse()

$mode : string = 'vide_et_nonvide'

Mode d'affectation des valeurs trouvées

  • 'vide_et_nonvide' : Affecte une chaine vide si la balise n'est pas trouvée dans l'arbre et affecte la valeur de la balise sinon.
  • 'nonvide' : Si la balise n'est pas trouvée dans l'arbre ou si son contenu est vide, affecte la valeur du tableau initial concernant cette balise si elle est connue.
$tableau_initial : array<string|int, mixed> = []

Tableau initial pouvant contenir des valeurs par défaut à affecter à chaque balise avec 'x' => 'valeur'

Tags
uses
spip_xml_aplatit()
used-by
svp_phraser_depot()
used-by
svp_phraser_plugin()
used-by
svp_phraser_zip()

plugin_lire()

Retourne la description complète ou une liste de champs précisés dans l'appel d'un objet plugin identifié par son préfixe.

plugin_lire(int|string $plugin[, array<string|int, mixed>|string $informations = [] ]) : mixed
Parameters
$plugin : int|string

La valeur du préfixe ou de l'id du plugin.

$informations : array<string|int, mixed>|string = []

Identifiant d'un champ ou de plusieurs champs de la description d'un plugin. Si l'argument est vide, la fonction renvoie la description complète.

Return values
mixed

La description brute complète ou partielle du plugin :

  • sous la forme d'une valeur simple si l'information demandée est unique (chaine)
  • sous la forme d'un tabelau associatif indexé par le nom du champ sinon.

svp_rechercher_plugins_spip()

Calcule une liste des paquets en fonctions de critères de recherche

svp_rechercher_plugins_spip(string $phrase, string $etat, string|int $depot[, string $version_spip = '' ][, array<string|int, mixed> $exclusions = [] ][, bool $afficher_exclusions = false ][, bool $doublon = false ][, string $tri = 'nom' ]) : array<string|int, mixed>

Cette liste :

  • est sans doublons, ie on ne garde que la version la plus récente
  • correspond aux critères
  • est compatible avec la version SPIP installée sur le site
  • ne liste pas ceux étant déjà installés (ces paquets peuvent toutefois être affichés)
  • est triée par nom ou score
Parameters
$phrase : string

Texte de la recherche

$etat : string

État de plugin (stable, test...)

$depot : string|int

Identifiant de dépot

$version_spip : string = ''

Version de SPIP dont le paquet doit être compatible

$exclusions : array<string|int, mixed> = []

Liste d'identifiants de plugin à ne pas intégrer dans la liste

$afficher_exclusions : bool = false

Afficher aussi les paquets déjà installés (true) ou ceux qui ne le sont pas (false) ?

$doublon : bool = false

Afficher toutes les versions de paquet (true) ou seulement la plus récente (false) ?

$tri : string = 'nom'

Ordre du tri : nom | score

Tags
uses
liste_des_champs()
uses
recherche_en_base()
Return values
array<string|int, mixed>

Tableau classé par pertinence de résultat

  • 'prefixe' => tableau de description du paquet (si pas de doublons demandé)
  • n => tableau de descriptions du paquet (si doublons autorisés)

svp_lister_plugins_installes()

Récupère les identifiants des plugins déjà installés

svp_lister_plugins_installes() : array<string|int, mixed>
Tags
uses
liste_plugin_actifs()
Return values
array<string|int, mixed>

Liste d'identifiants de plugins

svp_verifier_compatibilite_spip()

Teste la compatibilité d'un intervalle de compatibilité avec une version donnée de SPIP

svp_verifier_compatibilite_spip(string $intervalle[, string $version_spip = '' ]) : bool
Parameters
$intervalle : string

Intervalle de compatibilité, tel que [2.1;3.0]

$version_spip : string = ''

Version de SPIP, tel que 3.0.4 (par défaut la version de SPIP en cours)

Tags
uses
plugin_version_compatible()
Return values
bool

true si l'intervalle est compatible, false sinon

svp_trier_par_score()

Callback de tri pour trier les résultats de plugin par score décroissant.

svp_trier_par_score(array<string|int, mixed> $p1, array<string|int, mixed> $p2) : int

Cette fonction est appelée par un usort ou uasort

Parameters
$p1 : array<string|int, mixed>

Plugin à comparer

$p2 : array<string|int, mixed>

Plugin à comparer

Return values
int

svp_trier_par_nom()

Callback de tri pour trier les résultats de plugin par nom (alphabétique).

svp_trier_par_nom(array<string|int, mixed> $p1, array<string|int, mixed> $p2) : int

Si le nom est identique on classe par version decroissante Cette fonction est appelée par un usort ou uasort

Parameters
$p1 : array<string|int, mixed>

Plugin à comparer

$p2 : array<string|int, mixed>

Plugin à comparer

Return values
int

inc_where_compatible_spip()

Construit le WHERE d'une requête SQL de selection des plugins ou paquets compatibles avec une version, une branche de spip ou une liste de branches.

inc_where_compatible_spip(string $version, string $table, string $op) : string

Cette fonction est appelée par le critère {compatible_spip}

Parameters
$version : string

Numéro de version de SPIP, tel que 2.0.8 ou de branche tel que 3.1 ou une liste de branche '3.1,3.2'

$table : string

Table d'application ou son alias SQL

$op : string

Opérateur de comparaison, tel que '>' ou '='

Tags
used-by

critere_compatible_spip_dist()

Return values
string

Expression where de la requête SQL

plugins_fusion_paquet()

Fusion des informations de chaque balise spip d'un paquet.xml en considérant la compatibilité SPIP

plugins_fusion_paquet(array<string|int, mixed> $plugins) : array<string|int, mixed>

Pour les balises paquets sans balise spip cette fonction permet de générer une structure identique pour les balises dites techniques

Parameters
$plugins : array<string|int, mixed>

Arbre de description du paquet.xml

Return values
array<string|int, mixed>

Fusion des éléments classé par balise, puis par compatibilité à SPIP. L'index 0 dans la compatibilité est valable quelque soit la version de SPIP.

plugins_fusion_plugin()

Fusion des informations de chaque balise plugin d'un plugin.xml en considérant la compatibilité SPIP

plugins_fusion_plugin(array<string|int, mixed> $plugins) : array<string|int, mixed>

Pour les balises plugins uniques cette fonction permet de générer une structure identique pour les balises dites techniques

On limite le traitement a deux balises plugins maximum, ce qui est le cas de tous les plugin.xml actuellement connus

Parameters
$plugins : array<string|int, mixed>

Arbre des balises plugins présents dans un plugin.xml

Tags
uses
_SVP_VERSION_SPIP_MIN
uses
extraire_bornes()
uses
fusionner_intervalles()
Return values
array<string|int, mixed>

Fusion des éléments classé par balise, puis par compatibilité à SPIP. L'index 0 dans la compatibilité est valable quelque soit la version de SPIP.

plugins_infos_plugin()

plugins_infos_plugin(mixed $desc[, mixed $plug = '' ][, mixed $dir_plugins = _DIR_PLUGINS ]) : mixed
Parameters
$desc : mixed
$plug : mixed = ''
$dir_plugins : mixed = _DIR_PLUGINS

info_plugin_normalise_necessite()

Normaliser les description des balises `necessite`

info_plugin_normalise_necessite(array<string|int, mixed> $necessite) : array<string|int, mixed>

Ajoute les clés

  • 'nom' (= id)
  • 'compatibilite' (= version)
Parameters
$necessite : array<string|int, mixed>

Liste des necessite trouvés pour le plugin

Tags
note

Un attribut de nom "id" à une signification particulière en XML qui ne correspond pas à l'utilissation qu'en font les plugin.xml.

Pour éviter de complexifier la lecture de paquet.xml qui n'est pour rien dans cette bévue, on doublonne l'information sous les deux index "nom" et "id" dans l'arbre de syntaxe abstraite pour compatibilité, mais seul le premier est disponible quand on lit un paquet.xml, "id" devant être considéré comme obsolète.

Return values
array<string|int, mixed>

Liste des necessite modifiés.

info_plugin_normalise_utilise()

Normaliser la description des utilise

info_plugin_normalise_utilise(array<string|int, mixed> $utilise) : array<string|int, mixed>

Ajoute les clés

  • 'nom' (= id)
  • 'compatibilite' (= version)
Parameters
$utilise : array<string|int, mixed>

Liste des utilise trouvés pour le plugin

Return values
array<string|int, mixed>

Liste des utilise modifiés.

info_plugin_normalise_procure()

Normaliser la description des procurations

info_plugin_normalise_procure(array<string|int, mixed> $procure) : array<string|int, mixed>

Ajoute la cle 'nom' (= id)

Parameters
$procure : array<string|int, mixed>

Liste des procure trouvés pour le plugin

Return values
array<string|int, mixed>

Liste des procure modifiés.

info_plugin_normalise_chemin()

Normaliser la description du chemin

info_plugin_normalise_chemin(array<string|int, mixed> $chemins) : array<string|int, mixed>

Ajoute le clés 'path' (= dir)

Parameters
$chemins : array<string|int, mixed>

Liste des chemins trouvés pour le plugin

Return values
array<string|int, mixed>

Liste des chemins modifiés.

plugins_preparer_sql_paquet()

Pour une description de plugin donnée (issue de la dtd de paquet.xml), prépare les données à installer en bdd

plugins_preparer_sql_paquet(array<string|int, mixed> $plugin) : array<string|int, mixed>

Les données sont parfois sérialisées, parfois compilées pour tenir compte des spécificités de cette DTD et du stockage en bdd.

Parameters
$plugin : array<string|int, mixed>

Description de plugin

Tags
used-by
svp_base_inserer_paquets_locaux()
Return values
array<string|int, mixed>

Couples clés => valeurs de description du paquet

plugins_preparer_sql_plugin()

Pour une description de plugin donnée (issue de la dtd de plugin.xml), prépare les données à installer en bdd

plugins_preparer_sql_plugin(array<string|int, mixed> $plugin) : array<string|int, mixed>

Les données sont parfois sérialisées, parfois transcodées, parfois compilées pour tenir compte des spécificités de cette DTD et du stockage en bdd.

Parameters
$plugin : array<string|int, mixed>

Description de plugin

Tags
uses
compiler_branches_spip()
Return values
array<string|int, mixed>

Couples clés => valeurs de description du paquet

normaliser_lien()

Normalise un lien issu d'un plugin.xml

normaliser_lien(string $url) : string

Éliminer les textes superflus dans les liens (raccourcis [XXX->http...]) et normaliser l'esperluete pour éviter l'erreur d'entité indéfinie

Parameters
$url : string

URL à normaliser

Return values
string

URL normalisée

normaliser_auteur_licence()

Normalise un auteur ou une licence issue d'un plugin.xml

normaliser_auteur_licence(string $texte, string $balise) : array<string|int, mixed>
  • Élimination des multi (exclus dans la nouvelle version)
  • Transformation en attribut des balises A
  • Interprétation des balises BR et LI et de la virgule et du espace+tiret comme séparateurs
Parameters
$texte : string

Texte de la balise

$balise : string

Nom de la balise (auteur | licence)

Tags
uses
_RACCOURCI_LIEN
Return values
array<string|int, mixed>

Tableau listant les auteurs, licences et copyright trouvés

normaliser_multi()

Expanse les multi en un tableau de textes complets, un par langue

normaliser_multi(string $texte) : array<string|int, mixed>
Parameters
$texte : string

Le texte

Return values
array<string|int, mixed>

Texte expansé par code de langue : couples (code de langue => texte)

svp_upgrade()

Installation et mises à jour du plugin

svp_upgrade(string $nom_meta_base_version, string $version_cible) : void

Crée les tables SQL du plugin (spip_depots, spip_plugins, spip_depots_plugins, spip_paquets)

Parameters
$nom_meta_base_version : string

Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP

$version_cible : string

Version du schéma de données dans ce plugin (déclaré dans paquet.xml)

svp_vider_tables()

Désinstallation du plugin

svp_vider_tables(string $nom_meta_base_version) : void

Supprime les tables SQL du plugin (spip_depots, spip_plugins, spip_depots_plugins, spip_paquets)

Parameters
$nom_meta_base_version : string

Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP

Tags
used-by
exec_admin_plugin_dist()

svp_synchroniser_prefixe()

Ajoute le préfixe des plugins dans chaque ligne de paquets

svp_synchroniser_prefixe() : mixed

Cette mise à jour permet de dupliquer le préfixe des plugins dans la ligne des paquets (cette colonne était absente avant) pour plus de simplicité ensuite dans les requêtes SQL.

svp_importer_charset()

Déclarations de fonctions

svp_importer_charset(mixed $texte) : mixed
Parameters
$texte : mixed
Tags
plugin

SVP pour SPIP

license

GPL

svp_afficher_intervalle()

Retourne un texte expliquant l'intervalle de compatibilité avec un plugin ou SPIP

svp_afficher_intervalle(string $intervalle, string $logiciel) : string

Retourne par exemple "2.0 <= SPIP < 3.1"

Parameters
$intervalle : string

L'intervalle tel que déclaré dans paquet.xml. Par exemple "[2.1;3.0.*]"

$logiciel : string

Nom du plugin pour qui est cette intervalle

Return values
string

Texte expliquant l'intervalle

svp_afficher_etat()

Traduit un type d'état de plugin

svp_afficher_etat(string $etat) : string

Si l'état n'existe pas, prendra par défaut 'developpement'

Parameters
$etat : string

Le type d'état (stable, test, ...)

Tags
see
plugin_etat_en_clair()
Return values
string

Traduction de l'état dans la langue en cours

svp_afficher_dependances()

Retourne un texte HTML présentant la liste des dépendances d'un plugin

svp_afficher_dependances(string $balise_serialisee[, string $dependance = 'necessite' ][, string $sep = '<br />' ][, string $lien = 'local' ]) : string

Des liens vers les plugins dépendants sont présents lorsque les plugins en dépendance sont connus dans notre base.

Parameters
$balise_serialisee : string

Informations des dépendances (tableau sérialisé) tel que stocké en base dans la table spip_paquets

$dependance : string = 'necessite'

Type de dépendances à afficher (necessite ou utilise). Une autre valeur indique qu'on demande la liste des librairies dépendantes.

$sep : string = '<br />'

Séparateur entre les noms de dépendances

$lien : string = 'local'

Type de lien affecté au plugin référencé dans la base locale. Prend les valeurs :

  • local : le lien pointe vers la page publique du plugin sur le site lui-même. Il faut donc que le site propose des pages publiques pour les plugins sinon une 404 sera affichée;
  • pluginspip : le lien pointe vers la page du plugin sur le site de référence Plugins SPIP;
  • non : aucun lien n'est affiché.
Tags
uses
svp_afficher_intervalle()
Return values
string

Texte informant des dépendances

svp_afficher_credits()

Retourne un texte HTML présentant les crédits d'un plugin

svp_afficher_credits(string $balise_serialisee[, string $sep = ', ' ]) : string

Des liens vers les crédits sont présents lorsqu'ils sont déclarés dans le paquet.xml.

Parameters
$balise_serialisee : string

Informations des crédits (tableau sérialisé) tel que stocké en base dans la table spip_paquets

$sep : string = ', '

Séparateur entre les différents crédits

Return values
string

Texte informant des crédits

svp_afficher_langues()

Retourne un texte HTML présentant la liste des langues et traducteurs d'un plugin

svp_afficher_langues(array<string|int, mixed> $langues[, string $sep = ', ' ]) : string

Des liens vers les traducteurs sont présents lorsqu'ils sont connus.

Parameters
$langues : array<string|int, mixed>

Tableau code de langue => traducteurs

$sep : string = ', '

Séparateur entre les différentes langues

Return values
string

Texte informant des langues et traducteurs

svp_traduire_type_depot()

Traduit un type de dépot de plugin

svp_traduire_type_depot(string $type) : string
Parameters
$type : string

Type de dépot (svn, git, manuel)

Return values
string

Titre complet et traduit du type de dépot

svp_calculer_url_demo()

Calcule l'url exacte d'un lien de démo en fonction de son écriture

svp_calculer_url_demo(string $url_demo[, bool $url_absolue = false ]) : string
Parameters
$url_demo : string

URL de démonstration telle que saisie dans le paquet.xml

$url_absolue : bool = false

Indique que seules les url absolues doivent être retournées par la fonction. Tous les autres types d'url renvoient une chaine vide

Return values
string

URL calculée en fonction de l'URL d'entrée

critere_compatible_spip_dist()

Critère de compatibilité avec une version précise ou une branche de SPIP ou une liste de branches séparées par une virgule.

critere_compatible_spip_dist(string $idb, array<string|int, mixed> &$boucles, Critere $crit) : void

Fonctionne sur les tables spip_paquets et spip_plugins. Si aucune valeur n'est explicité dans le critère on interroge le contexte pour trouver une variable compatible_spip et sinon tous les objets sont retournés.

Le ! (NOT) ne fonctionne que sur une branche ou une liste de branches SPIP.

Parameters
$idb : string

Identifiant de la boucle

$boucles : array<string|int, mixed>

AST du squelette

$crit : Critere

Paramètres du critère dans cette boucle

Tags
critere
example

{compatible_spip} {compatible_spip 2.0.8} ou {compatible_spip 1.9} {compatible_spip #ENV{vers}} ou {compatible_spip #ENV{vers, 1.9.2}} {compatible_spip #GET{vers}} ou {compatible_spip #GET{vers, 2.1}} {compatible_spip '2.0,2.1'} {!compatible_spip 2.0} {!compatible_spip '2.0,2.1'} {!compatible_spip #ENV{vers}} ou {!compatible_spip #GET{vers}}

filtre_construire_recherche_plugins()

Retourne la liste des plugins trouvés par une recherche

filtre_construire_recherche_plugins([string $phrase = '' ][, string $etat = '' ][, string|int $depot = '' ][, bool|string $afficher_exclusions = true ][, bool|string $afficher_doublons = false ]) : array<string|int, mixed>
Parameters
$phrase : string = ''

Texte de la recherche

$etat : string = ''

État de plugin (stable, test...)

$depot : string|int = ''

Identifiant de dépot

$afficher_exclusions : bool|string = true

Afficher aussi les paquets déjà installés (true ou 'oui') ou ceux qui ne le sont pas (false) ?

$afficher_doublons : bool|string = false

Afficher toutes les versions de paquet (true ou 'oui') ou seulement la plus récente (false) ?

Tags
filtre
Return values
array<string|int, mixed>

Tableau classé par pertinence de résultat

  • 'prefixe' => tableau de description du paquet (si pas de doublons demandé)
  • n => tableau de descriptions du paquet (si doublons autorisés)

filtre_svp_periode_actualisation_depots()

Retourne le nombre d'heures entre chaque actualisation si le cron est activé.

filtre_svp_periode_actualisation_depots() : int
Return values
int

Nombre d'heures (sinon 0)

denormaliser_version()

Retourne 'x.y.z' à partir de '00x.00y.00z'

denormaliser_version([string $version_normalisee = '' ]) : string

Retourne la chaine de la version x.y.z sous sa forme initiale, sans remplissage à gauche avec des 0.

Parameters
$version_normalisee : string = ''

Numéro de version normalisée

Tags
see
normaliser_version()
Return values
string

Numéro de version dénormalisée

test_plugins_auto()

Teste l'utilisation du répertoire auto des plugins.

test_plugins_auto() : bool

Ce répertoire permet de télécharger dedans des plugins lorsqu'il est présent.

Return values
bool

Le répertoire de chargement des plugins auto est-il présent et utilisable ?

filtre_svp_diff_xyz()

Compare 2 numéros de versions et indique le composant principal qui change : X, Y ou Z.

filtre_svp_diff_xyz(string $version1, string $version2) : string
Parameters
$version1 : string

Numéro de version initial

$version2 : string

Numéro de version à comparer

Tags
note

Ne regarde pas si une version est plus récente qu'une autre, donne juste la différence.

note
  • X = version majeure
  • Y = version mineure
  • Z = patch
see
https://semver.org/
Return values
string

x | y | z ou une chaîne vide si pas de différence ou erreur.

filtre_svp_affichage_filtrer_paquets_dist()

Appel a un pipeline pour filtrer eventuellement l'affichage de certains plugins (ie si on a zen-garden actif, les themes ne sont plus affiches dans la gestion des plugins, mais dans le zen garden)

filtre_svp_affichage_filtrer_paquets_dist(int $id_paquet) : bool
Parameters
$id_paquet : int
Return values
bool

svp_ieconfig_metas()

Ajoute les metas sauvegardables de SVP pour le plugin IEConfig

svp_ieconfig_metas(array<string|int, mixed> $table) : array<string|int, mixed>
Parameters
$table : array<string|int, mixed>

Déclaration des sauvegardes

Tags
pipeline

ieconfig_metas

Return values
array<string|int, mixed>

Déclaration des sauvegardes complétées

svp_autoriser()

Fonction du pipeline autoriser. N'a rien à faire

svp_autoriser() : mixed
Tags
pipeline

autoriser

autoriser_depot_iconifier_dist()

Autoriser l'iconification (mettre un logo) d'un dépot

autoriser_depot_iconifier_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Parameters
$faire : string

Action demandée

$type : string

Type d'objet sur lequel appliquer l'action

$id : int

Identifiant de l'objet

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Return values
bool

true s'il a le droit, false sinon

autoriser_plugins_ajouter_dist()

Autoriser l'ajout d'un plugin

autoriser_plugins_ajouter_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool
Parameters
$faire : string

Action demandée

$type : string

Type d'objet sur lequel appliquer l'action

$id : int

Identifiant de l'objet

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Return values
bool

true s'il a le droit, false sinon

autoriser_depots_ajouter_dist()

Autoriser l'ajout d'un dépôt

autoriser_depots_ajouter_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Soit on a l'autorisation de voir un plugin, soit SVP est en mode non runtime

Parameters
$faire : string

Action demandée

$type : string

Type d'objet sur lequel appliquer l'action

$id : int

Identifiant de l'objet

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Return values
bool

true s'il a le droit, false sinon

svp_pre_boucle()

Ne pas afficher par défaut les paquets,dépots,plugins locaux dans les boucles

svp_pre_boucle(Boucle $boucle) : Boucle

On n'affiche dans les boucles (PLUGINS) (DEPOTS) et (PAQUETS) que les éléments distants par défaut (on cache les locaux).

Utiliser {tout} pour tout avoir. Utiliser {tout}{id_depot=0} pour avoir les plugins ou paquets locaux.

Parameters
$boucle : Boucle

Description de la boucle

Tags
pipeline

pre_boucle

Return values
Boucle

Description de la boucle

svp_exclure_id_conditionnel()

Enlever les id_ des tables SVP du critère selections conditionnelles, ailleurs que sur les tables de SVP

svp_exclure_id_conditionnel(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>
Return values
array<string|int, mixed>

svp_jquery_plugins()

Ajoute Bootstrap dropdown aux plugins chargés

svp_jquery_plugins(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>

Liste des js chargés

Return values
array<string|int, mixed>

Liste complétée des js chargés

svp_header_prive_css()

Ajoute Bootstrap dropdown aux css chargées dans le privé

svp_header_prive_css(string $flux) : string
Parameters
$flux : string

Contenu du head HTML concernant les CSS

Return values
string

Contenu du head HTML concernant les CSS

teleporter_git_dist()

Téléporter et déballer un composant GIT

teleporter_git_dist(string $methode, string $source, string $dest[, array<string|int, mixed> $options = [] ]) : bool

Déployer un repository GIT depuis une source et une révision données

Parameters
$methode : string

Méthode de téléportation : http|git|svn|...

$source : string

URL de la source GIT

$dest : string

Chemin du répertoire de destination

$options : array<string|int, mixed> = []

Tableau d'options. Index possibles :

  • revision => 'ae89'
  • branche => 'xxx'
Return values
bool

True si l'opération réussie, false sinon.

teleporter_git_read()

Lire l'état GIT du repository

teleporter_git_read(string $dest[, array<string|int, mixed> $options = [] ]) : string|bool|array<string|int, mixed>

Retourne les informations GIT d'un répertoire donné

Parameters
$dest : string

Chemin du répertoire à tester

$options : array<string|int, mixed> = []

Tableau d'options

Return values
string|bool|array<string|int, mixed>
  • Chaîne vide si pas un dépot GIT
  • False si erreur sur le dépot GIT
  • array sinon. Tableau avec 3 index : -- source : Source du dépot GIT à cette destination -- revision : Révision du dépot -- dest : Répertoire du dépot.

teleporter_git_exec()

Exécuter une commande GIT

teleporter_git_exec(string $dest, string $command) : void
Parameters
$dest : string

Répertoire de destination

$command : string

Commande à exécuter

teleporter_git_tester()

Tester si la commande 'git' est disponible

teleporter_git_tester() : bool
Return values
bool

true si on peut utiliser la commande svn

teleporter_http_dist()

Téléporter et déballer un composant HTTP

teleporter_http_dist(string $methode, string $source, string $dest[, array<string|int, mixed> $options = [] ]) : bool|string
Parameters
$methode : string

Méthode de téléportation : http|git|svn|...

$source : string

URL de la source HTTP

$dest : string

Chemin du répertoire de destination

$options : array<string|int, mixed> = []

Tableau d'options. Doit au moins avoir l'index :

  • dir_tmp : Indique un répertoire temporaire pour stocker les fichiers. Par exemple défini avec : sous_repertoire(_DIR_CACHE, 'chargeur');
Tags
uses
teleporter_http_recuperer_source()
uses
teleporter_nettoyer_vieille_version()
Return values
bool|string

Texte d'erreur si erreur, True si l'opération réussie.

teleporter_http_recuperer_source()

Récupérer la source et détecter son extension

teleporter_http_recuperer_source(string $source, string $dest_tmp) : array<string|int, mixed>|string
Parameters
$source : string

URL de la source HTTP

$dest_tmp : string

Répertoire de destination

Tags
uses
teleporter_http_extension()
used-by
teleporter_http_dist()
Return values
array<string|int, mixed>|string
  • Texte d'erreur si une erreur survient,
  • Liste sinon (répertoire de destination temporaire, extension du fichier source)

teleporter_http_extension()

Retrouve l'extension d'un fichier

teleporter_http_extension(string $file) : string
Parameters
$file : string

Chemin du fichier

Tags
note

Retourne tgz pour un fichier .tar.gz

used-by
teleporter_http_recuperer_source()
Return values
string

Extension du fichier, sinon vide

teleporter_http_deballe_tgz_dist()

Déballer le fichier au format tgz dans le répertoire $dest en utilisant le dossier temporaire $tmp si besoin

teleporter_http_deballe_tgz_dist(string $archive, string $dest, string $tmp) : bool|string
Parameters
$archive : string

Chemin du fichier tgz

$dest : string

Répertoire où on veut décompresser

$tmp : string

Répertoire de stockage temporaire

Tags
uses
teleporter_http_charger_tgz()
Return values
bool|string

Répertoire où a été décompressé le tgz, false sinon.

teleporter_http_charger_tgz()

Charger un tgz à partir d'un tableau d'options descriptives

teleporter_http_charger_tgz([array<string|int, mixed> $quoi = [] ]) : array<string|int, mixed>|bool|int|string
Parameters
$quoi : array<string|int, mixed> = []

Tableau d'options

Tags
uses
SpipArchiver
used-by
teleporter_http_deballe_tgz_dist()
Return values
array<string|int, mixed>|bool|int|string

En cas de réussite, Tableau décrivant le zip, avec les index suivant :

  • files : la liste des fichiers présents dans le zip,
  • size : la taille décompressée
  • compressed_size : la taille compressée
  • dirname : répertoire où les fichiers devront être décompréssés
  • tmpname : répertoire temporaire où les fichiers sont décompressés
  • target : cible sur laquelle décompresser les fichiers...

teleporter_http_deballe_zip_dist()

Déballer le fichier au format zip dans le répertoire $dest en utilisant le dossier temporaire $tmp si besoin

teleporter_http_deballe_zip_dist(string $archive, string $dest, string $tmp) : bool|string
Parameters
$archive : string

Chemin du fichier zip

$dest : string

Répertoire où on veut décompresser

$tmp : string

Répertoire de stockage temporaire

Tags
uses
teleporter_http_charger_zip()
Return values
bool|string

Répertoire où a été décompressé le zip, false sinon.

teleporter_http_charger_zip()

Charger un zip à partir d'un tableau d'options descriptives

teleporter_http_charger_zip([array<string|int, mixed> $quoi = [] ]) : array<string|int, mixed>|bool|int|string
Parameters
$quoi : array<string|int, mixed> = []

Tableau d'options

Tags
uses
SpipArchiver
used-by
teleporter_http_deballe_zip_dist()
Return values
array<string|int, mixed>|bool|int|string

En cas de réussite, Tableau décrivant le zip, avec les index suivant :

  • files : la liste des fichiers présents dans le zip,
  • size : la taille décompressée
  • compressed_size : la taille compressée
  • dirname : répertoire où les fichiers devront être décompréssés
  • tmpname : répertoire temporaire où les fichiers sont décompressés
  • target : cible sur laquelle décompresser les fichiers...

teleporter_svn_dist()

Téléporter et déballer un composant SVN

teleporter_svn_dist(string $methode, string $source, string $dest[, array<string|int, mixed> $options = [] ]) : bool

Déployer un repository SVN depuis une source et une révision données

Parameters
$methode : string

Méthode de téléportation : http|git|svn|...

$source : string

URL de la source SVN

$dest : string

Chemin du répertoire de destination

$options : array<string|int, mixed> = []

Tableau d'options. Index possibles :

  • revision => 'nnn'
  • literal => --ignore-externals
Tags
uses
teleporter_svn_read()
uses
teleporter_nettoyer_vieille_version()
Return values
bool

True si l'opération réussie, false sinon.

teleporter_svn_read()

Lire source et révision d'un répertoire SVN et reconstruire la ligne de commande

teleporter_svn_read(string $dest[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|string
Parameters
$dest : string

Chemin du répertoire SVN

$options : array<string|int, mixed> = []

Options

Tags
used-by
teleporter_svn_dist()
Return values
array<string|int, mixed>|string

Chaîne vide si pas SVN ou erreur de lecture, Tableau sinon avec les index :

  • source : URL de la source SVN
  • revision : numéro de la révision SVN
  • dest : Chemin du répertoire

teleporter_svn_tester()

Tester si la commande 'svn' est disponible

teleporter_svn_tester() : bool
Return values
bool

true si on peut utiliser la commande svn

Search results