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

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

Ne pas afficher le formulaire document intempestivement

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