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

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

prise en compte du renommage des fichiers de langue

File size: 4.9 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        $valeurs = array();
10        if (lire_config('FormulaireArticle/ecrire_0minirezo') == 'on'){
11                $auteur_info[] = '0minirezo';
12        }
13        if (lire_config('FormulaireArticle/ecrire_1comite') == 'on'){
14                $auteur_info[] = '1comite';
15        }
16        if (lire_config('FormulaireArticle/ecrire_6forum') == 'on'){
17                $auteur_info[] = '6forum';
18        }
19       
20        if (in_array($auteur_statut,$auteur_info)){
21                $editable = true;
22        }
23        else{
24                $editable = false;
25                $message[] = 'Droits insuffisant pour ecrire un article';
26        }
27        if(($editable==true) && ($id_article !='new')){
28                $valeurs= sql_fetsel("*","spip_articles","id_article=$id_article");
29                if($lier_trad != 0){
30                        $valeurs['titre'] .= ' '._T('squeeze_article:new_traduction');
31                        $valeurs['formulaire_langue'] = true;
32                }
33        }
34       
35        else if ($editable == true){
36                if($id_rubrique != 0){
37                        $valeurs['id_rubrique'] = $id_rubrique;
38                        return array($editable,$valeurs);       
39                }
40                return array($editable);       
41        }
42       
43        return array($editable,$valeurs);
44}
45
46function formulaires_creer_article_verifier_dist($id_article='new',$id_rubrique=0, $lier_trad=0){
47
48        $erreurs = array();
49       
50        $longueur_titre = 3;
51        $longueur_texte = lire_config('FormulaireArticle/textetaille')? lire_config('FormulaireArticle/textetaille') : 30;
52       
53        if(!_request('titre')){
54                $erreurs['titre'] = _T('titre_obligatoire');
55        }
56        else if(strlen(_request('titre'))<$longueur_titre){
57                $erreurs['titre']= _T('titre_trop_court');
58        }
59       
60        if(!_request('texte')){
61                $erreurs['texte'] = _T('texte_obligatoire');
62        }
63        else if(strlen(_request('texte'))<$longueur_texte){
64                $erreurs['texte']= _T('texte_trop_court');
65        }
66        if (count($erreurs)) $erreurs['message_erreur'] = 'Il y a des erreurs';
67        return $erreurs;
68}
69
70// http://doc.spip.org/@inc_editer_article_dist
71function formulaires_creer_article_traiter_dist($id_article='new',$id_rubrique=0, $lier_trad=0){
72        include_spip('base/abstract_sql');
73       
74        $id_auteur = intval($GLOBALS['auteur_session']['id_auteur']);
75       
76        $surtitre= stripslashes(_request('surtitre'));
77        $titre= stripslashes(_request('titre'));
78        $soustitre= stripslashes(_request('soustitre'));
79        $descriptif= _request('descriptif');
80        $chapeau= _request('chapeau');
81        $texte= _request('texte');
82        $ps= _request('ps');
83       
84        $id_rubrique = _request('rubrique');
85        spip_log("le texte est $texte", "formarticle");
86
87        $statut = _request('statut')? _request('statut') : lire_config('FormulaireArticle/statut_article');
88        // Si id_rubrique vaut 0 ou n'est pas definie, creer l'article
89        // dans la premiere rubrique racine
90        if (!$id_rubrique = intval($id_rubrique)) {
91                $row = sql_fetsel("id_rubrique, id_secteur, lang", "spip_rubriques", "id_parent=0",'', '0+titre,titre', "1");
92                $id_rubrique = $row['id_rubrique'];
93        } else $row = sql_fetsel("lang, id_secteur", "spip_rubriques", "id_rubrique=$id_rubrique");
94
95        $id_secteur = $row['id_secteur'];
96        $lang_rub = $row['lang'];
97
98        // La langue a la creation : si les liens de traduction sont autorises
99        // dans les rubriques, on essaie avec la langue de l'auteur,
100        // ou a defaut celle de la rubrique
101        // Sinon c'est la langue de la rubrique qui est choisie + heritee
102        if ($GLOBALS['meta']['multi_articles'] == 'oui') {
103                lang_select($GLOBALS['visiteur_session']['lang']);
104                if (in_array($GLOBALS['spip_lang'],
105                explode(',', $GLOBALS['meta']['langues_multilingue']))) {
106                        $lang = $GLOBALS['spip_lang'];
107                        $choisie = 'oui';
108                }
109        }
110
111        if (!$lang) {
112                $choisie = 'non';
113                $lang = $lang_rub ? $lang_rub : $GLOBALS['meta']['langue_site'];
114        }
115       
116        if($id_article== 'new'){
117                $id_article = sql_insertq("spip_articles", array(
118                        'id_rubrique' => $id_rubrique,
119                        'id_secteur' =>  $id_secteur,
120                        'texte' => $texte,
121                        'titre' => $titre,
122                        'surtitre' => $surtitre,
123                        'soustitre' => $soustitre,
124                        'chapo' => $chapo,
125                        'descriptif' => $descriptif,
126                        'ps' => $ps,
127                        'statut' =>  $statut,
128                        'date' => 'NOW()',
129                        'accepter_forum' => 
130                                substr($GLOBALS['meta']['forums_publics'],0,3),
131                        'lang' => $lang,
132                        'langue_choisie' =>$choisie));
133                        // controler si le serveur n'a pas renvoye une erreur
134                        if ($id_article > 0) 
135                                sql_insertq('spip_auteurs_articles', array('id_auteur' => $GLOBALS['visiteur_session']['id_auteur'], 'id_article' => $id_article));
136        }
137        else{
138                sql_updateq("spip_articles", array(
139                        'id_rubrique' => $id_rubrique,
140                        'id_secteur' =>  $id_secteur,
141                        'texte' => $texte,
142                        'titre' => $titre,
143                        'surtitre' => $surtitre,
144                        'soustitre' => $soustitre,
145                        'chapo' => $chapo,
146                        'descriptif' => $descriptif,
147                        'ps' => $ps,
148                        'statut' =>  $statut,
149                        'accepter_forum' => 
150                                substr($GLOBALS['meta']['forums_publics'],0,3),
151                        'lang' => $lang,
152                        'langue_choisie' =>$choisie),"id_article=$id_article");
153        }
154       
155        return $message;
156}
157
158?>
Note: See TracBrowser for help on using the repository browser.