3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2017 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
14 * Présentation de l'interface privee (exec PHP), début du HTML
16 * @package SPIP\Core\Presentation
19 if (!defined('_ECRIRE_INC_VERSION')) {
24 * Débute une page HTML pour l'espace privé
26 * Préferer l'usage des squelettes prive/squelettes/.
32 * $commencer_page = charger_fonction('commencer_page','inc');
33 * echo $commencer_page($titre);
36 * @param string $titre Titre de la page
37 * @param string $rubrique ?
38 * @param string $sous_rubrique ?
39 * @param string $id_rubrique ?
41 * @param bool $minipres ?
42 * @param bool $alertes ?
43 * @return string Code HTML
45 function inc_commencer_page_dist(
47 $rubrique = "accueil",
48 $sous_rubrique = "accueil",
55 include_spip('inc/headers');
59 return init_entete($titre, $id_rubrique, $minipres)
60 . init_body($rubrique, $sous_rubrique, $id_rubrique, $menu)
62 . auteurs_recemment_connectes($GLOBALS['connect_id_auteur'])
63 . ($alertes ?
alertes_auteur($GLOBALS['connect_id_auteur']) : '')
64 . '<div class="largeur">';
68 * Envoi du DOCTYPE et du `<head><title> </head>`
70 * @uses _DOCTYPE_ECRIRE
73 * @uses html_lang_attributes()
76 * @param string $titre
78 * @param integer $dummy
79 * Valeur non utilisée…
80 * @param bool $minipres
82 * Entête du fichier HTML avec le DOCTYPE
84 function init_entete($titre = '', $dummy = 0, $minipres = false) {
85 include_spip('inc/texte');
86 if (!$nom_site_spip = textebrut(typo($GLOBALS['meta']["nom_site"]))) {
87 $nom_site_spip = _T('info_mon_site_spip');
93 . ($titre ?
" " . textebrut(typo($titre)) : "");
95 return _DOCTYPE_ECRIRE
96 . html_lang_attributes()
98 . init_head($titre, $dummy, $minipres)
103 * Retourne le code HTML du head (intégration des JS et CSS) de l'espace privé
105 * Code HTML récupéré du squelette `prive/squelettes/head/dist`
107 * @param string $titre
108 * @param integer $dummy
109 * @param bool $minipres
112 function init_head($titre = '', $dummy = 0, $minipres = false) {
113 return recuperer_fond("prive/squelettes/head/dist", array('titre' => $titre, 'minipres' => $minipres ?
' ' : ''));
117 * Fonction envoyant la double série d'icônes de rédac
119 * @uses init_body_class()
120 * @uses inc_bandeau_dist()
122 * @pipeline_appel body_prive
124 * @global mixed $connect_id_auteur
125 * @global mixed $auth_can_disconnect
127 * @param string $rubrique
128 * @param string $sous_rubrique
129 * @param integer $id_rubrique
133 function init_body($rubrique = 'accueil', $sous_rubrique = 'accueil', $id_rubrique = '', $menu = true) {
135 $res = pipeline('body_prive', "<body class='"
136 . init_body_class() . " " . _request('exec') . "'"
137 . ($GLOBALS['spip_lang_rtl'] ?
" dir='rtl'" : "")
145 $bandeau = charger_fonction('bandeau', 'inc');
152 * Calcule les classes CSS à intégrer à la balise `<body>` de l'espace privé
154 * Les classes sont calculées en fonction des préférences de l'utilisateur,
155 * par exemple s'il choisit d'avoir ou non les icônes.
157 * @return string Classes CSS (séparées par des espaces)
159 function init_body_class() {
160 $GLOBALS['spip_display'] = isset($GLOBALS['visiteur_session']['prefs']['display'])
161 ?
$GLOBALS['visiteur_session']['prefs']['display']
163 $spip_display_navigation = isset($GLOBALS['visiteur_session']['prefs']['display_navigation'])
164 ?
$GLOBALS['visiteur_session']['prefs']['display_navigation']
165 : 'navigation_avec_icones';
166 $spip_display_outils = isset($GLOBALS['visiteur_session']['prefs']['display_outils'])
167 ?
($GLOBALS['visiteur_session']['prefs']['display_outils'] ?
'navigation_avec_outils' : 'navigation_sans_outils')
168 : 'navigation_avec_outils';
169 $GLOBALS['spip_ecran'] = isset($_COOKIE['spip_ecran']) ?
$_COOKIE['spip_ecran'] : "etroit";
171 $display_class = array(
172 0 => 'icones_img_texte'
175 2 => 'icones_img_texte',
179 return $GLOBALS['spip_ecran'] . " $spip_display_navigation $spip_display_outils " . $display_class[$GLOBALS['spip_display']];
184 * Afficher la liste des auteurs connectés à l'espace privé
186 * @param integer $id_auteur
189 function auteurs_recemment_connectes($id_auteur) {
190 return recuperer_fond('prive/objets/liste/auteurs_enligne');