[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / mots / formulaires / editer_mot.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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 if (!defined("_ECRIRE_INC_VERSION")) return;
14
15 include_spip('inc/actions');
16 include_spip('inc/editer');
17
18 // http://code.spip.net/@inc_editer_mot_dist
19 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=''){
20 $valeurs = formulaires_editer_objet_charger('mot',$id_mot,$id_groupe,'',$retour,$config_fonc,$row,$hidden);
21 if ($valeurs['id_parent'] && !$valeurs['id_groupe'])
22 $valeurs['id_groupe'] = $valeurs['id_parent'];
23
24 if ($associer_objet){
25 if (intval($associer_objet)){
26 // compat avec l'appel de la forme ajouter_id_article
27 $objet = 'article';
28 $id_objet = intval($associer_objet);
29 }
30 else {
31 list($objet,$id_objet) = explode('|',$associer_objet);
32 }
33 }
34 $valeurs['table'] = ($associer_objet?table_objet($objet):'');
35
36 // Si nouveau et titre dans l'url : fixer le titre
37 if ($id_mot == 'oui'
38 AND strlen($titre = _request('titre')))
39 $valeurs['titre'] = $titre;
40
41 return $valeurs;
42 }
43
44 /**
45 * Identifier le formulaire en faisant abstraction des parametres qui
46 * ne representent pas l'objet edite
47 */
48 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=''){
49 return serialize(array(intval($id_mot),$associer_objet));
50 }
51
52 // Choix par defaut des options de presentation
53 // http://code.spip.net/@articles_edit_config
54 function mots_edit_config($row)
55 {
56 global $spip_ecran, $spip_lang;
57
58 $config = $GLOBALS['meta'];
59 $config['lignes'] = ($spip_ecran == "large")? 8 : 5;
60 $config['langue'] = $spip_lang;
61 $config['restreint'] = false;
62 return $config;
63 }
64
65 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=''){
66
67 $erreurs = formulaires_editer_objet_verifier('mot',$id_mot,array('titre'));
68 // verifier qu'un mot du meme groupe n'existe pas avec le meme titre
69 // la comparaison accepte un numero absent ou different
70 // sinon avertir
71 // on ne fait la verification que si c'est une creation de mot ou un retitrage
72 if (!intval($id_mot)
73 OR supprimer_numero(_request('titre'))!==supprimer_numero(sql_getfetsel('titre','spip_mots','id_mot='.intval($id_mot)))){
74 if (!count($erreurs) AND !_request('confirm_titre_mot')){
75 if (sql_countsel("spip_mots",
76 "titre REGEXP ".sql_quote("^([0-9]+[.] )?".preg_quote(supprimer_numero(_request('titre')))."$")
77 ." AND id_mot<>".intval($id_mot)))
78 $erreurs['titre'] =
79 _T('mots:avis_doublon_mot_cle')
80 ." <input type='hidden' name='confirm_titre_mot' value='1' />";
81 }
82 }
83 return $erreurs;
84 }
85
86 // http://code.spip.net/@inc_editer_mot_dist
87 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=''){
88 $res = array();
89 set_request('redirect','');
90 $action_editer = charger_fonction("editer_mot",'action');
91 list($id_mot,$err) = $action_editer();
92 if ($err){
93 $res['message_erreur'] = $err;
94 }
95 else {
96 $res['message_ok'] = "";
97 if ($retour){
98 if (strncmp($retour,'javascript:',11)==0){
99 $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/'.substr($retour,11).'/*]]>*/</script>';
100 $res['editable'] = true;
101 }
102 else {
103 $res['redirect'] = $retour;
104 if (strlen(parametre_url($retour,'id_mot')))
105 $res['redirect'] = parametre_url($res['redirect'],'id_mot',$id_mot);
106 }
107 }
108
109 if ($associer_objet){
110 if (intval($associer_objet)){
111 // compat avec l'appel de la forme ajouter_id_article
112 $objet = 'article';
113 $id_objet = intval($associer_objet);
114 }
115 else {
116 list($objet,$id_objet) = explode('|',$associer_objet);
117 }
118 if ($objet AND $id_objet AND autoriser('modifier',$objet,$id_objet)){
119 include_spip('action/editer_mot');
120 mot_associer($id_mot, array($objet=>$id_objet));
121 if (isset($res['redirect']))
122 $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_mot, '&');
123 }
124 }
125
126 }
127 return $res;
128 }
129
130
131 ?>