| 1 | <?php |
| 2 | |
| 3 | /***************************************************************************\ |
| 4 | * SPIP, Systeme de publication pour l'internet * |
| 5 | * * |
| 6 | * Copyright (c) 2001-2007 * |
| 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 | |
| 14 | // Placer definition des couleurs avant inc_version, |
| 15 | // sinon impossible de les redefinir dans mes_options |
| 16 | $GLOBALS['couleurs_spip'] = array( |
| 17 | |
| 18 | // Vert |
| 19 | 1 => array ( |
| 20 | "couleur_foncee" => "#9DBA00", |
| 21 | "couleur_claire" => "#C5E41C", |
| 22 | "couleur_lien" => "#657701", |
| 23 | "couleur_lien_off" => "#A6C113" |
| 24 | ), |
| 25 | // Violet clair |
| 26 | 2 => array ( |
| 27 | "couleur_foncee" => "#eb68b3", |
| 28 | "couleur_claire" => "#ffa9e6", |
| 29 | "couleur_lien" => "#8F004D", |
| 30 | "couleur_lien_off" => "#BE6B97" |
| 31 | ), |
| 32 | // Orange |
| 33 | 3 => array ( |
| 34 | "couleur_foncee" => "#fa9a00", |
| 35 | "couleur_claire" => "#ffc000", |
| 36 | "couleur_lien" => "#FF5B00", |
| 37 | "couleur_lien_off" => "#B49280" |
| 38 | ), |
| 39 | // Saumon |
| 40 | 4 => array ( |
| 41 | "couleur_foncee" => "#CDA261", |
| 42 | "couleur_claire" => "#FFDDAA", |
| 43 | "couleur_lien" => "#AA6A09", |
| 44 | "couleur_lien_off" => "#B79562" |
| 45 | ), |
| 46 | // Bleu pastel |
| 47 | 5 => array ( |
| 48 | "couleur_foncee" => "#5da7c5", |
| 49 | "couleur_claire" => "#97d2e1", |
| 50 | "couleur_lien" => "#116587", |
| 51 | "couleur_lien_off" => "#81B7CD" |
| 52 | ), |
| 53 | // Gris |
| 54 | 6 => array ( |
| 55 | "couleur_foncee" => "#85909A", |
| 56 | "couleur_claire" => "#C0CAD4", |
| 57 | "couleur_lien" => "#3B5063", |
| 58 | "couleur_lien_off" => "#6D8499" |
| 59 | ), |
| 60 | ); |
| 61 | |
| 62 | |
| 63 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 64 | include 'inc_version.php'; |
| 65 | } |
| 66 | |
| 67 | include_spip('inc/cookie'); |
| 68 | |
| 69 | // |
| 70 | // Determiner l'action demandee |
| 71 | // |
| 72 | |
| 73 | $exec = _request('exec'); |
| 74 | |
| 75 | // |
| 76 | // Authentification, redefinissable |
| 77 | // |
| 78 | |
| 79 | if (autoriser_sans_cookie($exec)) { |
| 80 | if (!isset($reinstall)) $reinstall = 'non'; |
| 81 | $var_auth = true; |
| 82 | } else { |
| 83 | $auth = charger_fonction('auth', 'inc'); |
| 84 | $var_auth = $auth(); |
| 85 | if ($var_auth!=="") { |
| 86 | if ($var_auth===-1) exit(); |
| 87 | include_spip('inc/headers'); |
| 88 | redirige_par_entete(generer_url_public('login', |
| 89 | "url=" . |
| 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')), |
| 98 | true)); |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | // |
| 103 | // Preferences de presentation |
| 104 | // |
| 105 | |
| 106 | |
| 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']); |
| 111 | |
| 112 | $prefs_mod = false; |
| 113 | |
| 114 | if (isset($_GET['set_couleur'])) { |
| 115 | $GLOBALS['prefs']['couleur'] = floor($_GET['set_couleur']); |
| 116 | $prefs_mod = true; |
| 117 | } |
| 118 | if (isset($_GET['set_disp'])) { |
| 119 | $GLOBALS['prefs']['display'] = floor($_GET['set_disp']); |
| 120 | $prefs_mod = true; |
| 121 | } |
| 122 | if (isset($_GET['set_options']) AND ($_GET['set_options'] == 'avancees' OR $_GET['set_options'] == 'basiques')) { |
| 123 | $GLOBALS['prefs']['options'] = $_GET['set_options']; |
| 124 | $prefs_mod = true; |
| 125 | } |
| 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'])); |
| 128 | |
| 129 | if (isset($_GET['set_ecran'])) { |
| 130 | // Poser un cookie, |
| 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"; |
| 135 | |
| 136 | |
| 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; |
| 142 | |
| 143 | $GLOBALS['couleur_foncee'] = $GLOBALS['couleurs_spip'][$choix_couleur]['couleur_foncee']; |
| 144 | $GLOBALS['couleur_claire'] = $GLOBALS['couleurs_spip'][$choix_couleur]['couleur_claire']; |
| 145 | |
| 146 | // charger l'affichage minimal et initialiser a la langue par defaut |
| 147 | include_spip('inc/minipres'); |
| 148 | |
| 149 | // si la langue est specifiee par cookie alors ... |
| 150 | if (isset($GLOBALS['_COOKIE']['spip_lang_ecrire'])) { |
| 151 | |
| 152 | $spip_lang_ecrire = $GLOBALS['_COOKIE']['spip_lang_ecrire']; |
| 153 | // si pas authentifie, changer juste pour cette execution |
| 154 | if ($var_auth) |
| 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']); |
| 163 | } |
| 164 | } |
| 165 | } |
| 166 | |
| 167 | utiliser_langue_visiteur(); |
| 168 | |
| 169 | define('_TRANCHES', 10); |
| 170 | |
| 171 | // |
| 172 | // Gestion d'une page normale de l'espace prive |
| 173 | // |
| 174 | |
| 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'; |
| 180 | |
| 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'; |
| 188 | } |
| 189 | |
| 190 | // Verification des plugins |
| 191 | // (ne pas interrompre une restauration ou un upgrade) |
| 192 | elseif ($exec!='upgrade' |
| 193 | AND $GLOBALS['auteur_session']['statut']=='0minirezo' |
| 194 | AND !_DIR_RESTREINT |
| 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 |
| 202 | } |
| 203 | } |
| 204 | } |
| 205 | |
| 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']; |
| 211 | } |
| 212 | |
| 213 | // si nom pas plausible, prendre le script par defaut |
| 214 | if (!preg_match(',^[a-z_][0-9a-z_]*$,i', $exec)) $exec = "accueil"; |
| 215 | |
| 216 | // Trouver la fonction eventuellement surchagee |
| 217 | |
| 218 | $var_f = charger_fonction($exec); |
| 219 | |
| 220 | // Feu ! |
| 221 | |
| 222 | $var_f(); |
| 223 | |
| 224 | ?> |