[ Index ] |
|
Code source de SPIP 1.9.2c |
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 if (!defined("_ECRIRE_INC_VERSION")) return; 15 include_spip('inc/meta'); 16 17 // 18 // Appliquer les valeurs par defaut pour les options non initialisees 19 // 20 // http://doc.spip.org/@init_config 21 function init_config() { 22 // langue par defaut du site = langue d'installation (cookie spip_lang) sinon francais 23 if (!$lang = $GLOBALS['spip_lang']) 24 $lang = 'fr'; 25 26 $liste_meta = array( 27 'nom_site' => _T('info_mon_site_spip'), 28 'descriptif_site' => '', 29 'activer_breves' => 'oui', 30 'config_precise_groupes' => 'non', 31 'mots_cles_forums' => 'non', 32 'articles_surtitre' => 'oui', 33 'articles_soustitre' => 'oui', 34 'articles_descriptif' => 'oui', 35 'articles_chapeau' => 'oui', 36 'articles_ps' => 'oui', 37 'articles_redac' => 'non', 38 'articles_mots' => 'oui', 39 'post_dates' => 'oui', 40 'articles_urlref' => 'non', 41 'creer_preview' => 'non', 42 'taille_preview' => 150, 43 'articles_modif' => 'non', 44 45 'activer_sites' => 'oui', 46 'proposer_sites' => 0, 47 'activer_syndic' => 'oui', 48 'visiter_sites' => 'non', 49 'moderation_sites' => 'non', 50 51 'forums_publics' => 'posteriori', 52 'accepter_inscriptions' => 'non', 53 'accepter_visiteurs' => 'non', 54 'prevenir_auteurs' => 'non', 55 'suivi_edito' => 'non', 56 'quoi_de_neuf' => 'non', 57 'forum_prive_admin' => 'non', 58 59 'activer_moteur' => 'oui', 60 'articles_versions' => 'non', 61 'articles_ortho' => 'non', 62 'preview' => 'non', 63 'activer_statistiques' => 'oui', 64 65 'documents_article' => 'oui', 66 'documents_rubrique' => 'non', 67 'charset' => _DEFAULT_CHARSET, 68 'syndication_integrale' => 'oui', 69 70 'creer_htpasswd' => 'non', 71 'creer_htaccess' => 'non', 72 73 'langue_site' => $lang, 74 75 'multi_articles' => 'non', 76 'multi_rubriques' => 'non', 77 'multi_secteurs' => 'non', 78 'gerer_trad' => 'non', 79 'langues_multilingue' => $GLOBALS['all_langs'] 80 ); 81 while (list($nom, $valeur) = each($liste_meta)) { 82 if (!$GLOBALS['meta'][$nom]) { 83 ecrire_meta($nom, $valeur); 84 $modifs = true; 85 } 86 } 87 88 if (isset($GLOBALS['meta']['nouvelle_install']) && $GLOBALS['meta']['nouvelle_install'] == 'oui') { 89 effacer_meta('nouvelle_install'); 90 $modifs = true; 91 } 92 93 if ($modifs) ecrire_metas(); 94 95 calculer_langues_utilisees(); 96 } 97 98 99 // http://doc.spip.org/@avertissement_config 100 function avertissement_config() { 101 global $spip_lang_right, $spip_lang_left; 102 $texte = debut_boite_info(true); 103 104 $texte .= "\n<div class='verdana2' style='text-align: justify'> 105 <p style='text-align: center'><b>"._T('avis_attention')."</b></p>"; 106 $texte .= http_img_pack("warning.gif", (_T('avis_attention')), 107 "width='48' height='48' style='float: $spip_lang_right; padding-$spip_lang_left: 10px;'"); 108 $texte .= _T('texte_inc_config'); 109 $texte .= "</div>"; 110 $texte .= fin_boite_info(true); 111 $texte .= "<p> </p>\n"; 112 113 return $texte; 114 } 115 116 117 // http://doc.spip.org/@bouton_radio 118 function bouton_radio($nom, $valeur, $titre, $actif = false, $onClick="") { 119 static $id_label = 0; 120 121 if (strlen($onClick) > 0) $onClick = " onclick=\"$onClick\""; 122 $texte = "<input type='radio' name='$nom' value='$valeur' id='label_$id_label'$onClick"; 123 if ($actif) { 124 $texte .= ' checked="checked"'; 125 $titre = '<b>'.$titre.'</b>'; 126 } 127 $texte .= " /> <label for='label_$id_label'>$titre</label>\n"; 128 $id_label++; 129 return $texte; 130 } 131 132 133 // http://doc.spip.org/@afficher_choix 134 function afficher_choix($nom, $valeur_actuelle, $valeurs, $sep = "<br />") { 135 while (list($valeur, $titre) = each($valeurs)) { 136 $choix[] = bouton_radio($nom, $valeur, $titre, $valeur == $valeur_actuelle); 137 } 138 return "\n".join($sep, $choix); 139 } 140 141 142 // 143 // Gestion des modifs 144 // 145 146 // http://doc.spip.org/@appliquer_modifs_config 147 function appliquer_modifs_config() { 148 global $email_webmaster, $descriptif_site, $email_envoi, $post_dates, $tester_proxy, $test_proxy, $http_proxy, $activer_moteur; 149 global $forums_publics, $forums_publics_appliquer; 150 global $charset, $charset_custom, $langues_auth; 151 global $retour_proxy; 152 153 if (_request('adresse_site')) 154 $_POST['adresse_site'] = preg_replace(",/?\s*$,", "", _request('adresse_site')); 155 156 // Purger les squelettes si un changement de meta les affecte 157 if ($post_dates AND ($post_dates != $GLOBALS['meta']["post_dates"])) 158 $purger_skel = true; 159 if ($forums_publics AND ($forums_publics != $GLOBALS['meta']["forums_publics"])) 160 $purger_skel = true; 161 162 // Appliquer les changements de moderation forum 163 // forums_publics_appliquer : futur, saufnon, tous 164 $accepter_forum = substr($forums_publics,0,3); 165 if ($forums_publics_appliquer == 'saufnon') 166 spip_query("UPDATE spip_articles SET accepter_forum='$accepter_forum' WHERE accepter_forum != 'non'"); 167 else if ($forums_publics_appliquer == 'tous') 168 spip_query("UPDATE spip_articles SET accepter_forum='$accepter_forum'"); 169 170 if ($accepter_forum == 'abo') 171 ecrire_meta('accepter_visiteurs', 'oui'); 172 173 // Test du proxy : $tester_proxy est le bouton "submit" 174 175 // http_proxy : ne pas prendre en compte la modif si le password est '****' 176 if (preg_match(',:\*\*\*\*@,', $http_proxy)) 177 $http_proxy = $GLOBALS['meta']['http_proxy']; 178 179 $retour_proxy = ''; 180 if ($tester_proxy) { 181 if (!$test_proxy) { 182 $retour_proxy = _T('info_adresse_non_indiquee'); 183 } else { 184 include_spip('inc/distant'); 185 $page = recuperer_page($test_proxy, true); 186 if ($page) 187 $retour_proxy = "<p>"._T('info_proxy_ok')."</p>\n<tt>".couper(entites_html($page),300)."</tt>"; 188 else 189 $retour_proxy = _T('info_impossible_lire_page', array('test_proxy' => $test_proxy))." <tt>".no_password_proxy_url($http_proxy)."</tt>.".aide('confhttpproxy'); 190 } 191 } 192 193 // Activer le moteur : dresser la liste des choses a indexer 194 if ($activer_moteur == 'oui' AND ($activer_moteur != $GLOBALS['meta']["activer_moteur"])) { 195 include_spip('inc/indexation'); 196 creer_liste_indexation(); 197 } 198 199 if ($langues_auth) { 200 set_request('langues_multilingue', join($langues_auth, ",")); 201 } 202 203 if (isset($email_webmaster)) 204 ecrire_meta("email_webmaster", $email_webmaster); 205 if (isset($email_envoi)) 206 ecrire_meta("email_envoi", $email_envoi); 207 if ($charset == 'custom') $charset = $charset_custom; 208 209 $liste_meta = array( 210 'nom_site', 211 'adresse_site', 212 'descriptif_site', 213 214 'activer_breves', 215 'config_precise_groupes', 216 'mots_cles_forums', 217 'articles_surtitre', 218 'articles_soustitre', 219 'articles_descriptif', 220 'articles_chapeau', 221 'articles_ps', 222 'articles_redac', 223 'articles_mots', 224 'post_dates', 225 'articles_urlref', 226 'creer_preview', 227 'taille_preview', 228 'articles_modif', 229 230 'activer_sites', 231 'proposer_sites', 232 'activer_syndic', 233 'visiter_sites', 234 'moderation_sites', 235 'http_proxy', 236 237 'forums_publics', 238 'accepter_inscriptions', 239 'accepter_visiteurs', 240 'prevenir_auteurs', 241 'suivi_edito', 242 'adresse_suivi', 243 'adresse_suivi_inscription', 244 'quoi_de_neuf', 245 'adresse_neuf', 246 'jours_neuf', 247 'forum_prive_admin', 248 249 'activer_moteur', 250 'articles_versions', 251 'articles_ortho', 252 'preview', 253 'activer_statistiques', 254 255 'documents_article', 256 'documents_rubrique', 257 'syndication_integrale', 258 259 'charset', 260 'multi_articles', 261 'multi_rubriques', 262 'multi_secteurs', 263 'gerer_trad', 264 'langues_multilingue' 265 ); 266 // Modification du reglage accepter_inscriptions => vider le cache 267 // (pour repercuter la modif sur le panneau de login) 268 if (isset($GLOBALS['accepter_inscriptions']) 269 AND ($GLOBALS['accepter_inscriptions'] 270 != $GLOBALS['meta']['accepter_inscriptions'])) { 271 include_spip('inc/invalideur'); 272 suivre_invalideur("1"); # tout effacer 273 } 274 275 foreach($liste_meta as $i) 276 if (!(_request($i)===NULL)) 277 ecrire_meta($i, _request($i)); 278 279 // langue_site : la globale est mangee par inc_version 280 if ($lang = $GLOBALS['changer_langue_site']) { 281 $lang2 = $GLOBALS['spip_lang']; 282 if (changer_langue($lang)) { 283 ecrire_meta('langue_site', $lang); 284 changer_langue($lang2); 285 } 286 } 287 288 ecrire_metas(); 289 290 // modifs de secu (necessitent une authentification ftp) 291 $liste_meta = array( 292 'creer_htpasswd', 293 'creer_htaccess' 294 ); 295 while (list(,$i) = each($liste_meta)) 296 if (isset($GLOBALS[$i]) AND ($GLOBALS[$i] != $GLOBALS['meta'][$i])) 297 $modif_secu=true; 298 if ($modif_secu) { 299 $admin = _T('info_modification_parametres_securite'); 300 include_spip('inc/admin'); 301 debut_admin($_POST['exec'], $admin); 302 reset($liste_meta); 303 while (list(,$i) = each($liste_meta)) 304 if (isset($GLOBALS[$i])) ecrire_meta($i, $GLOBALS[$i]); 305 ecrire_metas(); 306 fin_admin($admin); 307 } 308 309 if ($purger_skel) { 310 include_spip('inc/invalideur'); 311 purger_repertoire(_DIR_SKELS); 312 } 313 } 314 315 // Ne pas afficher la partie 'password' du proxy 316 // http://doc.spip.org/@no_password_proxy_url 317 function no_password_proxy_url($http_proxy) { 318 if ($p = @parse_url($http_proxy) 319 AND $p['pass']) { 320 $p['pass'] = '****'; 321 $http_proxy = glue_url($p); 322 } 323 return $http_proxy; 324 } 325 326 327 // Function glue_url : le pendant de parse_url 328 // http://doc.spip.org/@glue_url 329 function glue_url ($url){ 330 if (!is_array($url)){ 331 return false; 332 } 333 // scheme 334 $uri = (!empty($url['scheme'])) ? $url['scheme'].'://' : ''; 335 // user & pass 336 if (!empty($url['user'])){ 337 $uri .= $url['user'].':'.$url['pass'].'@'; 338 } 339 // host 340 $uri .= $url['host']; 341 // port 342 $port = (!empty($url['port'])) ? ':'.$url['port'] : ''; 343 $uri .= $port; 344 // path 345 $uri .= $url['path']; 346 // fragment or query 347 if (isset($url['fragment'])){ 348 $uri .= '#'.$url['fragment']; 349 } elseif (isset($url['query'])){ 350 $uri .= '?'.$url['query']; 351 } 352 return $uri; 353 } 354 355 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Wed Nov 21 10:20:27 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |