svp_phraser.php
Fichier permettant de phraser les XML des fichiers paquet.xml et plugin.xml ainsi que des fichiers décrivant le contenu d'un dépot de paquets.
Tags
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
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'