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