Documentation du code de SPIP et de ses plugins

Champs Extras

Documentation

Table of Contents

Packages

SPIP
Application

Functions

cextras_declarer_tables_objets_sql()  : array<string|int, mixed>
Déclarer les nouveaux champs et les nouvelles infos des objets éditoriaux
cextras_declarer_tables_interfaces()  : array<string|int, mixed>
Déclarer les nouvelles infos sur les champs extras ajoutés en ce qui concerne les traitements automatiques sur les balises.
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
cextras_declarer_champs_apres_les_autres()  : array<string|int, mixed>
Ajouter les déclaration dechamps extras sur les objets éditoriaux
cextras_declarer_champs_interfaces_apres_les_autres()  : array<string|int, mixed>
Ajouter les déclaration d'interface des champs extras pour le compilateur
champs_extras_objet()  : array<string|int, mixed>
Retourne la liste des saisies de champs extras concernant un objet donné
champs_extras_autorisation()  : array<string|int, mixed>
Filtrer par autorisation les saisies transmises
champs_extras_ajouter_drapeau_edition()  : array<string|int, mixed>
Ajoute pour chaque saisie de type SQL un drapeau (input hidden) permettant de retrouver les saisies editées.
cextras_editer_contenu_objet()  : array<string|int, mixed>
Ajouter les champs extras sur les formulaires CVT editer_xx
cextras_pre_edition()  : array<string|int, mixed>
Ajouter les champs extras soumis par les formulaire CVT editer_xx
cextras_afficher_contenu_objet()  : array<string|int, mixed>
Ajouter les champs extras sur la visualisation de l'objet
cextras_appliquer_traitements_saisies()  : array<string|int, mixed>
Pour les saisies transmises, appliquer les traitements sur leurs contenus
cextras_formulaire_verifier()  : array<string|int, mixed>
Vérification de la validité des champs extras
cextras_revisions_chercher_label()  : array<string|int, mixed>
Insertion dans le pipeline revisions_chercher_label (Plugin révisions) Trouver le bon label à afficher sur les champs dans les listes de révisions
cextras_formulaire_fond()  : array<string|int, mixed>
Ajouter les saisies de champs extras sur des formulaires spécifiques
cextras_crayons_controleur()  : array<string|int, mixed>
Définir une fonction de contrôleur pour Crayons si on tente d'éditer un champs extras.
cextras_crayons_verifier()  : array<string|int, mixed>
Vérifier une saisie envoyée depuis un formulaire de Crayons.
cextras_verifier_saisie()  : false|string
Vérifie qu'une valeur est acceptée par la déclaration de saisie transmise.
controleurs_champs_extras_dist()  : array<string|int, mixed>
Controleur de Crayons pour les champs extras déclarés.
cextra_preparer_contexte_crayons()  : array<string|int, mixed>
Prépare le tableau de saisies pour générer le formulaire spécifique à Crayons
controleurs_champs_extras_fieldset_dist()  : array<string|int, mixed>
Controleur de Crayons pour les fieldset de champs extras déclarés.
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
cextras_autoriser()  : mixed
Fonction d'appel pour le pipeline autoriser
champs_extras_restrictions()  : bool
Retourne si une saisie peut s'afficher ou non
autoriser_voirextra_dist()  : bool
Autorisation de voir un champ extra
autoriser_modifierextra_dist()  : bool
Autorisation de modifier un champ extra
restreindre_extras()  : bool
Fonction d'aide pour créer des autorisations de champs spécifiques
_restreindre_extras_objet()  : bool
Fonction d'autorisation interne à la fonction restreindre_extras()
_restreindre_extras_objet_sur_cible()  : bool|int
Fonction d'autorisation interne à la fonction restreindre_extras()
inc_restreindre_extras_objet_sur_branche_dist()  : bool
Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à une branche de rubrique
inc_restreindre_extras_objet_sur_rubrique_dist()  : bool
Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à une rubrique
inc_restreindre_extras_objet_sur_secteur_dist()  : bool
Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à un secteur
inc_restreindre_extras_objet_sur_groupe_dist()  : bool
Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à un groupe de mot
inc_restreindre_extras_objet_sur_groupemot_dist()  : bool
Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à un groupe de mot
inc_restreindre_extras_objet_sur_mot_dist()  : bool
Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test de la présence d'un mot lié
inc_restreindre_extras_objet_sur_composition_dist()  : bool
Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test de la présence d'une composition
vues_champs_extras_dist()  : mixed
Retourner le code HTML de la vue d'un champ (ou plusieurs) champs extras pour Crayons
cextras_preparer_vue()  : array<string|int, mixed>
Préparer le tableau de saisie pour l'affichage
vues_champs_extras_fieldset_dist()  : mixed
Retourner le code HTML de la vue d'un fieldset de champs extras pour Crayons
cextras_saisies_retrouver_fieldset()  : array<string|int, mixed>
Retrouver la saisie fieldset qui contient les champs indiqués.
cextras_saisies_indiquer_parents()  : array<string|int, mixed>
Enregistrer le nom de la saisie parente pour les enfants des fieldset dans chaque enfant, dans la clé `_parent`

Functions

cextras_declarer_tables_objets_sql()

Déclarer les nouveaux champs et les nouvelles infos des objets éditoriaux

cextras_declarer_tables_objets_sql(array<string|int, mixed> $tables) : array<string|int, mixed>

La fonction déclare tous les champs extras (saisies de type sql).

Elle déclare aussi, en fonction des options choisies pour les champs

  • la recherche dans le champs, avec une certaine pondération,
  • le versionnage de champ,
  • l'utilisation par le ctière {vu} du plugin-dist/medias
Parameters
$tables : array<string|int, mixed>

Description des tables

Tags
note

Ne pas utiliser dans le code de cette fonction table_objet() qui ferait une réentrance et des calculs faux. Ni charger public/interfaces trop tôt (qui fait de même) en appelant automatiquement declarer_interfaces()

Du coup, le champ 'traitements' des champs extras ne peut appeler directement les constantes _TRAITEMENT_TYPO ou _TRAITEMENT_RACCOURCIS ; elles sont du coup déclarées, si besoin, en tant que chaine. ie: 'traitements' => '_TRAITEMENT_TYPO', et non 'traitements' => _TRAITEMENT_TYPO,. L’expression correcte est reformée ensuite dans cextras_declarer_tables_interfaces()

On peut aussi utiliser une fonction spécifique, tel que 'traitements' => 'propre(%s)',.

pipeline

declarer_tables_objets_sql

Return values
array<string|int, mixed>

Description complétée des tables

cextras_declarer_tables_interfaces()

Déclarer les nouvelles infos sur les champs extras ajoutés en ce qui concerne les traitements automatiques sur les balises.

cextras_declarer_tables_interfaces(array<string|int, mixed> $interfaces) : array<string|int, mixed>
Parameters
$interfaces : array<string|int, mixed>

Déclarations d'interface pour le compilateur

Tags
note

public/interfaces est forcément chargé ici, vu que c’est lui qui exécute le pipeline...

pipeline

declarer_tables_interfaces

Return values
array<string|int, mixed>

Déclarations d'interface pour le compilateur

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

cextras_declarer_champs_apres_les_autres()

Ajouter les déclaration dechamps extras sur les objets éditoriaux

cextras_declarer_champs_apres_les_autres(array<string|int, mixed> $tables) : array<string|int, mixed>
Parameters
$tables : array<string|int, mixed>

Description des objets éditoriaux

Tags
pipeline

declarer_tables_objets_sql

see
cextras_declarer_tables_objets_sql()
Return values
array<string|int, mixed>

Description des objets éditoriaux

cextras_declarer_champs_interfaces_apres_les_autres()

Ajouter les déclaration d'interface des champs extras pour le compilateur

cextras_declarer_champs_interfaces_apres_les_autres(array<string|int, mixed> $interface) : array<string|int, mixed>
Parameters
$interface : array<string|int, mixed>

Description des interfaces pour le compilateur

Tags
pipeline

declarer_tables_interfaces

see
cextras_declarer_tables_interfaces()
Return values
array<string|int, mixed>

Description des interfaces pour le compilateur

champs_extras_objet()

Retourne la liste des saisies de champs extras concernant un objet donné

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

Nom d'une table SQL éditoriale

Tags
pipeline_appel

declarer_champs_extras

used-by
vues_champs_extras_dist()
used-by
vues_champs_extras_fieldset_dist()
Return values
array<string|int, mixed>

Liste des saisies de champs extras de l'objet

champs_extras_autorisation()

Filtrer par autorisation les saisies transmises

champs_extras_autorisation(string $faire[, string $quoi = '' ][, array<string|int, mixed> $saisies = array() ][, array<string|int, mixed> $args = array() ]) : array<string|int, mixed>

Chacune des saisies est parcourue et si le visiteur n'a pas l'autorisation de la voir, elle est enlevée de la liste. La fonction ne retourne donc que la liste des saisies que peut voir la personne.

Parameters
$faire : string

Type d'autorisation testée : 'voir', 'modifier'

$quoi : string = ''

Type d'objet tel que 'article'

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

Liste des saisies à filtrer

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

Arguments pouvant être utiles à l'autorisation

Return values
array<string|int, mixed>

Liste des saisies filtrées

champs_extras_ajouter_drapeau_edition()

Ajoute pour chaque saisie de type SQL un drapeau (input hidden) permettant de retrouver les saisies editées.

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

Particulièrement utile pour les checkbox qui ne renvoient rien si on les décoche.

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

Liste de saisies

Return values
array<string|int, mixed>

$saisies Saisies complétées des drapeaux d'édition

cextras_editer_contenu_objet()

Ajouter les champs extras sur les formulaires CVT editer_xx

cextras_editer_contenu_objet(array<string|int, mixed> $flux) : array<string|int, mixed>

Liste les champs extras de l'objet, et s'il y en a les ajoute sur le formulaire d'édition en ayant filtré uniquement les saisies que peut voir le visiteur et en ayant ajouté des champs hidden servant à champs extras.

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

Données du pipeline

Tags
pipeline

editer_contenu_objet

Return values
array<string|int, mixed>

Données du pipeline

cextras_pre_edition()

Ajouter les champs extras soumis par les formulaire CVT editer_xx

cextras_pre_edition(array<string|int, mixed> $flux) : array<string|int, mixed>

Pour chaque champs extras envoyé par le formulaire d'édition, ajoute les valeurs dans l'enregistrement à effectuer.

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

Données du pipeline

Tags
pipeline

pre_edition

Return values
array<string|int, mixed>

Données du pipeline

cextras_afficher_contenu_objet()

Ajouter les champs extras sur la visualisation de l'objet

cextras_afficher_contenu_objet(array<string|int, mixed> $flux) : array<string|int, mixed>

S'il y a des champs extras sur l'objet, la fonction les ajoute à la vue de l'objet, en enlevant les saisies que la personne n'a pas l'autorisation de voir.

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

Données du pipeline

Tags
pipeline

afficher_contenu_objet

Return values
array<string|int, mixed>

Données du pipeline

cextras_appliquer_traitements_saisies()

Pour les saisies transmises, appliquer les traitements sur leurs contenus

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

On applique les eventuels traitements definis pour chaque saisie, dans l'option 'traitements'. Si la valeur de l'option correspond à une constante connue (tel que _TRAITEMENTS_RACCOURCIS), ce sera la valeur de la constante qui sera utilisée, sinon directement le texte écrit. Il faut absolument %s pour que cela fonctionne.

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

Liste décrivant les saisies

$valeurs : array<string|int, mixed>

Couples (champ => valeur)

Tags
note

La saisies-vues/_base applique le filtre |propre par défaut si elle ne trouve pas de saisie. Dans ce cas, certains traitements peuvent être effectués 2 fois !

used-by
vues_champs_extras_dist()
used-by
vues_champs_extras_fieldset_dist()
Return values
array<string|int, mixed>

Couples (champ => valeur traitée, le cas échéant)

cextras_formulaire_verifier()

Vérification de la validité des champs extras

cextras_formulaire_verifier(array<string|int, mixed> $flux) : array<string|int, mixed>

Lorsqu'un formulaire 'editer_xx' se présente, la fonction effectue, pour chaque champs extra les vérifications prévues dans la définition de la saisie, et retourne les éventuelles erreurs rencontrées.

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

Données du pipeline

Tags
pipeline

formulaire_verifier

Return values
array<string|int, mixed>

Données du pipeline

cextras_revisions_chercher_label()

Insertion dans le pipeline revisions_chercher_label (Plugin révisions) Trouver le bon label à afficher sur les champs dans les listes de révisions

cextras_revisions_chercher_label(array<string|int, mixed> $flux) : array<string|int, mixed>

Si un champ est un champ extra, son label correspond au label défini du champs extra

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

Données du pipeline

Tags
pipeline

revisions_chercher_label

Return values
array<string|int, mixed>

Données du pipeline

cextras_formulaire_fond()

Ajouter les saisies de champs extras sur des formulaires spécifiques

cextras_formulaire_fond(array<string|int, mixed> $flux) : array<string|int, mixed>

Les champs extras s'ajoutent déjà automatiquement sur les formulaires d'édition des objets éditoriaux. Pour d'autres formulaires plus spécifiques, tel que des formulaires d'inscriptions, il est possible d'envoyer, dans la partie 'charger' du formulaire en question la clé _champs_extras_saisies, listant les saisies à afficher dedans.

Elles seront ajoutées automatiquement à l'endroit où le code html <!--extra--> est présent dans le formulaire.

Parameters
$flux : array<string|int, mixed>
Tags
see
cextras_obtenir_saisies_champs_extras()

qui aide à récupérer les saisies.

pipeline

formulaire_fond

Return values
array<string|int, mixed>

cextras_crayons_controleur()

Définir une fonction de contrôleur pour Crayons si on tente d'éditer un champs extras.

cextras_crayons_controleur(array<string|int, mixed> $flux) : array<string|int, mixed>

Si on édite un champs extras avec Crayons, sans avoir créé manuellement de contrôleur spécifique pour le champ en question, Crayons propose soit un textarea, soit un input.

Vu que l'on connaît les déclarations de nos champs extras, on va les utiliser pour créer un formulaire d'édition plus adapté à notre champ.

Parameters
$flux : array<string|int, mixed>
Tags
pipeline

crayons_controleur

Return values
array<string|int, mixed>

cextras_crayons_verifier()

Vérifier une saisie envoyée depuis un formulaire de Crayons.

cextras_crayons_verifier(array<string|int, mixed> $flux) : array<string|int, mixed>
Parameters
$flux : array<string|int, mixed>
Tags
pipeline

crayons_verifier

Return values
array<string|int, mixed>

cextras_verifier_saisie()

Vérifie qu'une valeur est acceptée par la déclaration de saisie transmise.

cextras_verifier_saisie(array<string|int, mixed> $saisie, mixed $valeur[, mixed &$normaliser = null ][, bool $depuis_crayons = false ]) : false|string

Obsolète, ne plus utiliser. Cextras passe désormais par l'api de verification de saisies, et les plugins qui appellent cette fonction devraient faire de même.

Parameters
$saisie : array<string|int, mixed>
$valeur : mixed
$normaliser : mixed = null

Valeur normalisée, le cas échéant

$depuis_crayons : bool = false

true si en provenance d'une vérification par Crayons.

Tags
deprecated
Return values
false|string

Message d'erreur, le cas echéant.

controleurs_champs_extras_dist()

Controleur de Crayons pour les champs extras déclarés.

controleurs_champs_extras_dist(array<string|int, mixed> $regs[, array<string|int, mixed>|null $c = null ]) : array<string|int, mixed>
Parameters
$regs : array<string|int, mixed>
$c : array<string|int, mixed>|null = null
Return values
array<string|int, mixed>

Liste html, erreur

cextra_preparer_contexte_crayons()

Prépare le tableau de saisies pour générer le formulaire spécifique à Crayons

cextra_preparer_contexte_crayons(array<string|int, mixed> $saisies, array<string|int, mixed> $valeurs, mixed $key[, mixed $profondeur = 0 ]) : array<string|int, mixed>

Enlève certaines informations de la saisie pour simplifier l'édition rapide avec crayons (pas de label, explication, ...).

On prend en compte les champs de type fieldset.

Parameters
$saisies : array<string|int, mixed>
$valeurs : array<string|int, mixed>
$key : mixed
$profondeur : mixed = 0
Return values
array<string|int, mixed>

Contexte pour le controleur champs extras du formulaire de crayons

controleurs_champs_extras_fieldset_dist()

Controleur de Crayons pour les fieldset de champs extras déclarés.

controleurs_champs_extras_fieldset_dist(array<string|int, mixed> $regs[, array<string|int, mixed>|null $c = null ]) : array<string|int, mixed>
Parameters
$regs : array<string|int, mixed>
$c : array<string|int, mixed>|null = null
Return values
array<string|int, mixed>

Liste html, erreur

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

cextras_autoriser()

Fonction d'appel pour le pipeline autoriser

cextras_autoriser() : mixed
Tags
pipeline

autoriser

champs_extras_restrictions()

Retourne si une saisie peut s'afficher ou non

champs_extras_restrictions(array<string|int, mixed> $saisie, string $action, string $table, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Teste les options de restrictions de la saisie si il y en a et calcule en fonction l'autorisation

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

Saisie que l'on traite.

$action : string

Le type d'action : voir | modifier

$table : string

La table d'application : spip_articles

$id : int

Identifiant de la table : 3

$qui : array<string|int, mixed>

Description de l'auteur en cours

$opt : array<string|int, mixed>

Options de l'autorisation

Return values
bool

La saisie peut elle s'afficher ?

autoriser_voirextra_dist()

Autorisation de voir un champ extra

autoriser_voirextra_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Cherche une autorisation spécifique pour le champ si elle existe (autoriser_{objet}voirextra{colonne}_dist), sinon applique l'autorisation prévue par la description de la saisie

Parameters
$faire : string

Action demandée

$type : string

Type d'objet sur lequel appliquer l'action

$id : int

Identifiant de l'objet

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
example
autoriser('voirextra','auteur', $id_auteur,'',
    array('champ'=>'prenom', 'saisie'=>$saisie, ...));

Appelle autoriser_auteur_voirextra_prenom_dist() si la fonction existe...

Return values
bool

true s'il a le droit, false sinon

autoriser_modifierextra_dist()

Autorisation de modifier un champ extra

autoriser_modifierextra_dist(string $faire, string $type, int $id, array<string|int, mixed> $qui, array<string|int, mixed> $opt) : bool

Cherche une autorisation spécifique pour le champ si elle existe (autoriser_{objet}modifierextra{colonne}_dist), sinon applique l'autorisation prévue par la description de la saisie

Parameters
$faire : string

Action demandée

$type : string

Type d'objet sur lequel appliquer l'action

$id : int

Identifiant de l'objet

$qui : array<string|int, mixed>

Description de l'auteur demandant l'autorisation

$opt : array<string|int, mixed>

Options de cette autorisation

Tags
example
autoriser('modifierextra','auteur', $id_auteur,'',
    array('champ'=>'prenom', 'saisie'=>$saisie, ...));

Appelle autoriser_auteur_modifierextra_prenom_dist() si elle existe

Return values
bool

true s'il a le droit, false sinon

restreindre_extras()

Fonction d'aide pour créer des autorisations de champs spécifiques

restreindre_extras(string $objet[, mixed $noms = array() ][, mixed $ids = array() ][, string $cible = 'rubrique' ][, bool $recursif = false ]) : bool

Permet d'indiquer que tels champs extras se limitent à telle ou telle rubrique et cela en créant à la volée les fonctions d'autorisations adéquates.

Parameters
$objet : string

Objet possédant les extras

$noms : mixed = array()

Nom des extras a restreindre

$ids : mixed = array()

Identifiant (des rubriques par defaut) sur lesquelles s'appliquent les champs

$cible : string = 'rubrique'

Type de la fonction de test qui sera appelee, par defaut "rubrique". Peut aussi etre "secteur", "groupe" ou des fonctions definies

$recursif : bool = false

Application recursive sur les sous rubriques ? ATTENTION, c'est gourmand en requetes SQL :)

Tags
example
restreindre_extras('article', array('nom', 'prenom'), array(8, 12));
restreindre_extras('site', 'url_doc', 18, true); // recursivement aux sous rubriques
Return values
bool

true si on a fait quelque chose

_restreindre_extras_objet()

Fonction d'autorisation interne à la fonction restreindre_extras()

_restreindre_extras_objet(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids[, string $cible = 'rubrique' ][, bool $recursif = false ]) : bool

Teste si un objet à le droit d'afficher des champs extras en fonction de la rubrique (ou autre defini dans la cible) dans laquelle il se trouve et des rubriques autorisées

On met en cache pour éviter de plomber le serveur SQL, vu que la plupart du temps un hit demandera systématiquement le même objet/id_objet lorsqu'il affiche un formulaire.

Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) (en rapport avec la cible) sur lesquelles s'appliquent les champs

$cible : string = 'rubrique'

Type de la fonction de test qui sera appelee, par defaut "rubrique". Peut aussi etre "secteur", "groupe" ou des fonctions definies

$recursif : bool = false

Application recursive sur les sous rubriques ? ATTENTION, c'est gourmand en requetes SQL :)

Return values
bool

Autorisé ou non

_restreindre_extras_objet_sur_cible()

Fonction d'autorisation interne à la fonction restreindre_extras()

_restreindre_extras_objet_sur_cible(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids, bool $_id_cible) : bool|int

Teste si un objet à le droit d'afficher des champs extras en fonction de la rubrique (ou autre defini dans la cible) dans laquelle il se trouve et des rubriques autorisées

Le dernier argument donne la colonne à chercher dans l'objet correspondant

Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) (en rapport avec la cible) sur lesquelles s'appliquent les champs

$_id_cible : bool

Nom de la colonne SQL cible (id_rubrique, id_secteur, id_groupe...)

Return values
bool|int
  • true : autorisé,
  • false : non autorisé,
  • 0 : incertain.

inc_restreindre_extras_objet_sur_branche_dist()

Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à une branche de rubrique

inc_restreindre_extras_objet_sur_branche_dist(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids, bool $recursif) : bool
Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) des branches de rubrique sur lesquelles s'appliquent les champs

$recursif : bool

Non utilisé

Tags
note

ATTENTION, c'est gourmand en requetes SQL :)

see
inc_restreindre_extras_objet_sur_rubrique_dist()
Return values
bool

Autorisé ou non

inc_restreindre_extras_objet_sur_rubrique_dist()

Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à une rubrique

inc_restreindre_extras_objet_sur_rubrique_dist(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids, bool $recursif) : bool
Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) des rubriques sur lesquelles s'appliquent les champs

$recursif : bool

Application récursive sur les sous rubriques ? ATTENTION, c'est gourmand en requetes SQL :)

Return values
bool

Autorisé ou non

inc_restreindre_extras_objet_sur_secteur_dist()

Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à un secteur

inc_restreindre_extras_objet_sur_secteur_dist(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids[, bool $recursif = false ]) : bool
Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) des secteurs sur lesquelles s'appliquent les champs

$recursif : bool = false

Non utilisé

Return values
bool

Autorisé ou non

inc_restreindre_extras_objet_sur_groupe_dist()

Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à un groupe de mot

inc_restreindre_extras_objet_sur_groupe_dist(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids, bool $recursif) : bool

Alias de groupemot

Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) des groupes de mots sur lesquelles s'appliquent les champs

$recursif : bool

True pour appliquer aux branches d'un groupe de mot (avec plugin spécifique groupe de mots arborescents)

Tags
see
inc_restreindre_extras_objet_sur_groupemot_dist()
Return values
bool

Autorisé ou non

inc_restreindre_extras_objet_sur_groupemot_dist()

Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test d'appartenance à un groupe de mot

inc_restreindre_extras_objet_sur_groupemot_dist(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids, bool $recursif) : bool
Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) des groupes de mots sur lesquelles s'appliquent les champs

$recursif : bool

True pour appliquer aux branches d'un groupe de mot (avec plugin spécifique groupe de mots arborescents)

Return values
bool

Autorisé ou non

inc_restreindre_extras_objet_sur_mot_dist()

Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test de la présence d'un mot lié

inc_restreindre_extras_objet_sur_mot_dist(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids, bool $recursif) : bool
Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) des mots sur lesquels s'appliquent les champs

$recursif : bool

Inutile, la récursivité est prise en charge par compositions_determiner()

Return values
bool

Autorisé ou non

inc_restreindre_extras_objet_sur_composition_dist()

Fonction d'autorisation interne à la fonction restreindre_extras() spécifique au test de la présence d'une composition

inc_restreindre_extras_objet_sur_composition_dist(string $objet, int $id_objet, array<string|int, mixed> $opt, mixed $ids, bool $recursif) : bool
Parameters
$objet : string

Objet possédant les extras

$id_objet : int

Identifiant de l'objet possédant les extras

$opt : array<string|int, mixed>

Options des autorisations

$ids : mixed

Identifiant(s) des compositions sur lesquelles s'appliquent les champs

$recursif : bool

Inutile, la récursivité est prise en charge par compositions_determiner()

Return values
bool

Autorisé ou non

vues_champs_extras_dist()

Retourner le code HTML de la vue d'un champ (ou plusieurs) champs extras pour Crayons

vues_champs_extras_dist(string $type, string $modele, int $id, array<string|int, mixed> $content,  $wid) : mixed
Parameters
$type : string

Type d'objet

$modele : string

Nom du modèle donné par le contrôleur

$id : int

Identifiant de l'objet

$content : array<string|int, mixed>

Couples champs / valeurs postés.

$wid :

Identifiant du formulaire

Tags
uses
champs_extras_objet()
uses
champs_extras_saisies_lister_avec_sql()
uses
cextras_appliquer_traitements_saisies()
uses
cextras_preparer_vue()

cextras_preparer_vue()

Préparer le tableau de saisie pour l'affichage

cextras_preparer_vue(array<string|int, mixed> $saisies[, bool $affichage_reduit = false ]) : array<string|int, mixed>
Parameters
$saisies : array<string|int, mixed>
$affichage_reduit : bool = false
Tags
used-by
vues_champs_extras_dist()
used-by
vues_champs_extras_fieldset_dist()
Return values
array<string|int, mixed>

vues_champs_extras_fieldset_dist()

Retourner le code HTML de la vue d'un fieldset de champs extras pour Crayons

vues_champs_extras_fieldset_dist(string $type, string $modele, int $id, array<string|int, mixed> $content,  $wid) : mixed
Parameters
$type : string

Type d'objet

$modele : string

Nom du modèle donné par le contrôleur

$id : int

Identifiant de l'objet

$content : array<string|int, mixed>

Couples champs / valeurs postés.

$wid :

Identifiant du formulaire

Tags
note

On perd l'information du nom de notre fieldset. On ne reçoit que le nom des champs qui ont été postés et qui correspondent à des champs dans la base de données.

uses
champs_extras_objet()
uses
champs_extras_saisies_lister_avec_sql()
uses
cextras_appliquer_traitements_saisies()
uses
cextras_preparer_vue()

cextras_saisies_retrouver_fieldset()

Retrouver la saisie fieldset qui contient les champs indiqués.

cextras_saisies_retrouver_fieldset(array<string|int, mixed> $saisies, array<string|int, mixed> $noms) : array<string|int, mixed>
Parameters
$saisies : array<string|int, mixed>
$noms : array<string|int, mixed>
Return values
array<string|int, mixed>

cextras_saisies_indiquer_parents()

Enregistrer le nom de la saisie parente pour les enfants des fieldset dans chaque enfant, dans la clé `_parent`

cextras_saisies_indiquer_parents(array<string|int, mixed> $saisies) : array<string|int, mixed>
Parameters
$saisies : array<string|int, mixed>
Return values
array<string|int, mixed>

Search results