[ Index ]
 

Code source de SPIP 1.8.3

Accédez au Source d'autres logiciels libres | Soutenez Angelica Josefina !

title

Body

[fermer]

/ecrire/ -> inc_config.php3 (source)

   1  <?php
   2  
   3  /***************************************************************************\
   4   *  SPIP, Systeme de publication pour l'internet                           *
   5   *                                                                         *
   6   *  Copyright (c) 2001-2005                                                *
   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  //
  15  // Ce fichier ne sera execute qu'une fois
  16  if (defined("_ECRIRE_INC_CONFIG")) return;
  17  define("_ECRIRE_INC_CONFIG", "1");
  18  
  19  include_ecrire  ("inc_meta.php3");
  20  include_ecrire  ("inc_admin.php3");
  21  include_ecrire  ("inc_mail.php3");
  22  
  23  
  24  
  25  //
  26  // Appliquer les valeurs par defaut pour les options non initialisees
  27  //
  28  function init_config() {
  29      // langue par defaut du site = langue d'installation (cookie spip_lang) sinon francais
  30      if (!$lang = $GLOBALS['spip_lang'])
  31          $lang = 'fr';
  32  
  33      $liste_meta = array(
  34          'activer_breves' => 'oui',
  35          'config_precise_groupes' => 'non',
  36          'mots_cles_forums' =>  'non',
  37          'articles_surtitre' => 'oui',
  38          'articles_soustitre' => 'oui',
  39          'articles_descriptif' => 'oui',
  40          'articles_chapeau' => 'oui',
  41          'articles_ps' => 'oui',
  42          'articles_redac' => 'non',
  43          'articles_mots' => 'oui',
  44          'post_dates' => 'oui',
  45          'articles_urlref' => 'non',
  46          'creer_preview' => 'non',
  47          'taille_preview' => 150,
  48          'articles_modif' => 'non',
  49  
  50          'activer_sites' => 'oui',
  51          'proposer_sites' => 0,
  52          'activer_syndic' => 'oui',
  53          'visiter_sites' => 'non',
  54          'moderation_sites' => 'non',
  55  
  56          'forums_publics' => 'posteriori',
  57          'accepter_inscriptions' => 'non',
  58          'accepter_visiteurs' => 'non',
  59          'prevenir_auteurs' => 'non',
  60          'suivi_edito' => 'non',
  61          'quoi_de_neuf' => 'non',
  62          'forum_prive_admin' => 'non',
  63  
  64          'activer_moteur' => 'oui',
  65          'articles_versions' => 'non',
  66          'articles_ortho' => 'non',
  67          'preview' => 'non',
  68          'activer_statistiques' => 'oui',
  69  
  70          'documents_article' => 'oui',
  71          'documents_rubrique' => 'non',
  72          'charset' => 'iso-8859-1',
  73  
  74          'creer_htpasswd' => 'non',
  75          'creer_htaccess' => 'non',
  76  
  77          'langue_site' => $lang,
  78  
  79          'multi_articles' => 'non',
  80          'multi_rubriques' => 'non',
  81          'multi_secteurs' => 'non',
  82          'gerer_trad' => 'non',
  83          'langues_multilingue' => $GLOBALS['all_langs']
  84      );
  85      while (list($nom, $valeur) = each($liste_meta)) {
  86          if (!lire_meta($nom)) {
  87              ecrire_meta($nom, $valeur);
  88              $modifs = true;
  89          }
  90      }
  91  
  92      // Cas particulier : charset regle a utf-8 uniquement si nouvelle installation
  93      if (lire_meta('nouvelle_install') == 'oui') {
  94          //ecrire_meta('charset', 'utf-8');
  95          effacer_meta('nouvelle_install');
  96          $modifs = true;
  97      }
  98  
  99      if ($modifs) ecrire_metas();
 100  }
 101  
 102  
 103  function avertissement_config() {
 104      global $spip_lang_right, $spip_lang_left;
 105      debut_boite_info();
 106  
 107      echo "<div class='verdana2' align='justify'>
 108      <p align='center'><B>"._T('avis_attention')."</B></p>",
 109        http_img_pack("warning.gif", addslashes(_T('avis_attention')), "width='48' height='48' align='$spip_lang_right' style='padding-$spip_lang_left: 10px;'");
 110  
 111      echo _T('texte_inc_config');
 112  
 113      echo "</div>";
 114  
 115      fin_boite_info();
 116      echo "<p>&nbsp;<p>";
 117  }
 118  
 119  
 120  function bouton_radio($nom, $valeur, $titre, $actif = false, $onClick="") {
 121      static $id_label = 0;
 122      
 123      if (strlen($onClick) > 0) $onClick = " onClick=\"$onClick\"";
 124      $texte = "<input type='radio' name='$nom' value='$valeur' id='label_$id_label'$onClick";
 125      if ($actif) {
 126          $texte .= ' checked';
 127          $titre = '<b>'.$titre.'</b>';
 128      }
 129      $texte .= "> <label for='label_$id_label'>$titre</label>\n";
 130      $id_label++;
 131      return $texte;
 132  }
 133  
 134  
 135  function afficher_choix($nom, $valeur_actuelle, $valeurs, $sep = "<br>") {
 136      while (list($valeur, $titre) = each($valeurs)) {
 137          $choix[] = bouton_radio($nom, $valeur, $titre, $valeur == $valeur_actuelle);
 138      }
 139      echo "\n".join($sep, $choix);
 140  }
 141  
 142  
 143  //
 144  // Gestion des modifs
 145  //
 146  
 147  function appliquer_modifs_config() {
 148      global $clean_link, $connect_id_auteur;
 149      global $adresse_site, $email_webmaster, $email_envoi, $post_dates, $tester_proxy, $test_proxy, $http_proxy, $activer_moteur;
 150      global $forums_publics, $forums_publics_appliquer;
 151      global $charset, $charset_custom, $langues_auth;
 152  
 153      $adresse_site = ereg_replace("/$", "", $adresse_site);
 154  
 155      // Purger les squelettes si un changement de meta les affecte
 156      if ($post_dates AND ($post_dates != lire_meta("post_dates")))
 157          $purger_skel = true;
 158      if ($forums_publics AND ($forums_publics != lire_meta("forums_publics")))
 159          $purger_skel = true;
 160  
 161      // Appliquer les changements de moderation forum
 162      // forums_publics_appliquer : futur, saufnon, tous
 163      $accepter_forum = substr($forums_publics,0,3);
 164      $requete_appliquer = ($forums_publics_appliquer == 'saufnon') ?
 165          "UPDATE spip_articles SET accepter_forum='$accepter_forum'
 166          WHERE accepter_forum != 'non'" : 
 167          (($forums_publics_appliquer == 'tous') ?
 168              "UPDATE spip_articles SET accepter_forum='$accepter_forum'" : '');
 169      if ($requete_appliquer) spip_query($requete_appliquer);
 170  
 171      if ($accepter_forum == 'abo')
 172          ecrire_meta('accepter_visiteurs', 'oui');
 173  
 174      // Test du proxy : $tester_proxy est le bouton "submit"
 175  
 176      // http_proxy : ne pas prendre en compte la modif si le password est '****'
 177      if (preg_match(',:\*\*\*\*@,', $http_proxy))
 178          $http_proxy = lire_meta('http_proxy');
 179  
 180      if ($tester_proxy) {
 181          if (!$test_proxy) {
 182              echo _T('info_adresse_non_indiquee');
 183              exit;
 184          } else {
 185              include_ecrire ("inc_sites.php3");
 186              $page = recuperer_page($test_proxy, true);
 187              if ($page)
 188                  echo "<pre>".entites_html($page)."</pre>";
 189              else
 190                  echo _T('info_impossible_lire_page', array('test_proxy' => $test_proxy))." <tt>".no_password_proxy_url($http_proxy)."</tt>.".aide('confhttpproxy');
 191              exit;
 192          }
 193      }
 194  
 195      // Activer le moteur : dresser la liste des choses a indexer
 196      if ($activer_moteur == 'oui' AND ($activer_moteur != lire_meta("activer_moteur"))) {
 197          include_ecrire ('inc_index.php3');
 198          creer_liste_indexation();
 199      }
 200  
 201      if ($langues_auth) {
 202          $GLOBALS['langues_multilingue'] = join($langues_auth, ",");
 203      }
 204  
 205      if (isset($email_webmaster))
 206          ecrire_meta("email_webmaster", $email_webmaster);
 207      if (isset($email_envoi))
 208          ecrire_meta("email_envoi", $email_envoi);
 209      if ($charset == 'custom') $charset = $charset_custom;
 210  
 211      $liste_meta = array(
 212          'nom_site',
 213          'adresse_site',
 214  
 215          'activer_breves',
 216          'config_precise_groupes',
 217          'mots_cles_forums',
 218          'articles_surtitre',
 219          'articles_soustitre',
 220          'articles_descriptif',
 221          'articles_chapeau',
 222          'articles_ps',
 223          'articles_redac',
 224          'articles_mots',
 225          'post_dates',
 226          'articles_urlref',
 227          'creer_preview',
 228          'taille_preview',
 229          'articles_modif',
 230  
 231          'activer_sites',
 232          'proposer_sites',
 233          'activer_syndic',
 234          'visiter_sites',
 235          'moderation_sites',
 236          'http_proxy',
 237  
 238          'forums_publics',
 239          'accepter_inscriptions',
 240          'accepter_visiteurs',
 241          'prevenir_auteurs',
 242          'suivi_edito',
 243          'adresse_suivi',
 244          'adresse_suivi_inscription',
 245          'quoi_de_neuf',
 246          'adresse_neuf',
 247          'jours_neuf',
 248          'forum_prive_admin',
 249  
 250          'activer_moteur',
 251          'articles_versions',
 252          'articles_ortho',
 253          'preview',
 254          'activer_statistiques',
 255  
 256          'documents_article',
 257          'documents_rubrique',
 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      != lire_meta('accepter_inscriptions'))) {
 271          include_ecrire ('inc_invalideur.php3');
 272          suivre_invalideur("1"); # tout effacer
 273      }
 274  
 275      while (list(,$i) = each($liste_meta))
 276          if (isset($GLOBALS[$i])) ecrire_meta($i, $GLOBALS[$i]);
 277  
 278      // langue_site : la globale est mangee par inc_version
 279      if ($lang = $GLOBALS['changer_langue_site']) {
 280          $lang2 = $GLOBALS['spip_lang'];
 281          if (changer_langue($lang)) {
 282              ecrire_meta('langue_site', $lang);
 283              changer_langue($lang2);
 284          }
 285      }
 286  
 287      ecrire_metas();
 288  
 289      // modifs de secu (necessitent une authentification ftp)
 290      $liste_meta = array(
 291                  'creer_htpasswd',
 292                  'creer_htaccess'
 293      );
 294      while (list(,$i) = each($liste_meta))
 295          if (isset($GLOBALS[$i]) AND ($GLOBALS[$i] != lire_meta($i)))
 296              $modif_secu=true;
 297      if ($modif_secu) {
 298          include_ecrire ('inc_admin.php3');
 299          $admin = _T('info_modification_parametres_securite');
 300          debut_admin($admin);
 301          reset($liste_meta);
 302          while (list(,$i) = each($liste_meta))
 303              if (isset($GLOBALS[$i])) ecrire_meta($i, $GLOBALS[$i]);
 304          ecrire_metas();
 305          fin_admin($admin);
 306      }
 307  
 308      if ($purger_skel) {
 309          redirige_par_entete("../spip_cache.php3?purger_squelettes=oui&id_auteur=$connect_id_auteur&hash=" .
 310                      calculer_action_auteur("purger_squelettes") .
 311                      "&redirect=".  _DIR_RESTREINT_ABS .
 312                      urlencode($clean_link->getUrl()));
 313      }
 314  }
 315  
 316  ?>


Généré le : Thu Feb 22 22:27:47 2007 par Balluche grâce à PHPXref 0.7