[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / prive / formulaires / editer_article.php
index 531ee33..2320df9 100644 (file)
@@ -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
+       );
+}