3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2007 *
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 // Placer definition des couleurs avant inc_version,
15 // sinon impossible de les redefinir dans mes_options
16 $GLOBALS['couleurs_spip'] = array(
20 "couleur_foncee" => "#9DBA00",
21 "couleur_claire" => "#C5E41C",
22 "couleur_lien" => "#657701",
23 "couleur_lien_off" => "#A6C113"
27 "couleur_foncee" => "#eb68b3",
28 "couleur_claire" => "#ffa9e6",
29 "couleur_lien" => "#8F004D",
30 "couleur_lien_off" => "#BE6B97"
34 "couleur_foncee" => "#fa9a00",
35 "couleur_claire" => "#ffc000",
36 "couleur_lien" => "#FF5B00",
37 "couleur_lien_off" => "#B49280"
41 "couleur_foncee" => "#CDA261",
42 "couleur_claire" => "#FFDDAA",
43 "couleur_lien" => "#AA6A09",
44 "couleur_lien_off" => "#B79562"
48 "couleur_foncee" => "#5da7c5",
49 "couleur_claire" => "#97d2e1",
50 "couleur_lien" => "#116587",
51 "couleur_lien_off" => "#81B7CD"
55 "couleur_foncee" => "#85909A",
56 "couleur_claire" => "#C0CAD4",
57 "couleur_lien" => "#3B5063",
58 "couleur_lien_off" => "#6D8499"
63 if (!defined('_ECRIRE_INC_VERSION')) {
64 include 'inc_version.php';
67 include_spip('inc/cookie');
70 // Determiner l'action demandee
73 $exec = _request('exec');
76 // Authentification, redefinissable
79 if (autoriser_sans_cookie($exec)) {
80 if (!isset($reinstall)) $reinstall = 'non';
83 $auth = charger_fonction('auth', 'inc');
86 if ($var_auth===-1) exit();
87 include_spip('inc/headers');
88 redirige_par_entete(generer_url_public('login',
90 rawurlencode(str_replace('/./', '/',
91 (_DIR_RESTREINT ?
"" : _DIR_RESTREINT_ABS
)
92 . str_replace('&', '&', self())))
93 // $var_auth indique si c'est le statut qui est insuffisant
94 . ((!isset($_GET['bonjour'])) ?
''
95 : (($var_auth == '6forum') ?
96 '&var_echec_visiteur=true'
97 : '&var_echec_cookie=true')),
103 // Preferences de presentation
107 if (!isset($GLOBALS['auteur_session']['prefs']))
108 $GLOBALS['prefs'] = array('couleur' =>1, 'display'=>0,
109 'options'=> $var_auth ?
'avancees' : 'basiques');
110 else $GLOBALS['prefs'] = unserialize($GLOBALS['auteur_session']['prefs']);
114 if (isset($_GET['set_couleur'])) {
115 $GLOBALS['prefs']['couleur'] = floor($_GET['set_couleur']);
118 if (isset($_GET['set_disp'])) {
119 $GLOBALS['prefs']['display'] = floor($_GET['set_disp']);
122 if (isset($_GET['set_options']) AND ($_GET['set_options'] == 'avancees' OR $_GET['set_options'] == 'basiques')) {
123 $GLOBALS['prefs']['options'] = $_GET['set_options'];
126 if ($prefs_mod AND !$var_auth)
127 spip_query("UPDATE spip_auteurs SET prefs = " . _q(serialize($GLOBALS['prefs'])) . " WHERE id_auteur = " .intval($GLOBALS['auteur_session']['id_auteur']));
129 if (isset($_GET['set_ecran'])) {
131 // car ce reglage depend plus du navigateur que de l'utilisateur
132 $GLOBALS['spip_ecran'] = $_GET['set_ecran'];
133 spip_setcookie('spip_ecran', $GLOBALS['spip_ecran'], time() +
365 * 24 * 3600);
134 } else $GLOBALS['spip_ecran'] = isset($_COOKIE['spip_ecran']) ?
$_COOKIE['spip_ecran'] : "etroit";
137 // deux globales (compatibilite ascendante)
138 $GLOBALS['options'] = $GLOBALS['prefs']['options'];
139 $GLOBALS['spip_display'] = $GLOBALS['prefs']['display'];
140 $choix_couleur = $GLOBALS['prefs']['couleur'];
141 if (!isset($GLOBALS['couleurs_spip'][$choix_couleur])) $choix_couleur = 1;
143 $GLOBALS['couleur_foncee'] = $GLOBALS['couleurs_spip'][$choix_couleur]['couleur_foncee'];
144 $GLOBALS['couleur_claire'] = $GLOBALS['couleurs_spip'][$choix_couleur]['couleur_claire'];
146 // charger l'affichage minimal et initialiser a la langue par defaut
147 include_spip('inc/minipres');
149 // si la langue est specifiee par cookie alors ...
150 if (isset($GLOBALS['_COOKIE']['spip_lang_ecrire'])) {
152 $spip_lang_ecrire = $GLOBALS['_COOKIE']['spip_lang_ecrire'];
153 // si pas authentifie, changer juste pour cette execution
155 changer_langue($GLOBALS['_COOKIE']['spip_lang_ecrire']);
156 // si authentifie, changer definitivement si ce n'est fait
157 else { if (($spip_lang_ecrire <> $GLOBALS['auteur_session']['lang'])
158 AND changer_langue($spip_lang_ecrire)) {
159 spip_query("UPDATE spip_auteurs SET lang = " . _q($spip_lang_ecrire) . " WHERE id_auteur = " . intval($GLOBALS['auteur_session']['id_auteur']));
160 $GLOBALS['auteur_session']['lang'] = $var_lang_ecrire;
161 $session = charger_fonction('session', 'inc');
162 $session($GLOBALS['auteur_session']);
167 utiliser_langue_visiteur();
169 define('_TRANCHES', 10);
172 // Gestion d'une page normale de l'espace prive
175 // Controle de la version, sauf si on est deja en train de s'en occuper
176 if (!isset($reinstall)
177 AND (!isset($var_ajaxcharset))
178 AND ($GLOBALS['spip_version'] != (str_replace(',','.',$GLOBALS['meta']['version_installee']))))
179 $exec = 'demande_mise_a_jour';
181 // Si interruption d'une longue restauration
182 // detourner le script demande pour qu'il reprenne le boulot
183 // mais virer les Ajax pour eviter plusieurs restaurations en parallele
184 elseif ($_COOKIE['spip_admin']
185 AND isset($GLOBALS['meta']["debut_restauration"])) {
186 if (isset($var_ajaxcharset)) exit;
187 $exec = 'import_all';
190 // Verification des plugins
191 // (ne pas interrompre une restauration ou un upgrade)
192 elseif ($exec!='upgrade'
193 AND $GLOBALS['auteur_session']['statut']=='0minirezo'
195 AND lire_fichier(_DIR_TMP
.'verifier_plugins.txt',$l)
196 AND $l = @unserialize($l)) {
197 foreach ($l as $fichier) {
198 if (!@is_readable($fichier)) {
199 include_spip('inc/plugin');
200 verifie_include_plugins();
201 break; // sortir de la boucle, on a fait un verif
206 // Passer la main aux outils XML a la demande.
207 if (isset($GLOBALS['transformer_xml'])
208 AND $GLOBALS['auteur_session']['statut']=='0minirezo') {
209 set_request('var_url', $exec);
210 $exec = $GLOBALS['transformer_xml'];
213 // si nom pas plausible, prendre le script par defaut
214 if (!preg_match(',^[a-z_][0-9a-z_]*$,i', $exec)) $exec = "accueil";
216 // Trouver la fonction eventuellement surchagee
218 $var_f = charger_fonction($exec);