[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / inc / commencer_page.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
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
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 //
16 // Presentation de l'interface privee, debut du HTML
17 //
18
19 // http://doc.spip.org/@inc_commencer_page_dist
20 function inc_commencer_page_dist($titre = "", $rubrique = "accueil", $sous_rubrique = "accueil", $id_rubrique = "",$menu=true,$minipres=false, $alertes = true) {
21 global $connect_id_auteur;
22
23 include_spip('inc/headers');
24
25 http_no_cache();
26
27 return init_entete($titre, $id_rubrique, $minipres)
28 . init_body($rubrique, $sous_rubrique, $id_rubrique,$menu)
29 . "<div id='page'>"
30 . ($alertes?alertes_auteur($connect_id_auteur):'')
31 . auteurs_recemment_connectes($connect_id_auteur);
32 }
33
34 // envoi du doctype et du <head><title>...</head>
35 // http://doc.spip.org/@init_entete
36 function init_entete($titre='', $id_rubrique=0, $minipres=false) {
37 include_spip('inc/gadgets');
38
39 if (!$nom_site_spip = textebrut(typo($GLOBALS['meta']["nom_site"])))
40 $nom_site_spip= _T('info_mon_site_spip');
41
42 // Pour corriger la position des sous-menus principaux
43 // (quand intitules sur 2 lignes)
44
45 $js = repercuter_gadgets($id_rubrique);
46 $head = "<title>["
47 . $nom_site_spip
48 . "] " . textebrut(typo($titre)) . "</title>\n"
49 . "<meta http-equiv='Content-Type' content='text/html"
50 . (($c = $GLOBALS['meta']['charset']) ?
51 "; charset=$c" : '')
52 . "' />\n"
53 . envoi_link($nom_site_spip,$minipres, $js);
54
55 return _DOCTYPE_ECRIRE
56 . html_lang_attributes()
57 . "<head>\n"
58 . pipeline('header_prive', $head)
59 . "</head>\n";
60 }
61
62 // fonction envoyant la double serie d'icones de redac
63 // http://doc.spip.org/@init_body
64 function init_body($rubrique='accueil', $sous_rubrique='accueil', $id_rubrique='',$menu=true) {
65 global $connect_id_auteur, $auth_can_disconnect;
66 global $spip_display, $spip_ecran;
67
68 if ($spip_ecran == "large") $largeur = 974; else $largeur = 750;
69
70 $res = pipeline('body_prive',"<body class='ecrire $rubrique $sous_rubrique $spip_ecran "._request('exec')."'"
71 . ($GLOBALS['spip_lang_rtl'] ? " dir='rtl'" : "")
72 .'>');
73
74 if ($spip_display == "4") {
75 $res .= "<ul>"
76 . "\n<li><a href='" . generer_url_ecrire() ."'>"._T('icone_a_suivre')."</a></li>"
77 . "\n<li><a href='" . generer_url_ecrire("naviguer") . "'>"._T('icone_edition_site')."</a></li>"
78 . "\n<li><a href='" . generer_url_ecrire("forum"). "'>"._T('titre_forum')."</a></li>"
79 . "\n<li><a href='" . generer_url_ecrire("auteurs") . "'>"._T('icone_auteurs')."</a></li>"
80 . "\n<li><a href=\"".url_de_base()."\">"._T('icone_visiter_site')."</a></li>"
81 . "</ul>";
82
83 return $res;
84 }
85 if (!$menu) return $res;
86
87
88 $items = "<div class='h-list centered vcentered' style='width:{$largeur}px'><ul>"
89 . "<li id='bandeau_couleur1' class='bandeau_couleur'><div class='menu-item'>"
90 . installer_gadgets($id_rubrique)
91 . "</div></li>"
92 . "<li id='bandeau_couleur2' class='bandeau_couleur' style='width:"
93
94 // Redacteur connecte
95 // overflow pour masquer les noms tres longs
96 // (et eviter debords, notamment en ecran etroit)
97
98 //. "<div style='width: "
99 . (($spip_ecran == "large") ? 300 : 110)
100 . "px;'><div class='menu-item' style='width:"
101 . (($spip_ecran == "large") ? 300 : 110)
102 . "px; overflow: hidden;'>"
103 . "<a href='"
104 . generer_url_ecrire("auteur_infos","id_auteur=$connect_id_auteur")
105 . "' class='icone26' title=\""
106 . entites_html(_T('icone_informations_personnelles'))
107 . '">'
108 . typo($GLOBALS['visiteur_session']['nom'])
109 . "</a></div></li>"
110 . "<li id='bandeau_couleur4' class='bandeau_couleur'><div class='menu-item'>";
111
112 // couleurs
113 $couleurs = charger_fonction('couleurs', 'inc');
114 $items .= "<div id='preferences_couleurs'>";
115 $items .= $couleurs() . "</div>";
116
117 $items .= "</div></li>";
118
119 // choix de la langue
120 if ($i = menu_langues('var_lang_ecrire')) {
121 $items .= "<li id='bandeau_couleur5' class='bandeau_couleur'><div class='menu-item'>"
122 . (_request('lang')?$i:"<a href='".parametre_url(self(),'lang',$GLOBALS['spip_lang'])
123 ."' title='".attribut_html(_T('info_langues'))."'>"
124 . traduire_nom_langue($GLOBALS['spip_lang'])
125 ."</a>")
126 . "</div></li>";
127 }
128
129 $items .= "<li id='bandeau_couleur6' class='bandeau_couleur'><div class='menu-item'>";
130
131 if ($auth_can_disconnect) {
132 $alt=_T('icone_deconnecter');
133 $items .= "<a href='".
134 generer_url_action("logout","logout=prive") .
135 "' class='icone26' onmouseover=\"changestyle('bandeaudeconnecter');\" onfocus=\"changestyle('bandeaudeconnecter');\" onblur=\"changestyle('bandeaudeconnecter');\">" .
136 http_img_pack("deconnecter-24.gif", "$alt", "width='26' height='20'") .
137 "</a>";
138 }
139 $items .= "</div></li>"
140 . "</ul></div>";
141
142 // <div> pour la barre des gadgets
143 // (elements invisibles qui s'ouvrent sous la barre precedente)
144
145 $items .= bandeau_gadgets($largeur, true, $id_rubrique);
146
147 $bandeau = charger_fonction('bandeau', 'inc');
148
149 return $res
150 . "<div class='invisible_au_chargement' style='position: absolute; height: 0px; visibility: hidden;'><a href='oo'>"
151 ._T("access_mode_texte")
152 ."</a></div>"
153 . "<div id='haut-page'>\n"
154 . $bandeau($rubrique, $sous_rubrique, $largeur)
155 . "\n<div id='bandeau_couleur'>"
156 . $items
157 . "</div></div>\n";
158 }
159
160 // http://doc.spip.org/@avertissement_messagerie
161 function avertissement_messagerie($id_auteur) {
162
163 $result_messages = sql_allfetsel("lien.id_message", "spip_messages AS messages, spip_auteurs_messages AS lien", "lien.id_auteur=".sql_quote($id_auteur)." AND vu='non' AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message",'','');
164 $total_messages = count($result_messages);
165 if ($total_messages == 1) {
166 $row = $result_messages[0];
167 $ze_message=$row['id_message'];
168 return "<a href='" . generer_url_ecrire("message","id_message=$ze_message") . "' class='ligne_foncee'>"._T('info_nouveau_message')."</a>";
169 } elseif ($total_messages > 1)
170 return "<a href='" . generer_url_ecrire("messagerie") . "' classe='ligne_foncee'>"._T('info_nouveaux_messages', array('total_messages' => $total_messages))."</a>";
171 else return '';
172 }
173
174 // http://doc.spip.org/@alertes_auteur
175 function alertes_auteur($id_auteur) {
176
177 $alertes = array();
178
179 if (isset($GLOBALS['meta']['message_crash_tables'])
180 AND autoriser('detruire', null, null, $id_auteur)) {
181 include_spip('genie/maintenance');
182 if ($msg = message_crash_tables())
183 $alertes[] = $msg;
184 }
185
186 if (isset($GLOBALS['meta']['message_crash_plugins'])
187 AND autoriser('configurer', 'plugins', null, $id_auteur)) {
188 include_spip('inc/plugin');
189 if ($msg = message_crash_plugins())
190 $alertes[] = $msg;
191 }
192
193
194 if (isset($GLOBALS['meta']['plugin_erreur_activation'])
195 AND autoriser('configurer', 'plugins', null, $id_auteur)) {
196 $alertes[] = $GLOBALS['meta']['plugin_erreur_activation'];
197 effacer_meta('plugin_erreur_activation'); // pas normal que ce soit ici
198 }
199
200 $alertes[] = avertissement_messagerie($id_auteur);
201
202 $alertes = pipeline(
203 'alertes_auteur',
204 array(
205 'args' => array(
206 'id_auteur' => $id_auteur,
207 'exec' => _request('exec'),
208 ),
209 'data' => $alertes
210 )
211 );
212
213 if ($alertes = array_filter($alertes))
214 return "<div class='wrap-messages'><div class='messages'>".
215 join('<hr />', $alertes)
216 ."</div></div>";
217 }
218
219 // http://doc.spip.org/@auteurs_recemment_connectes
220 function auteurs_recemment_connectes($id_auteur)
221 {
222 $result = sql_allfetsel("*", "spip_auteurs", "id_auteur!=" .intval($id_auteur) . " AND en_ligne>DATE_SUB(".sql_quote(date('Y-m-d H:i:s')).",INTERVAL 15 MINUTE) AND " . sql_in('statut', array('1comite', '0minirezo')));
223
224 if (!$result) return '';
225 $formater_auteur = charger_fonction('formater_auteur', 'inc');
226 $res = '';
227 foreach ($result as $row) {
228 $id = $row['id_auteur'];
229 $mail = formater_auteur_mail($row, $id);
230 $auteurs = "<a href='" . generer_url_ecrire("auteur_infos", "id_auteur=$id") . "'>" . typo($row['nom']) . "</a>";
231 $res .= "$mail&nbsp;$auteurs" . ", ";
232 }
233
234 return "<div class='en_lignes' style='color:#666;'>" .
235 "<b>"._T('info_en_ligne'). "&nbsp;</b>" .
236 substr($res,0,-2) .
237 "</div>";
238 }
239
240
241 // http://doc.spip.org/@lien_change_var
242 function lien_change_var($lien, $set, $couleur, $coords, $titre, $mouseOver="") {
243 $lien = parametre_url($lien, $set, $couleur);
244 return "\n<area shape='rect' href='$lien' coords='$coords' title=\"$titre\" alt=\"$titre\" $mouseOver />";
245 }
246
247
248 ?>