source: spip-zone/_core_/plugins/mots/formulaires/editer_mot.php @ 93092

Last change on this file since 93092 was 93092, checked in by gilles.vincent@…, 5 years ago

Mise en forme plus homegene et plus lisible, pour les declarations des fonctions
Regles :

  • un espace après chaque virgule
  • un espace avant et apres chaque '='
File size: 8.2 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2015                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13/**
14 * Gestion du formulaire d'édition d'un mot
15 *
16 * @package SPIP\Mots\Formulaires
17**/
18if (!defined("_ECRIRE_INC_VERSION")) return;
19
20include_spip('inc/actions');
21include_spip('inc/editer');
22
23/**
24 * Chargement du formulaire d'édition d'un mot
25 *
26 * @see formulaires_editer_objet_charger()
27 *
28 * @param int|string $id_mot
29 *     Identifiant du mot. 'new' pour un nouveau mot.
30 * @param int $id_groupe
31 *     Identifiant du groupe parent (si connu)
32 * @param string $retour
33 *     URL de redirection après le traitement
34 * @param string $associer_objet
35 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
36 *     tel que 'article|3'
37 * @param string $dummy1 ?
38 * @param string $dummy2 ?
39 * @param string $config_fonc
40 *     Nom de la fonction ajoutant des configurations particulières au formulaire
41 * @param array $row
42 *     Valeurs de la ligne SQL du mot, si connu
43 * @param string $hidden
44 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
45 * @return array
46 *     Environnement du formulaire
47**/
48function formulaires_editer_mot_charger_dist($id_mot = 'new', $id_groupe = 0, $retour = '', $associer_objet = '', $dummy1 = '', $dummy2 = '', $config_fonc = 'mots_edit_config', $row = array(), $hidden = ''){
49        $valeurs = formulaires_editer_objet_charger('mot',$id_mot,$id_groupe,'',$retour,$config_fonc,$row,$hidden);
50        if ($valeurs['id_parent'] && !$valeurs['id_groupe'])
51                $valeurs['id_groupe'] = $valeurs['id_parent'];
52       
53        if ($associer_objet){
54                if (intval($associer_objet)){
55                        // compat avec l'appel de la forme ajouter_id_article
56                        $objet = 'article';
57                        $id_objet = intval($associer_objet);
58                }
59                else {
60                        list($objet,$id_objet) = explode('|',$associer_objet);
61                }
62        }
63        $valeurs['table'] = ($associer_objet?table_objet($objet):'');
64
65        // Si nouveau et titre dans l'url : fixer le titre
66        if ($id_mot == 'oui'
67        AND strlen($titre = _request('titre')))
68                $valeurs['titre'] = $titre;
69
70        return $valeurs;
71}
72
73
74/**
75 * Identifier le formulaire en faisant abstraction des paramètres qui
76 * ne representent pas l'objet edité
77 *
78 * @param int|string $id_mot
79 *     Identifiant du mot. 'new' pour un nouveau mot.
80 * @param int $id_groupe
81 *     Identifiant du groupe parent (si connu)
82 * @param string $retour
83 *     URL de redirection après le traitement
84 * @param string $associer_objet
85 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
86 *     tel que 'article|3'
87 * @param string $dummy1 ?
88 * @param string $dummy2 ?
89 * @param string $config_fonc
90 *     Nom de la fonction ajoutant des configurations particulières au formulaire
91 * @param array $row
92 *     Valeurs de la ligne SQL du mot, si connu
93 * @param string $hidden
94 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
95 * @return string
96 *     Hash du formulaire
97**/
98function formulaires_editer_mot_identifier_dist($id_mot = 'new', $id_groupe = 0, $retour = '', $associer_objet = '', $dummy1 = '', $dummy2 = '', $config_fonc = 'mots_edit_config', $row = array(), $hidden = ''){
99        return serialize(array(intval($id_mot),$associer_objet));
100}
101
102/**
103 * Choix par défaut des options de présentation
104 *
105 * @param array $row
106 *     Valeurs de la ligne SQL d'un mot, si connu
107 * return array
108 *     Configuration pour le formulaire
109 */
110function mots_edit_config($row)
111{
112        global $spip_ecran, $spip_lang;
113
114        $config = $GLOBALS['meta'];
115        $config['lignes'] = ($spip_ecran == "large")? 8 : 5;
116        $config['langue'] = $spip_lang;
117        $config['restreint'] = false;
118        return $config;
119}
120
121/**
122 * Vérification du formulaire d'édition d'un mot
123 *
124 * @see formulaires_editer_objet_verifier()
125 *
126 * @param int|string $id_mot
127 *     Identifiant du mot. 'new' pour un nouveau mot.
128 * @param int $id_groupe
129 *     Identifiant du groupe parent (si connu)
130 * @param string $retour
131 *     URL de redirection après le traitement
132 * @param string $associer_objet
133 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
134 *     tel que 'article|3'
135 * @param string $dummy1 ?
136 * @param string $dummy2 ?
137 * @param string $config_fonc
138 *     Nom de la fonction ajoutant des configurations particulières au formulaire
139 * @param array $row
140 *     Valeurs de la ligne SQL du mot, si connu
141 * @param string $hidden
142 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
143 * @return array
144 *     Tableau des erreurs
145**/
146function formulaires_editer_mot_verifier_dist($id_mot = 'new', $id_groupe = 0, $retour = '', $associer_objet = '', $dummy1 = '', $dummy2 = '', $config_fonc = 'mots_edit_config', $row = array(), $hidden = ''){
147
148        $erreurs = formulaires_editer_objet_verifier('mot',$id_mot,array('titre'));
149        // verifier qu'un mot du meme groupe n'existe pas avec le meme titre
150        // la comparaison accepte un numero absent ou different
151        // sinon avertir
152        // on ne fait la verification que si c'est une creation de mot ou un retitrage
153        if (!intval($id_mot)
154          OR supprimer_numero(_request('titre'))!==supprimer_numero(sql_getfetsel('titre','spip_mots','id_mot='.intval($id_mot)))){
155                if (!count($erreurs) AND !_request('confirm_titre_mot')){
156                        if (sql_countsel("spip_mots",
157                                                        "titre REGEXP ".sql_quote("^([0-9]+[.] )?".preg_quote(supprimer_numero(_request('titre')))."$")
158                                                        ." AND id_mot<>".intval($id_mot)))
159                                $erreurs['titre'] =
160                                                        _T('mots:avis_doublon_mot_cle')
161                                                        ." <input type='hidden' name='confirm_titre_mot' value='1' />";
162                }
163        }
164        return $erreurs;
165}
166
167/**
168 * Traitements du formulaire d'édition d'un mot
169 *
170 * @param int|string $id_mot
171 *     Identifiant du mot. 'new' pour un nouveau mot.
172 * @param int $id_groupe
173 *     Identifiant du groupe parent (si connu)
174 * @param string $retour
175 *     URL de redirection après le traitement
176 * @param string $associer_objet
177 *     Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
178 *     tel que 'article|3'
179 * @param string $dummy1 ?
180 * @param string $dummy2 ?
181 * @param string $config_fonc
182 *     Nom de la fonction ajoutant des configurations particulières au formulaire
183 * @param array $row
184 *     Valeurs de la ligne SQL du mot, si connu
185 * @param string $hidden
186 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
187 * @return array
188 *     Retour des traitements
189**/
190function formulaires_editer_mot_traiter_dist($id_mot = 'new', $id_groupe = 0, $retour = '', $associer_objet = '', $dummy1 = '', $dummy2 = '', $config_fonc = 'mots_edit_config', $row = array(), $hidden = ''){
191        $res = array();
192        set_request('redirect','');
193        $action_editer = charger_fonction("editer_mot",'action');
194        list($id_mot,$err) = $action_editer();
195        if ($err){
196                $res['message_erreur'] = $err;
197        }
198        else {
199                $res['message_ok'] = "";
200                if ($retour){
201                        if (strncmp($retour,'javascript:',11)==0){
202                                $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/'.substr($retour,11).'/*]]>*/</script>';
203                                $res['editable'] = true;
204                        }
205                        else {
206                                $res['redirect'] = $retour;
207                                if (strlen(parametre_url($retour,'id_mot')))
208                                        $res['redirect'] = parametre_url($res['redirect'],'id_mot',$id_mot);
209                        }
210                }
211
212                if ($associer_objet){
213                        if (intval($associer_objet)){
214                                // compat avec l'appel de la forme ajouter_id_article
215                                $objet = 'article';
216                                $id_objet = intval($associer_objet);
217                        }
218                        else {
219                                list($objet,$id_objet) = explode('|',$associer_objet);
220                        }
221                        if ($objet AND $id_objet AND autoriser('modifier',$objet,$id_objet)){
222                                include_spip('action/editer_mot');
223                                mot_associer($id_mot, array($objet=>$id_objet));
224                                if (isset($res['redirect']))
225                                        $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_mot, '&');
226                        }
227                }
228
229        }
230        return $res;
231}
232
233
234?>
Note: See TracBrowser for help on using the repository browser.