Documentation du code de SPIP et de ses plugins

SVP API HTTP

Documentation

Packages

SPIP

Table of Contents

_SVPAPI_CONFIG_CHAMPS  = ['plugin' => [ // SVP référentiel par défaut 'prefixe' => ['svp' => \true, 'type' => ''], 'nom' => ['svp' => \true, 'type' => 'multi'], 'slogan' => ['svp' => \true, 'type' => 'multi'], 'vmax' => ['svp' => \true, 'type' => 'version'], 'date_crea' => ['svp' => \false, 'type' => ''], 'date_modif' => ['svp' => \false, 'type' => ''], 'compatibilite_spip' => ['svp' => \true, 'type' => ''], 'branches_spip' => ['svp' => \true, 'type' => 'liste'], // SVP Statistiques 'nbr_sites' => ['svp' => \false, 'type' => ''], 'popularite' => ['svp' => \false, 'type' => ''], ], 'paquet' => [ // SVP référentiel par défaut 'prefixe' => ['svp' => \true, 'type' => ''], 'logo' => ['svp' => \true, 'type' => ''], 'version' => ['svp' => \true, 'type' => 'version'], 'version_base' => ['svp' => \true, 'type' => 'version'], 'compatibilite_spip' => ['svp' => \true, 'type' => ''], 'branches_spip' => ['svp' => \true, 'type' => 'liste'], 'description' => ['svp' => \true, 'type' => 'multi'], 'auteur' => ['svp' => \true, 'type' => 'serial'], 'credit' => ['svp' => \false, 'type' => 'serial'], 'licence' => ['svp' => \false, 'type' => 'serial'], 'copyright' => ['svp' => \false, 'type' => 'serial'], 'lien_doc' => ['svp' => \true, 'type' => ''], 'lien_demo' => ['svp' => \true, 'type' => ''], 'lien_dev' => ['svp' => \false, 'type' => ''], 'etat' => ['svp' => \true, 'type' => ''], 'etatnum' => ['svp' => \true, 'type' => ''], 'dependances' => ['svp' => \false, 'type' => 'serial'], 'procure' => ['svp' => \false, 'type' => 'serial'], 'date_crea' => ['svp' => \false, 'type' => ''], 'date_modif' => ['svp' => \false, 'type' => ''], 'nom_archive' => ['svp' => \true, 'type' => ''], 'nbo_archive' => ['svp' => \true, 'type' => ''], 'maj_archive' => ['svp' => \true, 'type' => ''], 'src_archive' => ['svp' => \true, 'type' => ''], 'traductions' => ['svp' => \false, 'type' => 'serial'], ]]
Liste des champs des objets plugin ou paquet contenue dans la réponse à l'API et type de normalisation à effectuer sur chaque champ le cas échéant.
svpapi_api_verifier_contexte()  : bool
Détermine si le serveur est capable de répondre aux requêtes SVP.
svpapi_reponse_informer_plugin()  : array<string|int, mixed>
Compléte le bloc d'information du plugin en supprimant le schéma du plugin SVP API qui n'existe pas par celui du plugin SVP sur lequel s'appuie SVP API.
plugins_collectionner()  : array<string|int, mixed>
Récupère la liste des plugins de la table spip_plugins éventuellement filtrés par les critères additionnels positionnés dans la requête.
plugins_ressourcer()  : array<string|int, mixed>
Retourne la description complète d'un plugin et de ses paquets.
plugins_conditionner_compatible_spip()  : string
Construit la condition SQL inhérente au critère de filtre `compatible_spip`.
plugins_verifier_filtre_compatible_spip()  : bool
Détermine si la valeur du critère compatibilité SPIP est valide.
plugins_verifier_ressource_prefixe()  : bool
Détermine si la valeur du préfixe de plugin est valide.
paquets_collectionner()  : array<string|int, mixed>
Récupère la liste des paquets hébergés par le serveur.
paquets_conditionner_compatible_spip()  : string
Construit la condition SQL inhérente au critère de filtre `compatible_spip`.
depots_collectionner()  : array<string|int, mixed>
Récupère la liste des dépôts hébergés par le serveur.
plugin_normaliser_champs()  : array<string|int, mixed>
Transforme, pour un objet plugin ou paquet, les champs sérialisés, multi et liste (chaine d'éléments séparés par une virgule) en tableau et supprime des champs de type version les 0 à gauche des numéros.
plugin_lister_champs()  : array<string|int, mixed>
Renvoie la liste des champs à renvoyer suite à une requête sur les collections paquets ou plugins.
svpapi_liste_ezcollection()  : array<string|int, mixed>
Déclare les collections accessibles via l'API ezREST.

Constants

_SVPAPI_CONFIG_CHAMPS

Liste des champs des objets plugin ou paquet contenue dans la réponse à l'API et type de normalisation à effectuer sur chaque champ le cas échéant.

public mixed _SVPAPI_CONFIG_CHAMPS = ['plugin' => [ // SVP référentiel par défaut 'prefixe' => ['svp' => \true, 'type' => ''], 'nom' => ['svp' => \true, 'type' => 'multi'], 'slogan' => ['svp' => \true, 'type' => 'multi'], 'vmax' => ['svp' => \true, 'type' => 'version'], 'date_crea' => ['svp' => \false, 'type' => ''], 'date_modif' => ['svp' => \false, 'type' => ''], 'compatibilite_spip' => ['svp' => \true, 'type' => ''], 'branches_spip' => ['svp' => \true, 'type' => 'liste'], // SVP Statistiques 'nbr_sites' => ['svp' => \false, 'type' => ''], 'popularite' => ['svp' => \false, 'type' => ''], ], 'paquet' => [ // SVP référentiel par défaut 'prefixe' => ['svp' => \true, 'type' => ''], 'logo' => ['svp' => \true, 'type' => ''], 'version' => ['svp' => \true, 'type' => 'version'], 'version_base' => ['svp' => \true, 'type' => 'version'], 'compatibilite_spip' => ['svp' => \true, 'type' => ''], 'branches_spip' => ['svp' => \true, 'type' => 'liste'], 'description' => ['svp' => \true, 'type' => 'multi'], 'auteur' => ['svp' => \true, 'type' => 'serial'], 'credit' => ['svp' => \false, 'type' => 'serial'], 'licence' => ['svp' => \false, 'type' => 'serial'], 'copyright' => ['svp' => \false, 'type' => 'serial'], 'lien_doc' => ['svp' => \true, 'type' => ''], 'lien_demo' => ['svp' => \true, 'type' => ''], 'lien_dev' => ['svp' => \false, 'type' => ''], 'etat' => ['svp' => \true, 'type' => ''], 'etatnum' => ['svp' => \true, 'type' => ''], 'dependances' => ['svp' => \false, 'type' => 'serial'], 'procure' => ['svp' => \false, 'type' => 'serial'], 'date_crea' => ['svp' => \false, 'type' => ''], 'date_modif' => ['svp' => \false, 'type' => ''], 'nom_archive' => ['svp' => \true, 'type' => ''], 'nbo_archive' => ['svp' => \true, 'type' => ''], 'maj_archive' => ['svp' => \true, 'type' => ''], 'src_archive' => ['svp' => \true, 'type' => ''], 'traductions' => ['svp' => \false, 'type' => 'serial'], ]]

Functions

svpapi_api_verifier_contexte()

Détermine si le serveur est capable de répondre aux requêtes SVP.

svpapi_api_verifier_contexte(array<string|int, mixed> &$erreur) : bool

Pour cela on vérifie si le serveur est en mode run-time ou pas. On considère qu'un serveur en mode run-time n'est pas valide pour traiter les requêtes car la liste des plugins et des paquets n'est pas complète.

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

Tableau initialisé avec les index identifiant l'erreur ou vide si pas d'erreur. Les index mis à jour sont uniquement les suivants car les autres sont initialisés par l'appelant :

  • type : identifiant de l'erreur 501, soit runtime_nok
  • element : type d'objet sur lequel porte l'erreur, soit serveur
  • valeur : la valeur du mode runtime
Return values
bool

true si la valeur est valide, false sinon.

svpapi_reponse_informer_plugin()

Compléte le bloc d'information du plugin en supprimant le schéma du plugin SVP API qui n'existe pas par celui du plugin SVP sur lequel s'appuie SVP API.

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

Le contenu de la réponse dans son état après initialisation.

Return values
array<string|int, mixed>

Le contenu de la réponse avec l'index schema supprimé et remplacé par l'index schema_svp.

plugins_collectionner()

Récupère la liste des plugins de la table spip_plugins éventuellement filtrés par les critères additionnels positionnés dans la requête.

plugins_collectionner(array<string|int, mixed> $conditions, array<string|int, mixed> $filtres, array<string|int, mixed> $configuration) : array<string|int, mixed>

Les plugins fournis sont toujours issus d'un dépôt hébergé par le serveur ce qui exclu les plugins installés sur le serveur et non liés à un dépôt (par exemple un zip personnel). Chaque objet plugin est présenté comme un tableau dont tous les champs sont accessibles comme un type PHP simple, entier, chaine ou tableau.

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

Tableau des conditions SQL à appliquer au select et correspondant aux filtres passés dans la requête et impliquant une condition.

$filtres : array<string|int, mixed>

Tableau des critères de filtrage additionnels à appliquer au select.

$configuration : array<string|int, mixed>

Configuration de la collection plugins.

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

Tableau des plugins dont l'index est le préfixe du plugin. Les champs de type id ou maj ne sont pas renvoyés.

plugins_ressourcer()

Retourne la description complète d'un plugin et de ses paquets.

plugins_ressourcer(string $prefixe, array<string|int, mixed> $filtres, array<string|int, mixed> $configuration) : array<string|int, mixed>
Parameters
$prefixe : string

La valeur du préfixe du plugin.

$filtres : array<string|int, mixed>

Tableau des critères de filtrage additionnels à appliquer au select.

$configuration : array<string|int, mixed>

Configuration de la collection plugins.

Return values
array<string|int, mixed>

La description du plugin et de ses paquets, les champs étant tous normalisés (désérialisés).

plugins_conditionner_compatible_spip()

Construit la condition SQL inhérente au critère de filtre `compatible_spip`.

plugins_conditionner_compatible_spip(string $version) : string
Parameters
$version : string

La valeur du critère compatibilite SPIP : une version, une branche ou une liste de branches séparées par des virgules.

Return values
string

Condition SQL du filtre.

plugins_verifier_filtre_compatible_spip()

Détermine si la valeur du critère compatibilité SPIP est valide.

plugins_verifier_filtre_compatible_spip(string $valeur, array<string|int, mixed> &$erreur) : bool

La fonction compare uniquement la structure de la chaine passée qui doit être cohérente avec un numéro de version ou de branche.

Parameters
$valeur : string

La valeur du critère compatibilite SPIP

$erreur : array<string|int, mixed>

bloc d'erreur à renvoyer dans la réponse en cas d'erreur.

Return values
bool

true si la valeur est valide, false sinon.

plugins_verifier_ressource_prefixe()

Détermine si la valeur du préfixe de plugin est valide.

plugins_verifier_ressource_prefixe(string $prefixe, mixed &$erreur) : bool

La fonction compare uniquement la structure de la chaine passée qui doit être cohérente avec celui d'un nom de variable.

Parameters
$prefixe : string

La valeur du préfixe

$erreur : mixed
Return values
bool

true si la valeur est valide, false sinon.

paquets_collectionner()

Récupère la liste des paquets hébergés par le serveur.

paquets_collectionner(mixed $conditions, array<string|int, mixed> $filtres, array<string|int, mixed> $configuration) : array<string|int, mixed>

C'est la requête de base pour l'installation des plugins par SVP.

Parameters
$conditions : mixed
$filtres : array<string|int, mixed>

Tableau des critères additionnels à appliquer au select (non utilisé).

$configuration : array<string|int, mixed>

Configuration de la collection dépôts utile pour savoir quelle fonction appeler pour construire chaque filtre.

Return values
array<string|int, mixed>

Tableau des dépôts. Les champs de type id ou maj ne sont pas renvoyés.

paquets_conditionner_compatible_spip()

Construit la condition SQL inhérente au critère de filtre `compatible_spip`.

paquets_conditionner_compatible_spip(string $version) : string
Parameters
$version : string

La valeur du critère compatibilite SPIP : une version, une branche ou une liste de branches séparées par des virgules.

Return values
string

Condition SQL du filtre.

depots_collectionner()

Récupère la liste des dépôts hébergés par le serveur.

depots_collectionner(mixed $conditions, array<string|int, mixed> $filtres, array<string|int, mixed> $configuration) : array<string|int, mixed>

Contrairement aux plugins et paquets les champs d'un dépôt ne nécessitent aucun formatage.

Parameters
$conditions : mixed
$filtres : array<string|int, mixed>

Tableau des critères additionnels à appliquer au select (non utilisé).

$configuration : array<string|int, mixed>

Configuration de la collection dépôts utile pour savoir quelle fonction appeler pour construire chaque filtre.

Return values
array<string|int, mixed>

Tableau des dépôts. Les champs de type id ou maj ne sont pas renvoyés.

plugin_normaliser_champs()

Transforme, pour un objet plugin ou paquet, les champs sérialisés, multi et liste (chaine d'éléments séparés par une virgule) en tableau et supprime des champs de type version les 0 à gauche des numéros.

plugin_normaliser_champs(string $type_objet, array<string|int, mixed> $objet) : array<string|int, mixed>
Parameters
$type_objet : string

Type d'objet à normaliser, soit plugin ou paquet.

$objet : array<string|int, mixed>

Tableau des champs de l'objet plugin ou paquet à normaliser.

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

Tableau des champs de l'objet plugin ou paquet normalisés.

plugin_lister_champs()

Renvoie la liste des champs à renvoyer suite à une requête sur les collections paquets ou plugins.

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

Type d'objet à normaliser, soit plugin ou paquet.

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

Permet d'indiquer si la demande est pour SVP (gestion de l'installation des plugins) et le format de la liste souhaitée:

  • pour_svp : true/false (par défaut true)
  • avec_type : true, valeur par défaut, renvoie un tableau [champ] = type, false renvoie juste la liste des champs.
Return values
array<string|int, mixed>

Liste des champs de l'objet plugin ou paquet utiles.

svpapi_liste_ezcollection()

Déclare les collections accessibles via l'API ezREST.

svpapi_liste_ezcollection(array<string|int, mixed> $collections) : array<string|int, mixed>

Par défaut, le plugin propose les collections plugins et depots.

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

Configuration des collections déjà déclarées.

Tags
pipeline

liste_ezcollection

Return values
array<string|int, mixed>

Collections complétées.

Search results