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>
-
-
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
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
-
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
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
-
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
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
-
-
$colonne
: string
-
-
$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
-
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
-
-
$colonne
: string
-
-
$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
-
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
-
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
-
-
$colonne
: string
-
-
$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é
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
-
example
-
<BOUCLE_x(TABLE)>
#VOIR_CHAMPS_EXTRAS
</BOUCLE_x>
-
balise
-
Return values
Champ
—
AST complété par le code PHP de la balise
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
-
-
$id_objet
: int
-
-
$contexte
: array<string|int, mixed>
= array()
-
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
-
pipeline
-
declarer_tables_objets_sql
-
see
-
cextras_declarer_tables_objets_sql()
Return values
array<string|int, mixed>
—
Description des objets éditoriaux
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
-
pipeline
-
declarer_tables_interfaces
-
see
-
cextras_declarer_tables_interfaces()
Return values
array<string|int, mixed>
—
Description des interfaces pour le compilateur
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
-
pipeline_appel
-
-
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
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
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>
-
Return values
array<string|int, mixed>
—
$saisies
Saisies complétées des drapeaux d'édition
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>
-
-
pipeline
-
Return values
array<string|int, mixed>
—
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>
-
-
pipeline
-
Return values
array<string|int, mixed>
—
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>
-
-
pipeline
-
Return values
array<string|int, mixed>
—
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)
-
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)
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>
-
-
pipeline
-
Return values
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_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>
-
-
pipeline
-
Return values
array<string|int, mixed>
—
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>
-
-
see
-
cextras_obtenir_saisies_champs_extras()
qui aide à récupérer les saisies.
-
pipeline
-
Return values
array<string|int, mixed>
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>
-
-
pipeline
-
Return values
array<string|int, mixed>
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>
-
-
pipeline
-
Return values
array<string|int, mixed>
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.
Return values
false|string
—
Message d'erreur, le cas echéant.
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>
—
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
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>
—
Log une information
extras_log(mixed $contenu[, bool $important = false ]) : mixed
Parameters
-
$contenu
: mixed
-
-
$important
: bool
= false
-
Est-ce une info importante à loger ?
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)
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>
-
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>
-
-
$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
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
-
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
-
-
$saisies
: array<string|int, mixed>
-
Return values
bool|void
—
False si pas de table ou aucune saisie de type SQL
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
-
-
$saisies
: array<string|int, mixed>
-
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
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
-
-
$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
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
-
example
-
cextras_api_upgrade(motus_declarer_champs_extras(), $maj['create']);
Return values
bool
—
false si les déclarations sont mal formées
true sinon
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
-
example
-
cextras_api_vider_tables(motus_declarer_champs_extras());
Return values
bool
—
false si déclaration mal formée
true sinon
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))
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
-
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))
É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))
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 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
-
-
$connect
: string
-
Nom du connecteur de base de données
Return values
array<string|int, mixed>
—
Couples (colonne => description SQL)
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é
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
-
-
$saisie
: array<string|int, mixed>
-
la saisie décrivant le champ extra
Fonction d'appel pour le pipeline autoriser
cextras_autoriser() : mixed
-
pipeline
-
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>
-
-
$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 ?
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
-
-
$type
: string
-
Type d'objet sur lequel appliquer l'action
-
$id
: int
-
-
$qui
: array<string|int, mixed>
-
Description de l'auteur demandant l'autorisation
-
$opt
: array<string|int, mixed>
-
Options de cette autorisation
-
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
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
-
-
$type
: string
-
Type d'objet sur lequel appliquer l'action
-
$id
: int
-
-
$qui
: array<string|int, mixed>
-
Description de l'auteur demandant l'autorisation
-
$opt
: array<string|int, mixed>
-
Options de cette autorisation
-
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
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 :)
-
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
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 :)
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.
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
-
-
note
-
ATTENTION, c'est gourmand en requetes SQL :)
-
see
-
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 :)
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
-
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
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)
-
see
-
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)
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()
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()
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, mixed $wid) : mixed
Parameters
-
$type
: string
-
-
$modele
: string
-
Nom du modèle donné par le contrôleur
-
$id
: int
-
-
$content
: array<string|int, mixed>
-
Couples champs / valeurs postés.
-
$wid
: mixed
-
Identifiant du formulaire
-
uses
-
champs_extras_objet()
-
uses
-
champs_extras_saisies_lister_avec_sql()
-
uses
-
cextras_appliquer_traitements_saisies()
-
uses
-
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
-
-
used-by
-
vues_champs_extras_dist()
-
used-by
-
vues_champs_extras_fieldset_dist()
Return values
array<string|int, mixed>
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, mixed $wid) : mixed
Parameters
-
$type
: string
-
-
$modele
: string
-
Nom du modèle donné par le contrôleur
-
$id
: int
-
-
$content
: array<string|int, mixed>
-
Couples champs / valeurs postés.
-
$wid
: mixed
-
Identifiant du formulaire
-
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()
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>
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>