editer.php
SPIP, Système de publication pour l'internet
Copyright © avec tendresse depuis 2001 Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James
Ce programme est un logiciel libre distribué sous licence GNU/GPL.
Table of Contents
Functions
- formulaires_editer_objet_traiter() : array<string|int, mixed>
- Effectue les traitements d'un formulaire d'édition d'objet éditorial
- formulaires_editer_objet_verifier() : array<string|int, mixed>
- Teste les erreurs de validation d'un formulaire d'édition d'objet éditorial
- formulaires_editer_objet_charger() : array<string|int, mixed>
- Construit les valeurs de chargement d'un formulaire d'édition d'objet éditorial
- coupe_trop_long() : array<string|int, mixed>
- Gestion des textes trop longs (limitation brouteurs) utile pour les textes > 32ko
- titre_automatique() : mixed
- auto-renseigner le titre si il n'existe pas
- inc_titrer_contenu_dist() : string
- Déterminer un titre automatique, à partir des champs textes de contenu
- controles_md5() : string|array<string|int, mixed>
- Calcule des clés de contrôles md5 d'un tableau de données.
- controler_contenu() : bool|null|array<string|int, mixed>
- Contrôle les contenus postés d'un objet en vérifiant qu'il n'y a pas de conflit d'édition
- controler_md5() : null|array<string|int, mixed>
- Contrôle la liste des md5 envoyés, supprime les inchangés, signale les modifiés depuis telle date
- display_conflit_champ() : string
- Afficher le contenu d'un champ selon sa longueur soit dans un `textarea`, soit dans un `input`
Functions
formulaires_editer_objet_traiter()
Effectue les traitements d'un formulaire d'édition d'objet éditorial
formulaires_editer_objet_traiter(string $type[, int|string $id = 'new' ][, int $id_parent = 0 ][, int $lier_trad = 0 ][, string $retour = '' ][, string $config_fonc = 'articles_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
Exécute une action d'édition spécifique au type d'objet s'il elle existe (fonction action_editer_$type), sinon exécute l'action générique d'édition d'objet (action_editer_objet_dist())
Si une traduction était demandée, crée le lien avec l'objet qui est traduit.
Parameters
- $type : string
-
Type d'objet
- $id : int|string = 'new'
-
Identifiant de l'objet à éditer, 'new' pour un nouvel objet
- $id_parent : int = 0
-
Identifiant de l'objet parent
- $lier_trad : int = 0
-
Identifiant de l'objet servant de source à une nouvelle traduction
- $retour : string = ''
-
URL de redirection après les traitements
- $config_fonc : string = 'articles_edit_config'
-
Nom de fonction appelée au chargement permettant d'ajouter des valeurs de configurations dans l'environnement du formulaire
- $row : array<string|int, mixed> = []
-
Ligne SQL de l'objet édité, si connu. En absence, les données sont chargées depuis l'objet en base s'il existe ou depuis l'objet source d'une traduction si c'est un nouvel objet (et une traduction).
- $hidden : string = ''
-
Contenu HTML ajouté en même temps que les champs cachés (input hidden) du formulaire.
Tags
Return values
array<string|int, mixed> —Retour des traitements.
formulaires_editer_objet_verifier()
Teste les erreurs de validation d'un formulaire d'édition d'objet éditorial
formulaires_editer_objet_verifier(string $type[, int|string $id = 'new' ][, array<string|int, mixed> $oblis = [] ]) : array<string|int, mixed>
La fonction teste que :
- il n'y a pas de conflit d'édition sur un ou plusieurs champs (c'est à dire que personne d'autre n'a modifié le champ entre le moment où on a saisi et le moment où on a validé le formulaire
- tous les champs obligatoires (listés dans $oblis) sont remplis.
Parameters
- $type : string
-
Type d'objet
- $id : int|string = 'new'
-
Identifiant de l'objet à éditer, 'new' pour un nouvel objet
- $oblis : array<string|int, mixed> = []
-
Liste de champs obligatoires : ils doivent avoir un contenu posté.
Return values
array<string|int, mixed> —Tableau des erreurs
formulaires_editer_objet_charger()
Construit les valeurs de chargement d'un formulaire d'édition d'objet éditorial
formulaires_editer_objet_charger(string $type[, int|string $id = 'new' ][, int|null $id_parent = 0 ][, int $lier_trad = 0 ][, string $retour = '' ][, string $config_fonc = 'articles_edit_config' ][, array<string|int, mixed> $row = [] ][, string $hidden = '' ]) : array<string|int, mixed>
La fonction calcule les valeurs qui seront transmises à l'environnement du formulaire pour son affichage. Ces valeurs sont les champs de l'objet éditorial d'une part, mais aussi d'autres calculant la clé d'action, les pipelines devant faire transiter le contenu HTML du formulaire, ainsi que différents champs cachés utilisés ensuite dans les traitements.
Lorsqu'une création d'objet est demandée, ou lorsqu'on demande une traduction d'un autre, la fonction tente de précharger le contenu de l'objet en utilisant une fonction inc_precharger_{type}_dist permettant par exemple de remplir le contenu avec du texte, notamment avec la traduction source.
Parameters
- $type : string
-
Type d'objet
- $id : int|string = 'new'
-
Identifiant de l'objet à éditer, 'new' pour un nouvel objet
- $id_parent : int|null = 0
-
Identifiant de l'objet parent Si null, le calcule d'après le résultat de la fonction
precharger_objet()
. - $lier_trad : int = 0
-
Identifiant de l'objet servant de source à une nouvelle traduction
- $retour : string = ''
-
URL de redirection après les traitements
- $config_fonc : string = 'articles_edit_config'
-
Nom de fonction appelée au chargement permettant d'ajouter des valeurs de configurations dans l'environnement du formulaire
- $row : array<string|int, mixed> = []
-
Ligne SQL de l'objet édité, si connu. En absence, les données sont chargées depuis l'objet en base s'il existe ou depuis l'objet source d'une traduction si c'est un nouvel objet (et une traduction).
- $hidden : string = ''
-
Contenu HTML ajouté en même temps que les champs cachés (input hidden) du formulaire.
Return values
array<string|int, mixed> —Environnement du formulaire.
coupe_trop_long()
Gestion des textes trop longs (limitation brouteurs) utile pour les textes > 32ko
coupe_trop_long(string $texte) : array<string|int, mixed>
Parameters
- $texte : string
Return values
array<string|int, mixed>titre_automatique()
auto-renseigner le titre si il n'existe pas
titre_automatique(string $champ_titre, array<string|int, mixed> $champs_contenu[, int $longueur = null ]) : mixed
Parameters
- $champ_titre : string
- $champs_contenu : array<string|int, mixed>
- $longueur : int = null
inc_titrer_contenu_dist()
Déterminer un titre automatique, à partir des champs textes de contenu
inc_titrer_contenu_dist(array<string|int, mixed> $champs_contenu[, array<string|int, mixed>|null $c = null ][, int $longueur = 50 ]) : string
Les textes et le titre sont pris dans les champs postés (via _request()
)
et le titre calculé est de même affecté en tant que champ posté.
Parameters
- $champs_contenu : array<string|int, mixed>
-
Liste des champs contenu textuels
- $c : array<string|int, mixed>|null = null
-
tableau qui contient les valeurs des champs de contenu si
null
on utilise les valeurs du POST - $longueur : int = 50
-
Longueur de coupe du texte
Return values
stringcontroles_md5()
Calcule des clés de contrôles md5 d'un tableau de données.
controles_md5(array<string|int, mixed> $data[, string $prefixe = 'ctr_' ][, string $format = 'html' ]) : string|array<string|int, mixed>
Produit la liste des md5 d'un tableau de données, normalement un tableau des colonnes/valeurs d'un objet éditorial.
Parameters
- $data : array<string|int, mixed>
-
Couples (colonne => valeur). La valeur est un entier ou un texte.
- $prefixe : string = 'ctr_'
-
Préfixe à appliquer sur les noms des clés de contrôles, devant le nom de la colonne
- $format : string = 'html'
-
- html : Retourne les contrôles sous forme de input hidden pour un formulaire
- autre : Retourne le tableau ('$prefixe$colonne => md5)
Return values
string|array<string|int, mixed> —- string (avec format html) : contrôles dans des input hidden
- array sinon couples ('$prefixe$colonne => md5)
controler_contenu()
Contrôle les contenus postés d'un objet en vérifiant qu'il n'y a pas de conflit d'édition
controler_contenu(string $type, int $id[, array<string|int, mixed> $options = [] ][, array<string|int, mixed>|bool $c = false ][, string $serveur = '' ]) : bool|null|array<string|int, mixed>
Repère les conflits d'édition sur un ou plusieurs champs. C'est à dire lorsqu'une autre personne a modifié le champ entre le moment où on a édité notre formulaire et le moment où on a validé le formulaire
Parameters
- $type : string
-
Type d'objet
- $id : int
-
Identifiant de l'objet
- $options : array<string|int, mixed> = []
-
Tableau d'options. Accèpte les index :
- nonvide : Couples (colonne => valeur par défaut). Tous les champs postés qui sont vides, s'il y en a dans cette option, sont remplacés par la valeur indiquée
- prefix : Préfixe des clés de contrôles ('ctr_' par défaut). Une clé de controle tel que 'ctr_titre' contient le md5 du titre au moment de l'édition.
- $c : array<string|int, mixed>|bool = false
-
Tableau de couples (colonne=>valeur) à tester. Non renseigné, la fonction prend toutes les colonne de l'objet via _request()
- $serveur : string = ''
-
Nom du connecteur de base de données
Return values
bool|null|array<string|int, mixed> —False si aucun champ posté. Null si aucune modification sur les champs. Tableau vide si aucun de conflit d'édition. Tableau (clé => tableau du conflit). L'index est la colonne en conflit, la valeur un tableau avec 2 index :
- base : le contenu du champ en base
- post : le contenu posté
controler_md5()
Contrôle la liste des md5 envoyés, supprime les inchangés, signale les modifiés depuis telle date
controler_md5(array<string|int, mixed> &$champs, array<string|int, mixed> $ctr, string $type, int $id, string $serveur[, string $prefix = 'ctr_' ]) : null|array<string|int, mixed>
Parameters
- $champs : array<string|int, mixed>
-
Couples des champs saisis dans le formulaire (colonne => valeur postée)
- $ctr : array<string|int, mixed>
-
Tableau contenant les clés de contrôles. Couples (clé => md5)
- $type : string
-
Type d'objet
- $id : int
-
Identifiant de l'objet
- $serveur : string
-
Nom du connecteur de base de données
- $prefix : string = 'ctr_'
-
Préfixe des clés de contrôles : le nom du champ est préfixé de cette valeur dans le tableau $ctr pour retrouver son md5.
Return values
null|array<string|int, mixed> —Null si aucun champ ou aucune modification sur les champs Tableau vide si aucune erreur de contrôle. Tableau (clé => tableau du conflit). L'index est la colonne en conflit, la valeur un tableau avec 2 index :
- base : le contenu du champ en base
- post : le contenu posté
display_conflit_champ()
Afficher le contenu d'un champ selon sa longueur soit dans un `textarea`, soit dans un `input`
display_conflit_champ(string $x) : string
Parameters
- $x : string
-
texte à afficher