Documentation du code de SPIP et de ses plugins

SVP

Fonctions

Table of Contents

Constants

_SVP_VERSION_SPIP_MAX  = '5.0.999'
Version SPIP maximale
_SVP_VERSION_SPIP_MIN  = '1.9.0'
Version SPIP minimale quand un plugin ne le precise pas

Functions

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 UTF-8
entite2utf8()  : string
Transforme un texte écrit en entités HTML, dans le charset UTF-8
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_importer_charset()  : mixed
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()  : mixed
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)

Constants

_SVP_VERSION_SPIP_MAX

Version SPIP maximale

public mixed _SVP_VERSION_SPIP_MAX = '5.0.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

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

Utiliser entite2utf8 à la place

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

Texte avec des entités HTML

$charset : mixed = null
Return values
string

Texte UTF-8

entite2utf8()

Transforme un texte écrit en entités HTML, dans le charset UTF-8

entite2utf8(string $texte) : string
Parameters
$texte : string

Texte avec des entités HTML

Return values
string

Texte UTF-8

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

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

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

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

        
On this page

Search results