[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/inc/ -> config.php (source)

   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>&nbsp;</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  ?>


Généré le : Wed Nov 21 10:20:27 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics