Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/metiers/prive/formulaires/ |
<?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. * \***************************************************************************/ /** * Gestion du formulaire de d'édition d'article * * @package SPIP\Core\Articles\Formulaires **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } include_spip('inc/actions'); include_spip('inc/editer'); /** * Chargement du formulaire d'édition d'article * * @uses formulaires_editer_objet_charger() * * @param int|string $id_article * Identifiant de l'article. 'new' pour une nouvel article. * @param int $id_rubrique * Identifiant de la rubrique parente * @param string $retour * URL de redirection après le traitement * @param int $lier_trad * Identifiant éventuel d'un article source de traduction * @param string $config_fonc * Nom de la fonction ajoutant des configurations particulières au formulaire * @param array $row * Valeurs de la ligne SQL de l'article, si connu * @param string $hidden * Contenu HTML ajouté en même temps que les champs cachés du formulaire. * @return array * Environnement du formulaire **/ function formulaires_editer_article_charger_dist( $id_article = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'articles_edit_config', $row = [], $hidden = '' ) { $valeurs = formulaires_editer_objet_charger( 'article', $id_article, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden ); if (intval($id_article) and !autoriser('modifier', 'article', intval($id_article))) { $valeurs['editable'] = ''; } return $valeurs; } /** * Identifier le formulaire en faisant abstraction des paramètres qui * ne représentent pas l'objet édité * * @param int|string $id_article * Identifiant de l'article. 'new' pour une nouvel article. * @param int $id_rubrique * Identifiant de la rubrique parente * @param string $retour * URL de redirection après le traitement * @param int $lier_trad * Identifiant éventuel d'un article source de traduction * @param string $config_fonc * Nom de la fonction ajoutant des configurations particulières au formulaire * @param array $row * Valeurs de la ligne SQL de l'article, si connu * @param string $hidden * Contenu HTML ajouté en même temps que les champs cachés du formulaire. * @return string * Hash du formulaire */ function formulaires_editer_article_identifier_dist( $id_article = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'articles_edit_config', $row = [], $hidden = '' ) { return serialize([intval($id_article), $lier_trad]); } /** * Choix par défaut des options de présentation * * @param array $row * Valeurs de la ligne SQL d'un article, si connu * return array * Configuration pour le formulaire */ function articles_edit_config(array $row): array { $config = []; $config['lignes'] = 8; $config['langue'] = $GLOBALS['spip_lang']; $config['restreint'] = ($row['statut'] === 'publie'); return $config; } /** * Vérifications du formulaire d'édition d'article * * @uses formulaires_editer_objet_verifier() * * @param int|string $id_article * Identifiant de l'article. 'new' pour une nouvel article. * @param int $id_rubrique * Identifiant de la rubrique parente * @param string $retour * URL de redirection après le traitement * @param int $lier_trad * Identifiant éventuel d'un article source de traduction * @param string $config_fonc * Nom de la fonction ajoutant des configurations particulières au formulaire * @param array $row * Valeurs de la ligne SQL de l'article, si connu * @param string $hidden * Contenu HTML ajouté en même temps que les champs cachés du formulaire. * @return array * Erreurs du formulaire **/ function formulaires_editer_article_verifier_dist( $id_article = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'articles_edit_config', $row = [], $hidden = '' ) { // auto-renseigner le titre si il n'existe pas titre_automatique('titre', ['descriptif', 'chapo', 'texte']); if (!_request('id_parent') and !intval($id_article)) { $valeurs = formulaires_editer_objet_charger( 'article', $id_article, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden ); set_request('id_parent', $valeurs['id_parent']); } // on ne demande pas le titre obligatoire : il sera rempli a la volee dans editer_article si vide $erreurs = formulaires_editer_objet_verifier('article', $id_article, ['id_parent']); // si on utilise le formulaire dans le public if (!function_exists('autoriser')) { include_spip('inc/autoriser'); } if ( !isset($erreurs['id_parent']) and !autoriser('creerarticledans', 'rubrique', _request('id_parent')) ) { $erreurs['id_parent'] = _T('info_creerdansrubrique_non_autorise'); } return $erreurs; } /** * Traitements du formulaire d'édition d'article * * @uses formulaires_editer_objet_traiter() * * @param int|string $id_article * Identifiant de l'article. 'new' pour une nouvel article. * @param int $id_rubrique * Identifiant de la rubrique parente * @param string $retour * URL de redirection après le traitement * @param int $lier_trad * Identifiant éventuel d'un article source de traduction * @param string $config_fonc * Nom de la fonction ajoutant des configurations particulières au formulaire * @param array $row * Valeurs de la ligne SQL de l'article, si connu * @param string $hidden * Contenu HTML ajouté en même temps que les champs cachés du formulaire. * @return array * Retours des traitements **/ function formulaires_editer_article_traiter_dist( $id_article = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'articles_edit_config', $row = [], $hidden = '' ) { // ici on ignore changer_lang qui est poste en cas de trad, // car l'heuristique du choix de la langue est pris en charge par article_inserer // en fonction de la config du site et de la rubrique choisie if (!$lier_trad) { set_request('changer_lang'); } return formulaires_editer_objet_traiter( 'article', $id_article, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden ); }