4 |
david |
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> <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 |
?>
|