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