source: spip-zone/_core_/branches/spip-3.0/plugins/mots/formulaires/editer_mot.php @ 104360

Last change on this file since 104360 was 104360, checked in by spip.franck@…, 3 years ago

code.spip est maintenant en https, donc j'ajoute le "s" à http

File size: 4.8 KB
Line 
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
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15include_spip('inc/actions');
16include_spip('inc/editer');
17
18// https://code.spip.net/@inc_editer_mot_dist
19function 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 */
48function 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// https://code.spip.net/@articles_edit_config
54function 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
65function 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// https://code.spip.net/@inc_editer_mot_dist
87function 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?>
Note: See TracBrowser for help on using the repository browser.