Documentation du code de SPIP et de ses plugins

Nomenclatures officielles

isocode_utils.php

Ce fichier contient la fonction générique de lecture d'un fichier ou d'une page HTML source en un tableau d'éléments prêt à être inséré dans une table de la base de données.

Dans les fonctions du package, les conventions suivantes sont utilisées:

  • source : désigne le fichier ou la page HTML à partir duquel la table des codes ISO est remplie.
  • contenu : le contenu de la source sous quelque forme que ce soit.
  • élément : un élément du contenu destiné à devenir un enregistrement de la table concernée. Un élément est un tableau de couples (nom, valeur).
  • éléments : liste des éléments constitutifs du contenu de la source.
  • enregistrement : un tableau de couples (champ, valeur) pour un sous-ensemble des champs d'une table.
  • enregistrements : la liste des enregistrements à insérer dans la table concernée.
  • titre : le libellé de la donnée dans la source (par ex, le titre d'une colonne dans un fichier CSV).

Table of Contents

_EXTRAIRE_MULTI  = '@<multi>(.*?)</multi>@sS'
Restaure cette constante à partir de SPIP 4.2.
_ISOCODE_COEFF_MAX_DISTANT  = 5
_ISOCODE_GEOMETRIE_MAX_INSERT  = 50
lire_source()  : array<string|int, mixed>
Constitue, à partir, d'un fichier CSV ou XML ou d'une page HTML au format texte, un tableau des éléments prêt à être inséré dans une table de la base de données.
obtenir_cle_primaire()  : array<string|int, mixed>
Renvoie la clé primaire d'une table spip sous la forme d'une liste de champs.
initialiser_enregistrement()  : array<string|int, mixed>
Initialise un élément d'une table donnée avec les valeurs par défaut configurées dans la déclaration de la base ou avec une valeur prédéfinie par type.
inserer_enregistrements()  : bool
Insère une liste d'enregistrements dans une table donnée.
extraire_contenu_source()  : array<string|int, mixed>
Extrait le contenu d'une page HTML, les données d'une API REST ou le contenu décodé d'un fichier.
extraire_element()  : array<string|int, mixed>
Extraire un enregistrement de l'élément unitaire de contenu provenant de la source.
completer_element()  : array<string|int, mixed>
Complète un enregistrement d'une table en cours de traitement avec les valeurs des champs statiques configurés.
sha_identique()  : bool
Compare le sha passé en argument pour la table concernée avec le sha stocké dans la meta pour cette même table.
compiler_champs()  : array<string|int, mixed>
Compile les différents types de champs de base (basic_fields, basic_ext_fields et static_fields) dans un même tableau.
consigner_chargement()  : void
Consigne les informations de chargement dans la meta adéquate.
deconsigner_chargement()  : void
Supprime la consignation d'un chargement donné.
decoder_xml_json()  : array<string|int, mixed>
Décode un contenu XML ou JSON pour en obtenir un tableau.
configuration_lire()  : mixed
Renvoie la configuration d'un service.
completer_traduction()  : string
Complète un texte sous forme de balise multi avec une liste de traductions.
completer_profondeur()  : array<string|int, mixed>
Compléter une liste d'enregistrements d'une table donnée par les données de profondeur en suivant la configuration idoine du service.

Constants

_EXTRAIRE_MULTI

Restaure cette constante à partir de SPIP 4.2.

public mixed _EXTRAIRE_MULTI = '@<multi>(.*?)</multi>@sS'

Functions

lire_source()

Constitue, à partir, d'un fichier CSV ou XML ou d'une page HTML au format texte, un tableau des éléments prêt à être inséré dans une table de la base de données.

lire_source(string $type, string $service, string $table) : array<string|int, mixed>

La fonction utilise le service et le nom de table pour récupérer la configuration permettant l'analyse du fichier et sa traduction en éléments de la table (délimiteur ou regexp, nom des colonnes...). Il est possible, pour chaque élément ou pour l'ensemble d'appliquer une fonction spécifique à la table qui complète l'élément.

Parameters
$type : string

Type de service. Prend les valeurs nomenclature, infra_subdivision ou geometrie.

$service : string

Identifiant du service.

$table : string

Nom de la table sans le préfixe spip_.

Tags
throws
Exception
Return values
array<string|int, mixed>

Tableau à trois éléments:

  • index 0 : la liste des éléments à enregistrer dans la table concernée
  • index 1 : le sha256 de la source des éléments de la table
  • index 2 : indicateur de sha identique
  • index 3 : l'identifiant du groupe de nomenclatures si il existe, sinon chaine vide

obtenir_cle_primaire()

Renvoie la clé primaire d'une table spip sous la forme d'une liste de champs.

obtenir_cle_primaire(string $table) : array<string|int, mixed>
Parameters
$table : string

Nom de la table sans le préfixe spip_.

Return values
array<string|int, mixed>

Tableau des champs de la clé primaire.

initialiser_enregistrement()

Initialise un élément d'une table donnée avec les valeurs par défaut configurées dans la déclaration de la base ou avec une valeur prédéfinie par type.

initialiser_enregistrement(string $table, array<string|int, mixed> $config_source[, mixed $config_unused = [] ]) : array<string|int, mixed>
Parameters
$table : string

Nom de la table à laquelle l'enregistrement appartient (sans le préfixe spip_).

$config_source : array<string|int, mixed>

Configuration de la correspondance entre le nom de la donnée dans la source et celui du champ dans la table.

$config_unused : mixed = []

Liste des champs de la source non utilisés dans la table destination.

Return values
array<string|int, mixed>

Enregistrement de la table initialisé.

inserer_enregistrements()

Insère une liste d'enregistrements dans une table donnée.

inserer_enregistrements(string $type, string $table, array<string|int, mixed> $enregistrements) : bool

Si la table concerne les types geometrie et infra_subdivision, on gère l'insertion par paquets car ceux§ci peuvent être conséquents.

Parameters
$type : string

Type de service. Prend les valeurs nomenclature, infra_subdivision ou geometrie.

$table : string

Nom de la table sans le préfixe spip_.

$enregistrements : array<string|int, mixed>

Liste des enregistrements prêts à être insérés dans la table concernée.

Return values
bool

true si tout s'est bien passé, false sinon.

extraire_contenu_source()

Extrait le contenu d'une page HTML, les données d'une API REST ou le contenu décodé d'un fichier.

extraire_contenu_source(string $type, string $service, string $table, array<string|int, mixed> $config) : array<string|int, mixed>

Le contenu est renvoyé sous la forme d'une liste d'éléments qui seront traités par la suite pour être insérés dans la table concernée.

Parameters
$type : string

Type de service. Prend les valeurs nomenclature, infra_subdivision ou geometrie.

$service : string

Identifiant du service.

$table : string

Nom de la table sans le préfixe spip_.

$config : array<string|int, mixed>

Configuration de la méthode de lecture de la source pour la table concernée.

Tags
throws
Exception
Return values
array<string|int, mixed>

Tableau à 3 éléments : le contenu, les titres de colonnes (CSV) et le sha.

extraire_element()

Extraire un enregistrement de l'élément unitaire de contenu provenant de la source.

extraire_element(array<string|int, mixed>|string $contenu, array<string|int, mixed> $titres, array<string|int, mixed> $config) : array<string|int, mixed>
Parameters
$contenu : array<string|int, mixed>|string

Elément unitaire de la source en cours de traitement.

$titres : array<string|int, mixed>

Liste des titres de colonne pour une source CSV.

$config : array<string|int, mixed>

Configuration du service.

Return values
array<string|int, mixed>

Tableau de données représentant la part extraite de la source d'un enregistrement de la table en cours de peuplement.

completer_element()

Complète un enregistrement d'une table en cours de traitement avec les valeurs des champs statiques configurés.

completer_element(string $type, string $service, string $table, array<string|int, mixed> $config, array<string|int, mixed> $element) : array<string|int, mixed>
Parameters
$type : string

Type de service. Prend les valeurs nomenclature, infra_subdivision ou geometrie.

$service : string

Identifiant du service.

$table : string

Nom de la table sans le préfixe spip_.

$config : array<string|int, mixed>

Configuration du service.

$element : array<string|int, mixed>

Enregistrement de la table rempli avec la source uniquement.

Return values
array<string|int, mixed>

L'enregistrement complété.

sha_identique()

Compare le sha passé en argument pour la table concernée avec le sha stocké dans la meta pour cette même table.

sha_identique(string $sha, string $table) : bool
Parameters
$sha : string

SHA à comparer à celui de la table.

$table : string

Nom de la table sans préfixe spip_ dont il faut comparer le sha stocké dans sa meta de chargement.

Return values
bool

true si le sha passé en argument est identique au sha stocké pour la table choisie, false sinon.

compiler_champs()

Compile les différents types de champs de base (basic_fields, basic_ext_fields et static_fields) dans un même tableau.

compiler_champs(array<string|int, mixed> $config) : array<string|int, mixed>
Parameters
$config : array<string|int, mixed>

Configuration du service.

Return values
array<string|int, mixed>

Tableau de tous les champs

consigner_chargement()

Consigne les informations de chargement dans la meta adéquate.

consigner_chargement(array<string|int, mixed> $meta, string $type, string $service, string $table) : void
Parameters
$meta : array<string|int, mixed>

Tableau des données de chargement à consigner.

$type : string

Type de service. Prend les valeurs nomenclature, infra_subdivision ou geometrie.

$service : string

Identifiant du service.

$table : string

Nom de la table sans le préfixe spip_.

Return values
void

deconsigner_chargement()

Supprime la consignation d'un chargement donné.

deconsigner_chargement(string $type, string $service, string $table) : void
Parameters
$type : string

Type de service. Prend les valeurs nomenclature, infra_subdivision ou geometrie.

$service : string

Identifiant du service.

$table : string

Nom de la table sans le préfixe spip_.

Return values
void

decoder_xml_json()

Décode un contenu XML ou JSON pour en obtenir un tableau.

decoder_xml_json(string $xml_json, array<string|int, mixed> $config) : array<string|int, mixed>
Parameters
$xml_json : string

Chaine XML ou JSON à décoder.

$config : array<string|int, mixed>

Configuration du service.

Tags
throws
Exception
Return values
array<string|int, mixed>

Tableau résultant du décodage.

configuration_lire()

Renvoie la configuration d'un service.

configuration_lire(string $type, string $service[, null|string $table = '' ][, null|string $variable = '' ][, null|mixed $defaut = [] ]) : mixed
Parameters
$type : string

Type de service. Prend les valeurs nomenclature, infra_subdivision ou geometrie.

$service : string

Identifiant du service.

$table : null|string = ''

Nom de la table sans le préfixe spip_.

$variable : null|string = ''

Nom de la variable ou vide si on veut toute la configuration.

$defaut : null|mixed = []

Valeur par défaut si la variable demandée vaut null.

Return values
mixed

La configuration du service ou une variable donnée.

completer_traduction()

Complète un texte sous forme de balise multi avec une liste de traductions.

completer_traduction(string $multi_in, array<string|int, mixed> $traductions) : string

Les nouvelles traductions, si elles sont non vides, sont soit ajoutées, soit écrasent la traduction courante.

Parameters
$multi_in : string

Chaine au format <multi>.

$traductions : array<string|int, mixed>

Tableau des traductions à ajouter (format [langue] = texte).

Return values
string

Chaine complétée au format <multi>.

completer_profondeur()

Compléter une liste d'enregistrements d'une table donnée par les données de profondeur en suivant la configuration idoine du service.

completer_profondeur(array<string|int, mixed> $enregistrements, array<string|int, mixed> $config_profondeur) : array<string|int, mixed>
Parameters
$enregistrements : array<string|int, mixed>

Liste des enregistrements déjà remplis à compléter.

$config_profondeur : array<string|int, mixed>

Configuration de la profondeur

Return values
array<string|int, mixed>

Liste des enregistrements complétés.

Search results