source: spip-zone/_plugins_/_dev_/acces_groupes/exec/breves_voir.php @ 5862

Last change on this file since 5862 was 5862, checked in by cy_altern@…, 15 years ago

début du filtrage complet de l'espace privé par surcharge des requêtes SQL : plus de rubriques restreintes *presque partout*, reste les articles, les sites et les forums...

File size: 11.3 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2006                                                *
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/presentation');
16include_spip('inc/rubriques');
17include_spip('inc/mots');
18include_spip('inc/date');
19include_spip('base/abstract_sql');
20include_spip("inc/indexation");
21
22
23// http://doc.spip.org/@afficher_breves_voir
24function afficher_breves_voir($id_breve, $changer_lang, $cherche_mot, $select_groupe)
25{
26        global $champs_extra, $options, $connect_statut, $les_notes,$spip_display;
27        $result = spip_query("SELECT * FROM spip_breves WHERE id_breve='$id_breve'");
28
29
30if ($row = spip_fetch_array($result)) {
31        $id_breve=$row['id_breve'];
32        $date_heure=$row['date_heure'];
33        $titre_breve=$row['titre'];
34        $titre=$row['titre'];
35        $texte=$row['texte'];
36        $extra=$row['extra'];
37        $lien_titre=$row['lien_titre'];
38        $lien_url=$row['lien_url'];
39        $statut=$row['statut'];
40        $id_rubrique=$row['id_rubrique'];
41}
42
43$flag_editable = (($connect_statut == '0minirezo' AND acces_rubrique($id_rubrique)) OR $statut == 'prop');
44
45pipeline('exec_init',array('args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),'data'=>''));
46
47debut_page("&laquo; $titre_breve &raquo;", "naviguer", "breves", "", "", $id_rubrique);
48
49debut_grand_cadre();
50
51afficher_hierarchie($id_rubrique);
52
53fin_grand_cadre();
54
55
56// MODIF ACCESGROUPES : début du contrôle d'acces à la rubrique
57   
58    $acces = accesgroupes_verif_acces($id_rubrique, 'prive'); 
59//echo '<br>$acces = '.$acces;
60//echo '<br>accesgroupes_RubPrive(42, "prive") = '.accesgroupes_RubPrive(42, 'prive');         
61    if ($acces == 1 || $acces == 2) { 
62                         accesgroupes_affichage_acces_restreint();
63    } 
64                else { 
65
66// FIN de la premiere partie d'ACCESGROUPES
67
68
69if (!$row) {echo _T('public:aucune_breve'); exit;}
70debut_gauche();
71
72debut_boite_info();
73
74echo "<CENTER>";
75echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE='1'><B>"._T('info_gauche_numero_breve')."&nbsp;:</B></FONT>";
76echo "<BR><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE='6'><B>$id_breve</B></FONT>";
77echo "</CENTER>";
78
79voir_en_ligne ('breve', $id_breve, $statut);
80
81fin_boite_info();
82
83
84//////////////////////////////////////////////////////
85// Logos de la breve
86//
87
88 if (($spip_display != 4) AND $id_breve>0 AND ($connect_statut == '0minirezo' AND acces_rubrique($id_rubrique))) {
89        include_spip('inc/chercher_logo');
90        echo afficher_boite_logo('id_breve', $id_breve,
91                            _T('logo_breve').aide ("breveslogo"),
92                            _T('logo_survol'), 'breves_voir'); 
93 }
94
95debut_raccourcis();
96icone_horizontale(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","new=oui&id_rubrique=$id_rubrique"), "breve-24.gif","creer.gif");
97fin_raccourcis();
98
99echo pipeline('affiche_gauche',array('args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),'data'=>''));
100creer_colonne_droite();
101echo pipeline('affiche_droite',array('args'=>array('exec'=>'breves_voir','id_breve'=>$id_breve),'data'=>''));
102debut_droite();
103
104debut_cadre_relief("breve-24.gif");
105echo "<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=0 BORDER=0>";
106echo "<TR><td class='serif'>";
107
108
109
110echo "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>";
111echo "<tr width='100%'><td width='100%' valign='top'>";
112gros_titre($titre);
113echo "</td>";
114
115if ($flag_editable) {
116        echo "<td>", http_img_pack("rien.gif", ' ', "width='5'") ."</td>\n";
117        echo "<td  align='right'>";
118        icone(_T('icone_modifier_breve'), generer_url_ecrire("breves_edit","id_breve=$id_breve&retour=nav"), "breve-24.gif", "edit.gif");
119        echo "</td>";
120}
121echo "</tr></table>\n";
122
123if ($flag_editable AND ($options == 'avancees' OR $statut == 'publie')) {
124
125        if ($statut == 'publie') {     
126                echo "<p>";
127
128                if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $date_heure, $regs)) {
129                        $mois = $regs[2];
130                        $jour = $regs[3];
131                        $annee = $regs[1];
132                }
133
134
135                debut_cadre_enfonce();
136                echo afficher_formulaire_date("breves_voir", "id_breve=$id_breve&options=$options",
137                                              _T('texte_date_publication_article'), $jour, $mois, $annee);
138                fin_cadre_enfonce();   
139        }
140        else {
141                echo "<br /><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE='3'><B>".affdate($date_heure)."&nbsp;</B></FONT><P>";
142        }
143}
144
145
146
147if ($GLOBALS['meta']["articles_mots"]!='non' AND $flag_editable AND $options == 'avancees') {
148  echo formulaire_mots('breve', $id_breve, $cherche_mot, $select_groupe, $flag_editable);
149}
150
151
152//
153// Langue de la breve
154//
155if (($GLOBALS['meta']['multi_articles'] == 'oui') AND ($flag_editable)) {
156        $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
157        $langue_parent = $row['lang'];
158
159        if ($changer_lang) {
160                if ($changer_lang != "herit")
161                        spip_query("UPDATE spip_breves SET lang=" . spip_abstract_quote($changer_lang) . ", langue_choisie='oui' WHERE id_breve=$id_breve");
162                else
163                        spip_query("UPDATE spip_breves SET lang=" . spip_abstract_quote($langue_parent) . ", langue_choisie='non' WHERE id_breve=$id_breve");
164                calculer_langues_utilisees();
165        }
166
167        $row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_breves WHERE id_breve=$id_breve"));
168        $langue_breve = $row['lang'];
169        $langue_choisie_breve = $row['langue_choisie'];
170
171        if ($langue_choisie_breve == 'oui') $herit = false;
172        else $herit = true;
173
174        debut_cadre_enfonce('langues-24.gif');
175
176        echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100% BACKGROUND=''><TR><TD BGCOLOR='#EEEECC' class='serif2'>";
177        echo bouton_block_invisible('languesbreve');
178        echo "<B>";
179        echo _T('titre_langue_breve');
180        echo "&nbsp; (".traduire_nom_langue($langue_breve).")";
181        echo "</B>";
182        echo "</TD></TR></TABLE>";
183
184        echo debut_block_invisible('languesbreve');
185        echo "<center><font face='Verdana,Arial,Sans,sans-serif' size='2'>";
186        echo menu_langues('changer_lang', $langue_breve, '', $langue_parent);
187        echo "</font></center>\n";
188        echo fin_block();
189
190        fin_cadre_enfonce();
191}
192
193
194
195
196echo justifier(propre($texte))."\n";
197
198$texte_case = ($lien_titre.vider_url($lien_url)) ? "{{"._T('lien_voir_en_ligne')."}} [".$lien_titre."->".$lien_url."]" : '';
199        echo propre($texte_case);
200
201if ($les_notes) {
202        echo "<hr width='70%' height=1 align='left'><font size=2>$les_notes</font>\n";
203}
204
205        // afficher les extra
206        if ($champs_extra AND $extra) {
207                include_spip('inc/extra');
208                extra_affichage($extra, "breves");
209        }
210
211if ($connect_statut=="0minirezo" AND acces_rubrique($id_rubrique) AND ($statut=="prop" OR $statut=="prepa")){
212        echo "<div align='right'>";
213       
214        echo "<table>";
215        echo "<td  align='right'>";
216        icone(_T('icone_publier_breve'), 
217              redirige_action_auteur('instituer_breve',"$id_breve-publie","breves_voir","id_breve=$id_breve"), "breve-24.gif", "racine-24.gif");
218        echo "</td>";
219       
220        echo "<td>", http_img_pack("rien.gif", ' ', "width='5'") ."</td>\n";
221        echo "<td  align='right'>";
222        icone(_T('icone_refuser_breve'), 
223              redirige_action_auteur('instituer_breve', "$id_breve-refuse", "breves_voir","id_breve=$id_breve"), "breve-24.gif", "supprimer.gif");
224        echo "</td>";
225        echo "</table>";       
226
227        echo "</div>";
228       
229}       
230
231echo "</TD></TR></TABLE>";
232
233fin_cadre_relief();
234
235//////////////////////////////////////////////////////
236// Forums
237//
238
239 $tm = rawurlencode($titre);
240
241 echo "<br /><br />";
242
243 echo "\n<div align='center'>";
244 icone(_T('icone_poster_message'), generer_url_ecrire("forum_envoi", "statut=prive&id_breve=$id_breve&titre_message=$tm&url=".generer_url_retour("breves_voir", "id_breve=$id_breve")),
245       "forum-interne-24.gif", "creer.gif");
246 echo "</div>";
247
248 echo "<br />";
249
250 echo afficher_forum(spip_query("SELECT * FROM spip_forum WHERE statut='prive' AND id_breve='$id_breve' AND id_parent=0 ORDER BY date_heure DESC LIMIT 20"), "breves_voir", "id_breve=$id_breve");
251
252 
253// ACCESGROUPES : à placer avant fin_page();
254                        } 
255// FIN ACCESGROUPES
256
257 
258fin_page();
259}
260
261// http://doc.spip.org/@exec_breves_voir_dist
262function exec_breves_voir()
263{
264global $id_breve, $id_parent, $texte, $titre, $statut,
265  $annee, $mois, $jour, $lien_titre, $lien_url,$champs_extra,
266  $new, $modifier_breve, $changer_lang, $cherche_mot,  $select_groupe, 
267  $connect_statut;
268
269$id_breve = intval($id_breve);
270
271if (($id_breve == 0) AND ($new == "oui")) {
272        $id_rubrique = intval($id_parent);
273        $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
274        $langue_new = $row ? $row["lang"] : "";
275        if (!$langue_new) $langue_new = $GLOBALS['meta']['langue_site'];
276
277        $id_breve = spip_abstract_insert("spip_breves",
278                "(titre, date_heure, id_rubrique, statut, lang, langue_choisie)", 
279                "('"._T('item_nouvelle_breve')."', NOW(), '$id_rubrique', 'refuse', '$langue_new', 'non')");
280}
281
282 $calculer_rubriques = false;
283
284 if (($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") AND
285     strval($titre)) {
286        $id_rubrique = intval($id_parent);
287
288        // recoller les champs du extra
289        if ($champs_extra) {
290                include_spip('inc/extra');
291                $add_extra = extra_recup_saisie("breves");
292        } else
293                $add_extra = '';
294
295        spip_query("UPDATE spip_breves SET titre=" . spip_abstract_quote($titre) . ", texte=" . spip_abstract_quote($texte) . ", lien_titre=" . spip_abstract_quote($lien_titre) . ", lien_url=" . spip_abstract_quote($lien_url) . ", statut=" . spip_abstract_quote($statut) . ", id_rubrique=$id_rubrique " . (!$add_extra ? '' : (", extra = " . spip_abstract_quote($add_extra))) . " WHERE id_breve=$id_breve");
296
297        // invalider et reindexer
298        include_spip('inc/invalideur');
299        suivre_invalideur("id='id_breve/$id_breve'");
300
301        if ($GLOBALS['meta']['activer_moteur'] == 'oui') {
302                include_spip("inc/indexation");
303                marquer_indexer('spip_breves', $id_breve);
304        }
305        $calculer_rubriques = true;
306       
307       
308        // Changer la langue heritee
309        if ($id_rubrique != id_rubrique_old) {
310                $row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_breves WHERE id_breve=$id_breve"));
311                $langue_old = $row['lang'];
312                $langue_choisie_old = $row['langue_choisie'];
313               
314                if ($langue_choisie_old != "oui") {
315                        $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
316                        $langue_new = $row['lang'];
317       
318                        if ($langue_new != $langue_old) {
319                                spip_query("UPDATE spip_breves SET lang = '$langue_new' WHERE id_breve = $id_breve");
320                        }
321                }
322        }
323}
324
325if ($jour AND $connect_statut == '0minirezo') {
326        if ($annee == "0000") $mois = "00";
327        if ($mois == "00") $jour = "00";
328        spip_query("UPDATE spip_breves SET date_heure='$annee-$mois-$jour' WHERE id_breve=$id_breve");
329        $calculer_rubriques = true;
330}
331
332 if ($calculer_rubriques) calculer_rubriques();
333
334        if ($new == 'oui')
335                redirige_par_entete(
336                        generer_url_ecrire('breves_voir', 'id_breve='.$id_breve, '&'));
337                       
338                       
339        afficher_breves_voir($id_breve, $changer_lang, $cherche_mot, $select_groupe);
340
341}
342?>
Note: See TracBrowser for help on using the repository browser.