source: plugins_spip/squeeze_article/formulaires/creer_article.php @ 519

Last change on this file since 519 was 519, checked in by kent1, 12 years ago

bug sur editable 2

File size: 6.4 KB
Line 
1<?php
2
3function formulaires_creer_article_charger_dist($id_article='new', $id_rubrique=0, $lier_trad=0){
4        include_spip('base/abstract_sql');
5        //initialise les variables d'environnement pas défaut, il n'y en a pas puisque l'on écrit un nouvel article
6        $id_auteur = intval($GLOBALS['visiteur_session']['id_auteur']);
7        $auteur_statut = sql_getfetsel("statut","spip_auteurs","id_auteur=$id_auteur");
8
9       
10        $valeurs['id_article'] = $id_article;
11        if (lire_config('squeezearticle/ecrire_0minirezo') == 'on'){
12                $auteur_info[] = '0minirezo';
13        }
14        if (lire_config('squeezearticle/ecrire_1comite') == 'on'){
15                $auteur_info[] = '1comite';
16        }
17        if (lire_config('squeezearticle/ecrire_6forum') == 'on'){
18                $auteur_info[] = '6forum';
19        }
20       
21        if (in_array($auteur_statut,$auteur_info)){
22                $valeurs['editable'] = 'true';
23        }
24        else{
25                $message[] = 'Droits insuffisant pour ecrire un article';
26        }       
27        if(($valeurs['editable']=='true') && ($id_article !='new')){
28                $valeurs= sql_fetsel("*","spip_articles","id_article=$id_article");
29                // on est dans une trad => on affiche le formulaire de langue
30                if($lier_trad != 0){
31                        $valeurs['titre'] .= ' '._T('squeeze_article:new_traduction');
32                        $valeurs['formulaire_langue'] = true;
33                }
34                        $valeurs['formulaire_statut'] = true;
35        }
36        if(($valeurs['editable'] == 'true') && ($id_article == 'new')){
37                $valeurs['titre'] = _request('titre');
38                $valeurs['squeeze_texte'] = _request('squeeze_texte');
39        }
40       
41        else if ($valeurs['editable'] == 'true'){
42                if($id_rubrique != 0){
43                        $valeurs['id_rubrique'] = $id_rubrique;
44                }
45                $valeurs['formulaire_langue'] = true;
46        }
47       
48        return $valeurs;
49}
50
51function formulaires_creer_article_verifier_dist($id_article='new',$id_rubrique=0, $lier_trad=0){
52
53        $erreurs = array();
54       
55        $longueur_titre = 3;
56        $longueur_texte = lire_config('squeezearticle/textetaille')? lire_config('squeezearticle/textetaille') : 30;
57       
58        if(!_request('titre')){
59                $erreurs['titre'] = _T('titre_obligatoire');
60        }
61        else if(strlen(_request('titre'))<$longueur_titre){
62                $erreurs['titre']= _T('titre_trop_court');
63        }
64       
65        if(!_request('squeeze_texte')){
66                $erreurs['texte'] = _T('texte_obligatoire');
67        }
68        else if(strlen(_request('squeeze_texte'))<$longueur_texte){
69                $erreurs['texte']= _T('texte_trop_court');
70        }
71        if (count($erreurs)) $erreurs['message_erreur'] = 'Il y a des erreurs';
72        return $erreurs;
73}
74
75// http://doc.spip.org/@inc_editer_article_dist
76function formulaires_creer_article_traiter_dist($id_article='new',$id_rubrique=0, $lier_trad=0){
77        include_spip('base/abstract_sql');
78        $message = '';
79        $invalider = false;
80       
81        $id_auteur = intval($GLOBALS['auteur_session']['id_auteur']);
82       
83        $surtitre= stripslashes(_request('surtitre'));
84        $titre= stripslashes(_request('titre'));
85        $soustitre= stripslashes(_request('soustitre'));
86        $descriptif= _request('descriptif');
87        $chapeau= _request('chapeau');
88        $texte= _request('squeeze_texte');
89        $ps= _request('ps');
90       
91        $id_rubrique = _request('rubrique');
92
93        $statut = _request('statut')? _request('statut') : lire_config('squeezearticle/statut_article');
94        // Si id_rubrique vaut 0 ou n'est pas definie, creer l'article
95        // dans la premiere rubrique racine
96        if (!$id_rubrique = intval($id_rubrique)) {
97                $row = sql_fetsel("id_rubrique, id_secteur, lang", "spip_rubriques", "id_parent=0",'', '0+titre,titre', "1");
98                $id_rubrique = $row['id_rubrique'];
99        } else $row = sql_fetsel("lang, id_secteur", "spip_rubriques", "id_rubrique=$id_rubrique");
100
101        $id_secteur = $row['id_secteur'];
102        $lang_rub = $row['lang'];
103
104        $lang = _request('lang');
105        if($lang){
106                $choisie = 'oui';
107        }
108        // La langue a la creation : si les liens de traduction sont autorises
109        // dans les rubriques, on essaie avec la langue de l'auteur,
110        // ou a defaut celle de la rubrique
111        // Sinon c'est la langue de la rubrique qui est choisie + heritee
112        else{
113                if ($GLOBALS['meta']['multi_articles'] == 'oui') {
114                        lang_select($GLOBALS['visiteur_session']['lang']);
115                        if (in_array($GLOBALS['spip_lang'],
116                        explode(',', $GLOBALS['meta']['langues_multilingue']))) {
117                                $lang = $GLOBALS['spip_lang'];
118                                $choisie = 'oui';
119                        }
120               
121                }
122                if (!$lang) {
123                        $choisie = 'non';
124                        $lang = $lang_rub ? $lang_rub : $GLOBALS['meta']['langue_site'];
125                }
126        }
127       
128        if($id_article== 'new'){
129                $id_article = sql_insertq("spip_articles", array(
130                        'id_rubrique' => $id_rubrique,
131                        'id_secteur' =>  $id_secteur,
132                        'texte' => $texte,
133                        'titre' => $titre,
134                        'surtitre' => $surtitre,
135                        'soustitre' => $soustitre,
136                        'chapo' => $chapo,
137                        'descriptif' => $descriptif,
138                        'ps' => $ps,
139                        'statut' =>  $statut,
140                        'date' => 'NOW()',
141                        'accepter_forum' => 
142                                substr($GLOBALS['meta']['forums_publics'],0,3),
143                        'lang' => $lang,
144                        'langue_choisie' =>$choisie));
145                        // controler si le serveur n'a pas renvoye une erreur
146                        if ($id_article > 0) 
147                                sql_insertq('spip_auteurs_articles', array('id_auteur' => $GLOBALS['visiteur_session']['id_auteur'], 'id_article' => $id_article));
148                       
149                        $message = _T('squeeze_article:fin_article_cree');
150                        $invalider = true;
151        }
152        else if($lier_trad != 0){
153                $id_article = sql_insertq("spip_articles", array(
154                        'id_rubrique' => $id_rubrique,
155                        'id_secteur' =>  $id_secteur,
156                        'texte' => $texte,
157                        'titre' => $titre,
158                        'surtitre' => $surtitre,
159                        'soustitre' => $soustitre,
160                        'chapo' => $chapo,
161                        'descriptif' => $descriptif,
162                        'ps' => $ps,
163                        'statut' =>  $statut,
164                        'date' => 'NOW()',
165                        'accepter_forum' => 
166                                substr($GLOBALS['meta']['forums_publics'],0,3),
167                        'id_trad' => $lier_trad,
168                        'lang' => $lang,
169                        'langue_choisie' =>$choisie));
170                        // controler si le serveur n'a pas renvoye une erreur
171                if ($id_article > 0) 
172                        sql_insertq('spip_auteurs_articles', array('id_auteur' => $GLOBALS['visiteur_session']['id_auteur'], 'id_article' => $id_article));
173                       
174                $invalider = true;
175                charger_generer_url();
176                $link = generer_url_article($id_article);
177                $message = _T('squeeze_article:fin_article_traduire'); 
178        }
179        else{
180                sql_updateq("spip_articles", array(
181                        'id_rubrique' => $id_rubrique,
182                        'id_secteur' =>  $id_secteur,
183                        'texte' => $texte,
184                        'titre' => $titre,
185                        'surtitre' => $surtitre,
186                        'soustitre' => $soustitre,
187                        'chapo' => $chapo,
188                        'descriptif' => $descriptif,
189                        'ps' => $ps,
190                        'statut' =>  $statut,
191                        'accepter_forum' => 
192                                substr($GLOBALS['meta']['forums_publics'],0,3),
193                        'lang' => $lang,
194                        'langue_choisie' =>$choisie),"id_article=$id_article");
195
196                $invalider = true;
197                $message = _T('squeeze_article:fin_article_update');
198        }
199       
200        if($invalider){
201                include_spip('inc/invalideur');
202                suivre_invalideur("0",true);
203                spip_log('Squeeze_article : invalider', 'squeeze_admin');       
204        }
205        return $message;
206}
207
208?>
Note: See TracBrowser for help on using the repository browser.