Documentation du code de SPIP et de ses plugins

Champs Extras

Fonctions

Table of Contents

Functions

balise_CHAMP_EXTRA_dist()  : Champ
Retourne la description de la saisie du champ demandé permettant ainsi d'exploiter ses données.
calculer_balise_CHAMP_EXTRA()  : mixed
Retourne la description d'un champ extra indiqué
balise_LISTER_CHOIX_dist()  : Champ
Retourne les choix possibles d'un champ extra donné
calculer_balise_LISTER_CHOIX()  : string|array<string|int, mixed>
Retourne les choix possibles d'un champ extra indiqué
balise_LISTER_VALEURS_dist()  : Champ
Liste les valeurs des champs de type liste (enum, radio, case)
calculer_balise_LISTER_VALEURS()  : string|array<string|int, mixed>
Retourne liste des valeurs choisies pour un champ extra indiqué
balise_VOIR_CHAMPS_EXTRAS_dist()  : Champ
Retourne le HTML de la vue des champs extras de la table
champs_extras_voir_saisies()  : string
Retourne le HTML des vues des champs extras d'un objet
extras_log()  : mixed
Log une information
cextras_objets_valides()  : array<string|int, mixed>
Retourne la liste des objets valides utilisables
champs_extras_saisies_lister_avec_sql()  : array<string|int, mixed>
Liste les saisies ayant une definition SQL
saisies_lister_avec_traitements()  : array<string|int, mixed>
Liste les saisies ayant des traitements
champs_extras_saisies_inserer_classe_crayons()  : mixed
Déclarer la classe spécifique à crayons, permettant l'édition d'un champ
champs_extras_creer()  : bool|void
Créer les champs extras (colonnes en base de données) definies par le lot de saisies donné
champs_extras_supprimer()  : bool
Supprimer les champs extras (colonne dans la base de données) definies par le lot de saisies donné
champs_extras_modifier()  : bool
Modifier les champs extras (colonne dans la base de données) definies par le lot de saisies donné
cextras_api_upgrade()  : bool
Complète un tableau de mise à jour de plugin afin d'installer les champs extras.
cextras_api_vider_tables()  : bool
Supprime les champs extras declarés
extras_champs_utilisables()  : array<string|int, mixed>
Liste les tables et les champs que le plugin et spip savent gérer mais qui ne sont pas déclarés à SPIP
extras_champs_anormaux()  : array<string|int, mixed>
Liste les champs anormaux par rapport aux définitions de SPIP
extras_base()  : array<string|int, mixed>
Établit la liste de tous les champs de toutes les tables de la connexion sql donnée
extras_tables()  : array<string|int, mixed>
Liste les tables SQL disponibles de la connexion sql donnée
extras_champs()  : array<string|int, mixed>
Liste les champs dispos dans la table SQL de la connexion sql donnée
cextras_obtenir_saisies_champs_extras()  : array<string|int, mixed>
Retourne les saisies de champs extras d'un objet éditorial indiqué
champs_extras_serialiser()  : string
Serialiser un request d'un champ extra Par défaut, c'est un simple join, mais on peut proposer une fonction `champs_extras_serialiser_<type_de_saisie>` pour surcharg

Functions

balise_CHAMP_EXTRA_dist()

Retourne la description de la saisie du champ demandé permettant ainsi d'exploiter ses données.

balise_CHAMP_EXTRA_dist(Champ $p) : Champ
Parameters
$p : Champ

AST au niveau de la balise

Tags
example
<BOUCLE_x(TABLE)>
- #CHAMP_EXTRA{nom_du_champ}
- #CHAMP_EXTRA{nom_du_champ, label}
</BOUCLE_x>
balise
note

Lève une erreur de squelette si le nom de champs extras n'est pas indiqué en premier paramètre de la balise

Return values
Champ —

AST complété par le code PHP de la balise

calculer_balise_CHAMP_EXTRA()

Retourne la description d'un champ extra indiqué

calculer_balise_CHAMP_EXTRA(string $objet, string $colonne[, string $demande = '' ]) : mixed

Retourne le tableau de description des options de saisies ou un des attributs de ce tableau

Parameters
$objet : string

Type d'objet

$colonne : string

Nom de la colonne SQL

$demande : string = ''

Nom du paramètre demandé. On cherche un nom de clé dans la description :

  • dans le tableau 'options';
  • sinon à la racine (ie. si 'saisie', retourne le type de saisie). Non renseigné, tout le tableau de description est retourné
Return values
mixed —
  • Tableau si toute la description est demandée
  • Indéfini si un élément spécifique de la description est demandé.
  • Chaine vide si le champs extra n'est pas trouvé

balise_LISTER_CHOIX_dist()

Retourne les choix possibles d'un champ extra donné

balise_LISTER_CHOIX_dist(Champ $p) : Champ
Parameters
$p : Champ

AST au niveau de la balise

Tags
example
#LISTER_CHOIX{champ}
#LISTER_CHOIX{champ, " > "}
// ** pour retourner un tableau (cle => valeur),
// ou tableau groupe => tableau (cle => valeur) si déclaration de groupements.
#LISTER_CHOIX**{champ}
balise
Return values
Champ —

AST complété par le code PHP de la balise

calculer_balise_LISTER_CHOIX()

Retourne les choix possibles d'un champ extra indiqué

calculer_balise_LISTER_CHOIX(string $objet, string $colonne[, bool $applatir = true ]) : string|array<string|int, mixed>
Parameters
$objet : string

Type d'objet

$colonne : string

Nom de la colonne SQL

$applatir : bool = true

true pour applatir les choix possibles au premier niveau même si on a affaire à une liste de choix triée par groupe

Tags
note

Le plugin saisies tolère des sélections avec un affichage par groupe (optgroup / options) avec une syntaxe spécifique. Ici nous devons pouvoir applatir toutes les cle => valeur.

Return values
string|array<string|int, mixed> —
  • Tableau des couples (clé => valeur) des choix
  • Chaîne vide si le champs extra n'est pas trouvé

balise_LISTER_VALEURS_dist()

Liste les valeurs des champs de type liste (enum, radio, case)

balise_LISTER_VALEURS_dist(Champ $p) : Champ

Ces champs enregistrent en base la valeur de la clé Il faut donc transcrire clé -> valeur

Parameters
$p : Champ

AST au niveau de la balise

Tags
example
#LISTER_VALEURS{champ}
#LISTER_VALEURS{champ, " > "}
#LISTER_VALEURS**{champ} // retourne un tableau cle/valeur
note

Pour des raisons d'efficacité des requetes SQL le paramètre "champ" ne peut être calculé #LISTER_VALEURS{#GET{champ}} ne peut pas fonctionner.

Si cette restriction est trop limitative, on verra par la suite pour l'instant, on laisse comme ca...

balise
Return values
Champ —

AST complété par le code PHP de la balise

calculer_balise_LISTER_VALEURS()

Retourne liste des valeurs choisies pour un champ extra indiqué

calculer_balise_LISTER_VALEURS(string $objet, string $colonne, string $cles) : string|array<string|int, mixed>
Parameters
$objet : string

Type d'objet

$colonne : string

Nom de la colonne SQL

$cles : string

Valeurs enregistrées pour ce champ dans la bdd pour l'objet en cours

Return values
string|array<string|int, mixed> —
  • Tableau des couples (clé => valeur) des choix
  • Chaîne vide si le champs extra n'est pas trouvé

balise_VOIR_CHAMPS_EXTRAS_dist()

Retourne le HTML de la vue des champs extras de la table

balise_VOIR_CHAMPS_EXTRAS_dist(Champ $p) : Champ
Parameters
$p : Champ

AST au niveau de la balise

Tags
example
<BOUCLE_x(TABLE)>
#VOIR_CHAMPS_EXTRAS
</BOUCLE_x>
balise
Return values
Champ —

AST complété par le code PHP de la balise

champs_extras_voir_saisies()

Retourne le HTML des vues des champs extras d'un objet

champs_extras_voir_saisies(string $objet, int $id_objet[, array<string|int, mixed> $contexte = array() ]) : string
Parameters
$objet : string

Type d'objet

$id_objet : int

Identifiant de l'objet

$contexte : array<string|int, mixed> = array()

Contexte éventuel

Return values
string —

Code HTML

extras_log()

Log une information

extras_log(mixed $contenu[, bool $important = false ]) : mixed
Parameters
$contenu : mixed

Contenu à loger

$important : bool = false

Est-ce une info importante à loger ?

cextras_objets_valides()

Retourne la liste des objets valides utilisables

cextras_objets_valides() : array<string|int, mixed>

C'est à dire les objets dont on peut afficher les champs dans les formulaires, ce qui correspond aux objets éditoriaux déclarés comme avec l'option principale.

Return values
array<string|int, mixed> —

Couples (table sql => description de l'objet éditorial)

champs_extras_saisies_lister_avec_sql()

Liste les saisies ayant une definition SQL

champs_extras_saisies_lister_avec_sql(array<string|int, mixed> $saisies) : array<string|int, mixed>

S'assurer de l'absence de clé, qui fait croire à saisies que le tableau est déjà à plat alors que ce n'est pas forcément encore le cas (ie: il peut y avoir des fieldset à prendre en compte).

Parameters
$saisies : array<string|int, mixed>

liste de saisies

Return values
array<string|int, mixed> —

Liste de ces saisies triees par nom ayant une option sql définie

saisies_lister_avec_traitements()

Liste les saisies ayant des traitements

saisies_lister_avec_traitements(array<string|int, mixed> $saisies[, string $tri = 'nom' ]) : array<string|int, mixed>

Retourne uniquement les saisies ayant traitements à appliquer sur les champs tel que des traitements typo ou traitements raccourcis.

Parameters
$saisies : array<string|int, mixed>

Liste de saisies

$tri : string = 'nom'

Tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')

Return values
array<string|int, mixed> —

Liste de ces saisies triées par nom ayant des traitements définis

champs_extras_saisies_inserer_classe_crayons()

Déclarer la classe spécifique à crayons, permettant l'édition d'un champ

champs_extras_saisies_inserer_classe_crayons(array<string|int, mixed> $saisies, string $type, int $id) : mixed

On complète (ou crée) l'option 'vue_class' avec la classe pour crayonner. On utilise 'conteneur_class' pour les fieldset.

Parameters
$saisies : array<string|int, mixed>
$type : string
$id : int

champs_extras_creer()

Créer les champs extras (colonnes en base de données) definies par le lot de saisies donné

champs_extras_creer(string $table, array<string|int, mixed> $saisies) : bool|void
Parameters
$table : string

Nom de la table SQL

$saisies : array<string|int, mixed>

Description des saisies

Return values
bool|void —

False si pas de table ou aucune saisie de type SQL

champs_extras_supprimer()

Supprimer les champs extras (colonne dans la base de données) definies par le lot de saisies donné

champs_extras_supprimer(string $table, array<string|int, mixed> $saisies) : bool
Parameters
$table : string

Nom de la table SQL

$saisies : array<string|int, mixed>

Description des saisies

Return values
bool —

False si pas de table, aucune saisie de type SQL, ou une suppression en erreur True si toutes les suppressions sont OK

champs_extras_modifier()

Modifier les champs extras (colonne dans la base de données) definies par le lot de saisies donné

champs_extras_modifier(string $table, array<string|int, mixed> $saisies_nouvelles, array<string|int, mixed> $saisies_anciennes) : bool

Permet de changer la structure SQL ou le nom de la colonne des saisies

Parameters
$table : string

Nom de la table SQL

$saisies_nouvelles : array<string|int, mixed>

Description des saisies nouvelles

$saisies_anciennes : array<string|int, mixed>

Description des saisies anciennes

Return values
bool —

True si les changement SQL sont correctement effectués

cextras_api_upgrade()

Complète un tableau de mise à jour de plugin afin d'installer les champs extras.

cextras_api_upgrade(array<string|int, mixed> $declaration_champs_extras, array<string|int, mixed> &$maj_item) : bool
Parameters
$declaration_champs_extras : array<string|int, mixed>

Liste de champs extras à installer, c'est à dire la liste de saisies présentes dans le pipeline declarer_champs_extras() du plugin qui demande l'installation

$maj_item : array<string|int, mixed>

Un des éléments du tableau d'upgrade $maj, il sera complété des actions d'installation des champs extras demandés

Tags
example
cextras_api_upgrade(motus_declarer_champs_extras(), $maj['create']);
Return values
bool —

false si les déclarations sont mal formées true sinon

cextras_api_vider_tables()

Supprime les champs extras declarés

cextras_api_vider_tables(array<string|int, mixed> $declaration_champs_extras) : bool
Parameters
$declaration_champs_extras : array<string|int, mixed>

Liste de champs extras à désinstaller, c'est à dire la liste de saisies présentes dans le pipeline declarer_champs_extras() du plugin qui demande la désinstallation

Tags
example
cextras_api_vider_tables(motus_declarer_champs_extras());
Return values
bool —

false si déclaration mal formée true sinon

extras_champs_utilisables()

Liste les tables et les champs que le plugin et spip savent gérer mais qui ne sont pas déclarés à SPIP

extras_champs_utilisables([string $connect = '' ]) : array<string|int, mixed>
Parameters
$connect : string = ''

Nom du connecteur de base de données

Return values
array<string|int, mixed> —

Tableau (table => couples(colonne => description SQL))

extras_champs_anormaux()

Liste les champs anormaux par rapport aux définitions de SPIP

extras_champs_anormaux([string $connect = '' ]) : array<string|int, mixed>
Parameters
$connect : string = ''

Nom du connecteur de base de données

Tags
note

Aucune garantie que $connect autre que la connexion principale fasse quelque chose

Return values
array<string|int, mixed> —

Tableau (table => couples(colonne => description SQL))

extras_base()

Établit la liste de tous les champs de toutes les tables de la connexion sql donnée

extras_base([string $connect = '' ]) : array<string|int, mixed>

Ignore la table 'spip_test'

Parameters
$connect : string = ''

Nom du connecteur de base de données

Return values
array<string|int, mixed> —

Tableau (table => couples(colonne => description SQL))

extras_tables()

Liste les tables SQL disponibles de la connexion sql donnée

extras_tables([string $connect = '' ]) : array<string|int, mixed>
Parameters
$connect : string = ''

Nom du connecteur de base de données

Return values
array<string|int, mixed> —

Liste de tables SQL

extras_champs()

Liste les champs dispos dans la table SQL de la connexion sql donnée

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

Nom de la table SQL

$connect : string

Nom du connecteur de base de données

Return values
array<string|int, mixed> —

Couples (colonne => description SQL)

cextras_obtenir_saisies_champs_extras()

Retourne les saisies de champs extras d'un objet éditorial indiqué

cextras_obtenir_saisies_champs_extras(string $objet[, int|null $id_objet = null ][, array<string|int, mixed> $options = array() ]) : array<string|int, mixed>

Les saisies sont filtrées, par défaut par l'autorisation de modifier chaque champs extras. Des options peuvent modifier le comportement.

Parameters
$objet : string

Type de l'objet éditorial

$id_objet : int|null = null

Identifiant de l'objet (si connu) peut servir aux autorisations.

$options : array<string|int, mixed> = array()

{ @var string $autoriser 'voir' ou 'modifier' (par défaut) : type d'autorisation testé, appellera voirextra ou modifierextra… @var string[] $whitelist Liste blanche de noms de champs : ces champs seront à afficher, et uniquement eux (modulo l'autorisation sur chaque champ) @var string[] $blacklist Liste noire de noms de champs : ces champs ne seront pas affichés (quelque soit l'autorisation sur chaque champ) }

Return values
array<string|int, mixed> —

Liste de saisies, les champs extras sur l'objet indiqué

champs_extras_serialiser()

Serialiser un request d'un champ extra Par défaut, c'est un simple join, mais on peut proposer une fonction `champs_extras_serialiser_<type_de_saisie>` pour surcharg

champs_extras_serialiser(string $extra, array<string|int, mixed> $saisie) : string
Parameters
$extra : string

la valeur du champ extra

$saisie : array<string|int, mixed>

la saisie décrivant le champ extra

Return values
string —

la valeur sérialisée


        
On this page

Search results