Documentation du code de SPIP et de ses plugins

SPIP

Edition

Table of Contents

Functions

action_debloquer_edition_dist()  : void
Lever les blocages d'édition pour l'utilisateur courant
action_editer_objet_dist()  : array<string|int, mixed>
Point d'entrée d'édition d'un objet
objet_modifier()  : mixed|string
Appelle toutes les fonctions de modification d'un objet
objet_inserer()  : bool|int
Insère en base un objet générique
objet_instituer()  : string
Modifie le statut et/ou la date d'un objet
objet_editer_heritage()  : void
Fabrique la requete d'institution de l'objet, avec champs herites
objet_lire()  : array<string|int, mixed>|string|int|bool
Lit un objet donné connu par son id ou par un identifiant textuel unique et renvoie tout ou partie de sa description.
action_instituer_langue_objet_dist()  : string
Modifier la langue d'un objet
action_instituer_langue_rubrique_dist()  : mixed
Modifie la langue d'une rubrique
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

action_editer_objet_dist()

Point d'entrée d'édition d'un objet

action_editer_objet_dist([int $id = null ][, string $objet = null ][, array<string|int, mixed> $set = null ]) : array<string|int, mixed>

On ne peut entrer que par un appel en fournissant $id et $objet ou avec un argument d'action sécurisée de type "objet/id"

Parameters
$id : int = null
$objet : string = null
$set : array<string|int, mixed> = null
Return values
array<string|int, mixed>

objet_modifier()

Appelle toutes les fonctions de modification d'un objet

objet_modifier(string $objet, int $id[, array<string|int, mixed>|null $set = null ]) : mixed|string

Il peut y avoir une fonction propre au type d'objet : modifier dans action/editer.php, qui a dans ce cas la précédence.

Retourne une chaîne vide en cas de succès, et déclenche des notifications selon ce qu'on modifie : _modifier + objet_modifier et/ou _instituer + objet_instituer.

Parameters
$objet : string
$id : int
$set : array<string|int, mixed>|null = null
Tags
uses
collecter_requests()
uses
objet_modifier_champs()
uses
objet_instituer()
pipeline_appel

pre_edition : avant la mise à jour en base (via objet_modifier_champs())

pipeline_appel

post_edition : après la mise à jour en base (via objet_modifier_champs())

Return values
mixed|string
  • En cas de succès : (string) chaîne vide
  • En cas d'erreur : (string) message d'erreur

objet_inserer()

Insère en base un objet générique

objet_inserer(string $objet[, int $id_parent = null ][, array<string|int, mixed>|null $set = null ]) : bool|int

Il peut y avoir une fonction propre au type d'objet : inserer dans action/editer.php, qui a dans ce cas la précédence.

Retourne le numéro de l'objet en cas de succès, et déclenche 2 notifications : _inserer et objet_inserer.

Parameters
$objet : string
$id_parent : int = null
$set : array<string|int, mixed>|null = null
Tags
uses
sql_insertq()
pipeline_appel

pre_insertion : avant l'enregistrement en base

pipeline_appel

post_insertion : après l'enregistrement en base

global

array $GLOBALS ['visiteur_session']

global

array $GLOBALS ['meta']

global

string $GLOBALS ['spip_lang']

Return values
bool|int
  • Succès : (int) numéro de l'objet crée
  • Erreur :
    • (bool) false si sql_insertq() a échoué
    • (int) 0 si le type d'objet n'existe pas ou que la table est mal déclarée

objet_instituer()

Modifie le statut et/ou la date d'un objet

objet_instituer(string $objet, int $id, array<string|int, mixed> $c[, bool $calcul_rub = true ]) : string
Parameters
$objet : string
$id : int
$c : array<string|int, mixed>

$c est un array ('statut', 'id_parent' = changement de rubrique) statut et rubrique sont lies, car un admin restreint peut deplacer un objet publie vers une rubrique qu'il n'administre pas

$calcul_rub : bool = true
Tags
used-by
objet_modifier()
Return values
string

objet_editer_heritage()

Fabrique la requete d'institution de l'objet, avec champs herites

objet_editer_heritage(string $objet, int $id, int $id_rubrique, string $statut, array<string|int, mixed> $champs[, bool $cond = true ]) : void
Parameters
$objet : string
$id : int
$id_rubrique : int
$statut : string
$champs : array<string|int, mixed>
$cond : bool = true

objet_lire()

Lit un objet donné connu par son id ou par un identifiant textuel unique et renvoie tout ou partie de sa description.

objet_lire(string $objet, int|string $valeur_id[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|string|int|bool

Il est possible pour un objet donné de fournir la fonction <objet>_lire_champs qui renvoie simplement tous les champs de l'objet concerné sans aucun autre traitement. Sinon, l'appel SQL est réalisé par l'API.

Parameters
$objet : string

Type d'objet (comme article ou rubrique)

$valeur_id : int|string

Valeur du champ identifiant

$options : array<string|int, mixed> = []

Tableau d'options dont les index possibles sont:

  • champs : liste des champs à renvoyer. Si absent ou vide la fonction renvoie tous les champs.
  • champ_id : nom du champ utilisé comme identifiant de l'objet. Si absent ou vide on utilise l'id défini dans la déclaration de l'objet.
  • force : true pour reforcer une lecture en base meme si un cache existe
Return values
array<string|int, mixed>|string|int|bool

si champs est non fourni ou au format array false : l'objet demande n'existe pas array vide : l'objet existe, mais aucun champ demande n'existe array non vide : objet avec le ou les champs demandes existants (les champs demandes non existant sont absent) si champs est fourni au format string false : l'objet demande n'existe pas OU le champs demande n'existe pas string|int : valeur du champ demande pour l'objet demande

action_instituer_langue_objet_dist()

Modifier la langue d'un objet

action_instituer_langue_objet_dist(string $objet, int $id, int $id_rubrique, string $changer_lang[, string $serveur = '' ]) : string
Parameters
$objet : string
$id : int
$id_rubrique : int
$changer_lang : string
$serveur : string = ''
Return values
string

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
see
action_editer_objet_dist()
used-by
formulaires_editer_article_traiter_dist()
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 contexte.

$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
string

controles_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

Return values
string

        
On this page

Search results