Documentation du code de SPIP et de ses plugins

SVP

Plugins

Table of Contents

Constants

_SVP_DTD_PAQUET  = 'paquet'
_SVP_DTD_PLUGIN  = 'plugin'
_SVP_MODE_RUNTIME  = \lire_config('svp/mode_runtime', 'oui') == 'oui' ? \true : \false
_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'

Functions

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

Constants

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

Functions

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

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


        
On this page

Search results