[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / mots / formulaires / editer_mot.php
index ff0496c..8ca8c49 100644 (file)
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-if (!defined("_ECRIRE_INC_VERSION")) return;
+/**
+ * Gestion du formulaire d'édition d'un mot
+ *
+ * @package SPIP\Mots\Formulaires
+ **/
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 include_spip('inc/actions');
 include_spip('inc/editer');
 
-// https://code.spip.net/@inc_editer_mot_dist
-function formulaires_editer_mot_charger_dist($id_mot='new', $id_groupe=0, $retour='', $associer_objet='', $dummy1='', $dummy2='', $config_fonc='mots_edit_config', $row=array(), $hidden=''){
-       $valeurs = formulaires_editer_objet_charger('mot',$id_mot,$id_groupe,'',$retour,$config_fonc,$row,$hidden);
-       if ($valeurs['id_parent'] && !$valeurs['id_groupe'])
+/**
+ * Chargement du formulaire d'édition d'un mot
+ *
+ * @see formulaires_editer_objet_charger()
+ *
+ * @param int|string $id_mot
+ *     Identifiant du mot. 'new' pour un nouveau mot.
+ * @param int $id_groupe
+ *     Identifiant du groupe parent (si connu)
+ * @param string $retour
+ *     URL de redirection après le traitement
+ * @param string $associer_objet
+ *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
+ *     tel que 'article|3'
+ * @param string $dummy1 ?
+ * @param string $dummy2 ?
+ * @param string $config_fonc
+ *     Nom de la fonction ajoutant des configurations particulières au formulaire
+ * @param array $row
+ *     Valeurs de la ligne SQL du mot, 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_mot_charger_dist(
+       $id_mot = 'new',
+       $id_groupe = 0,
+       $retour = '',
+       $associer_objet = '',
+       $dummy1 = '',
+       $dummy2 = '',
+       $config_fonc = 'mots_edit_config',
+       $row = array(),
+       $hidden = ''
+) {
+       $valeurs = formulaires_editer_objet_charger('mot', $id_mot, $id_groupe, '', $retour, $config_fonc, $row, $hidden);
+       if ($valeurs['id_parent'] && !$valeurs['id_groupe']) {
                $valeurs['id_groupe'] = $valeurs['id_parent'];
-       
-       if ($associer_objet){
-               if (intval($associer_objet)){
+       }
+
+       if ($associer_objet) {
+               if (intval($associer_objet)) {
                        // compat avec l'appel de la forme ajouter_id_article
                        $objet = 'article';
                        $id_objet = intval($associer_objet);
-               }
-               else {
-                       list($objet,$id_objet) = explode('|',$associer_objet);
+               } else {
+                       list($objet, $id_objet) = explode('|', $associer_objet);
                }
        }
-       $valeurs['table'] = ($associer_objet?table_objet($objet):'');
+       $valeurs['table'] = ($associer_objet ? table_objet($objet) : '');
 
        // Si nouveau et titre dans l'url : fixer le titre
        if ($id_mot == 'oui'
-       AND strlen($titre = _request('titre')))
+               and strlen($titre = _request('titre'))
+       ) {
                $valeurs['titre'] = $titre;
+       }
 
        return $valeurs;
 }
 
+
 /**
- * Identifier le formulaire en faisant abstraction des parametres qui
- * ne representent pas l'objet edite
- */
-function formulaires_editer_mot_identifier_dist($id_mot='new', $id_groupe=0, $retour='', $associer_objet='', $dummy1='', $dummy2='', $config_fonc='mots_edit_config', $row=array(), $hidden=''){
-       return serialize(array(intval($id_mot),$associer_objet));
+ * Identifier le formulaire en faisant abstraction des paramètres qui
+ * ne representent pas l'objet edité
+ *
+ * @param int|string $id_mot
+ *     Identifiant du mot. 'new' pour un nouveau mot.
+ * @param int $id_groupe
+ *     Identifiant du groupe parent (si connu)
+ * @param string $retour
+ *     URL de redirection après le traitement
+ * @param string $associer_objet
+ *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
+ *     tel que 'article|3'
+ * @param string $dummy1 ?
+ * @param string $dummy2 ?
+ * @param string $config_fonc
+ *     Nom de la fonction ajoutant des configurations particulières au formulaire
+ * @param array $row
+ *     Valeurs de la ligne SQL du mot, 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_mot_identifier_dist(
+       $id_mot = 'new',
+       $id_groupe = 0,
+       $retour = '',
+       $associer_objet = '',
+       $dummy1 = '',
+       $dummy2 = '',
+       $config_fonc = 'mots_edit_config',
+       $row = array(),
+       $hidden = ''
+) {
+       return serialize(array(intval($id_mot), $associer_objet));
 }
 
-// Choix par defaut des options de presentation
-// https://code.spip.net/@articles_edit_config
-function mots_edit_config($row)
-{
+/**
+ * Choix par défaut des options de présentation
+ *
+ * @param array $row
+ *     Valeurs de la ligne SQL d'un mot, si connu
+ * return array
+ *     Configuration pour le formulaire
+ */
+function mots_edit_config($row) {
        global $spip_ecran, $spip_lang;
 
        $config = $GLOBALS['meta'];
-       $config['lignes'] = ($spip_ecran == "large")? 8 : 5;
+       $config['lignes'] = ($spip_ecran == 'large') ? 8 : 5;
        $config['langue'] = $spip_lang;
        $config['restreint'] = false;
+
        return $config;
 }
 
-function formulaires_editer_mot_verifier_dist($id_mot='new', $id_groupe=0, $retour='', $associer_objet='', $dummy1='', $dummy2='', $config_fonc='mots_edit_config', $row=array(), $hidden=''){
+/**
+ * Vérification du formulaire d'édition d'un mot
+ *
+ * @see formulaires_editer_objet_verifier()
+ *
+ * @param int|string $id_mot
+ *     Identifiant du mot. 'new' pour un nouveau mot.
+ * @param int $id_groupe
+ *     Identifiant du groupe parent (si connu)
+ * @param string $retour
+ *     URL de redirection après le traitement
+ * @param string $associer_objet
+ *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
+ *     tel que 'article|3'
+ * @param string $dummy1 ?
+ * @param string $dummy2 ?
+ * @param string $config_fonc
+ *     Nom de la fonction ajoutant des configurations particulières au formulaire
+ * @param array $row
+ *     Valeurs de la ligne SQL du mot, si connu
+ * @param string $hidden
+ *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
+ * @return array
+ *     Tableau des erreurs
+ **/
+function formulaires_editer_mot_verifier_dist(
+       $id_mot = 'new',
+       $id_groupe = 0,
+       $retour = '',
+       $associer_objet = '',
+       $dummy1 = '',
+       $dummy2 = '',
+       $config_fonc = 'mots_edit_config',
+       $row = array(),
+       $hidden = ''
+) {
 
-       $erreurs = formulaires_editer_objet_verifier('mot',$id_mot,array('titre'));
+       $erreurs = formulaires_editer_objet_verifier('mot', $id_mot, array('titre'));
        // verifier qu'un mot du meme groupe n'existe pas avec le meme titre
        // la comparaison accepte un numero absent ou different
        // sinon avertir
        // on ne fait la verification que si c'est une creation de mot ou un retitrage
        if (!intval($id_mot)
-         OR supprimer_numero(_request('titre'))!==supprimer_numero(sql_getfetsel('titre','spip_mots','id_mot='.intval($id_mot)))){
-               if (!count($erreurs) AND !_request('confirm_titre_mot')){
-                       if (sql_countsel("spip_mots",
-                                                       "titre REGEXP ".sql_quote("^([0-9]+[.] )?".preg_quote(supprimer_numero(_request('titre')))."$")
-                                                       ." AND id_mot<>".intval($id_mot)))
+               or supprimer_numero(_request('titre'))
+                       !== supprimer_numero(sql_getfetsel('titre', 'spip_mots', 'id_mot=' . intval($id_mot)))
+       ) {
+               if (!count($erreurs) and !_request('confirm_titre_mot')) {
+                       if (sql_countsel(
+                               'spip_mots',
+                               'titre REGEXP ' . sql_quote('^([0-9]+[.] )?' . preg_quote(supprimer_numero(_request('titre'))) . '$')
+                               . ' AND id_mot<>' . intval($id_mot)
+                       )) {
                                $erreurs['titre'] =
-                                                       _T('mots:avis_doublon_mot_cle')
-                                                       ." <input type='hidden' name='confirm_titre_mot' value='1' />";
+                                       _T('mots:avis_doublon_mot_cle')
+                                       . " <input type='hidden' name='confirm_titre_mot' value='1' />";
+                       }
                }
        }
+
        return $erreurs;
 }
 
-// https://code.spip.net/@inc_editer_mot_dist
-function formulaires_editer_mot_traiter_dist($id_mot='new', $id_groupe=0, $retour='', $associer_objet='', $dummy1='', $dummy2='', $config_fonc='mots_edit_config', $row=array(), $hidden=''){
+/**
+ * Traitements du formulaire d'édition d'un mot
+ *
+ * @param int|string $id_mot
+ *     Identifiant du mot. 'new' pour un nouveau mot.
+ * @param int $id_groupe
+ *     Identifiant du groupe parent (si connu)
+ * @param string $retour
+ *     URL de redirection après le traitement
+ * @param string $associer_objet
+ *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
+ *     tel que 'article|3'
+ * @param string $dummy1 ?
+ * @param string $dummy2 ?
+ * @param string $config_fonc
+ *     Nom de la fonction ajoutant des configurations particulières au formulaire
+ * @param array $row
+ *     Valeurs de la ligne SQL du mot, si connu
+ * @param string $hidden
+ *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
+ * @return array
+ *     Retour des traitements
+ **/
+function formulaires_editer_mot_traiter_dist(
+       $id_mot = 'new',
+       $id_groupe = 0,
+       $retour = '',
+       $associer_objet = '',
+       $dummy1 = '',
+       $dummy2 = '',
+       $config_fonc = 'mots_edit_config',
+       $row = array(),
+       $hidden = ''
+) {
        $res = array();
-       set_request('redirect','');
-       $action_editer = charger_fonction("editer_mot",'action');
-       list($id_mot,$err) = $action_editer();
-       if ($err){
+       set_request('redirect', '');
+       $action_editer = charger_fonction('editer_mot', 'action');
+       list($id_mot, $err) = $action_editer();
+       if ($err) {
                $res['message_erreur'] = $err;
-       }
-       else {
-               $res['message_ok'] = "";
-               if ($retour){
-                       if (strncmp($retour,'javascript:',11)==0){
-                               $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/'.substr($retour,11).'/*]]>*/</script>';
+       } else {
+               $res['message_ok'] = '';
+               $res['id_mot'] = $id_mot;
+               if ($retour) {
+                       if (strncmp($retour, 'javascript:', 11) == 0) {
+                               $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/' . substr($retour, 11) . '/*]]>*/</script>';
                                $res['editable'] = true;
-                       }
-                       else {
+                       } else {
                                $res['redirect'] = $retour;
-                               if (strlen(parametre_url($retour,'id_mot')))
-                                       $res['redirect'] = parametre_url($res['redirect'],'id_mot',$id_mot);
+                               if (strlen(parametre_url($retour, 'id_mot'))) {
+                                       $res['redirect'] = parametre_url($res['redirect'], 'id_mot', $id_mot);
+                               }
                        }
                }
 
-               if ($associer_objet){
-                       if (intval($associer_objet)){
+               if ($associer_objet) {
+                       if (intval($associer_objet)) {
                                // compat avec l'appel de la forme ajouter_id_article
                                $objet = 'article';
                                $id_objet = intval($associer_objet);
+                       } else {
+                               list($objet, $id_objet) = explode('|', $associer_objet);
                        }
-                       else {
-                               list($objet,$id_objet) = explode('|',$associer_objet);
-                       }
-                       if ($objet AND $id_objet AND autoriser('modifier',$objet,$id_objet)){
+                       if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
                                include_spip('action/editer_mot');
-                               mot_associer($id_mot, array($objet=>$id_objet));
-                               if (isset($res['redirect']))
-                                       $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_mot, '&');
+                               mot_associer($id_mot, array($objet => $id_objet));
+                               if (isset($res['redirect'])) {
+                                       $res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $id_mot, '&');
+                               }
                        }
                }
-
        }
+
        return $res;
 }
-
-
-?>