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