X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fprive%2Fformulaires%2Fediter_article.php;h=2320df9a7f6266e6bc059362473a6a8fdea104df;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=531ee339e0827e5938aa1cc8fa31a99071f83707;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/prive/formulaires/editer_article.php b/www/prive/formulaires/editer_article.php index 531ee339..2320df9a 100644 --- a/www/prive/formulaires/editer_article.php +++ b/www/prive/formulaires/editer_article.php @@ -3,21 +3,67 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2016 * + * Copyright (c) 2001-2017 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -if (!defined('_ECRIRE_INC_VERSION')) return; +/** + * 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'); -// http://doc.spip.org/@inc_editer_article_dist -function formulaires_editer_article_charger_dist($id_article='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='articles_edit_config', $row=array(), $hidden=''){ - $valeurs = formulaires_editer_objet_charger('article',$id_article,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden); +/** + * 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 = array(), + $hidden = '' +) { + $valeurs = formulaires_editer_objet_charger( + 'article', + $id_article, + $id_rubrique, + $lier_trad, + $retour, + $config_fonc, + $row, + $hidden + ); // il faut enlever l'id_rubrique car la saisie se fait sur id_parent // et id_rubrique peut etre passe dans l'url comme rubrique parent initiale // et sera perdue si elle est supposee saisie @@ -25,17 +71,47 @@ function formulaires_editer_article_charger_dist($id_article='new', $id_rubrique } /** - * Identifier le formulaire en faisant abstraction des parametres qui - * ne representent pas l'objet edite + * 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=array(), $hidden=''){ - return serialize(array(intval($id_article),$lier_trad)); +function formulaires_editer_article_identifier_dist( + $id_article = 'new', + $id_rubrique = 0, + $retour = '', + $lier_trad = 0, + $config_fonc = 'articles_edit_config', + $row = array(), + $hidden = '' +) { + return serialize(array(intval($id_article), $lier_trad)); } -// Choix par defaut des options de presentation -// http://doc.spip.org/@articles_edit_config -function articles_edit_config($row) -{ +/** + * 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($row) { global $spip_lang; $config = $GLOBALS['meta']; @@ -43,30 +119,102 @@ function articles_edit_config($row) $config['langue'] = $spip_lang; $config['restreint'] = ($row['statut'] == 'publie'); + return $config; } -function formulaires_editer_article_verifier_dist($id_article='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='articles_edit_config', $row=array(), $hidden=''){ +/** + * 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 = array(), + $hidden = '' +) { // auto-renseigner le titre si il n'existe pas - titre_automatique('titre',array('descriptif','chapo','texte')); + titre_automatique('titre', array('descriptif', 'chapo', 'texte')); // 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,array('id_parent')); - if (!function_exists('autoriser')) - include_spip('inc/autoriser'); // si on utilise le formulaire dans le public + $erreurs = formulaires_editer_objet_verifier('article', $id_article, array('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'))){ + and !autoriser('creerarticledans', 'rubrique', _request('id_parent')) + ) { $erreurs['id_parent'] = _T('info_creerdansrubrique_non_autorise'); } + return $erreurs; } -// http://doc.spip.org/@inc_editer_article_dist -function formulaires_editer_article_traiter_dist($id_article='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='articles_edit_config', $row=array(), $hidden=''){ +/** + * 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 = array(), + $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 - set_request("changer_lang"); - return formulaires_editer_objet_traiter('article',$id_article,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden); -} + set_request('changer_lang'); -?> + return formulaires_editer_objet_traiter( + 'article', + $id_article, + $id_rubrique, + $lier_trad, + $retour, + $config_fonc, + $row, + $hidden + ); +}