Subversion Repositories Sites.tela-botanica.org

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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>&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
?>