Subversion Repositories Sites.tela-botanica.org

Rev

Rev 609 | Details | Compare with Previous | 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_META")) return;
17
define("_ECRIRE_INC_META", "1");
18
 
19
function lire_metas() {
20
	global $meta, $meta_maj;
21
 
22
	$meta = '';
23
	$meta_maj = '';
24
	$query = 'SELECT nom,valeur,UNIX_TIMESTAMP(maj) AS d FROM spip_meta';
25
	$result = spip_query($query);
26
	while ($row = spip_fetch_array($result)) {
27
		$nom = $row['nom'];
28
		$meta[$nom] = $row['valeur'];
29
		$meta_maj[$nom] = $row['d'];
30
	}
31
}
32
 
33
function ecrire_meta($nom, $valeur) {
34
	$valeur = addslashes($valeur);
35
	spip_query("REPLACE spip_meta (nom, valeur) VALUES ('$nom', '$valeur')");
36
}
37
 
38
function effacer_meta($nom) {
39
	spip_query("DELETE FROM spip_meta WHERE nom='$nom'");
40
}
41
 
42
//
43
// Mettre a jour le fichier cache des metas
44
//
45
// Ne pas oublier d'appeler cette fonction apres ecrire_meta() et effacer_meta() !
46
//
47
function ecrire_metas() {
48
	global $meta, $meta_maj;
49
 
50
	lire_metas();
51
 
52
	$s = '';
53
 
54
	if ($meta) {
55
		reset($meta);
56
		while (list($key, $val) = each($meta)) {
57
			$key = addslashes($key);
58
			$val = ereg_replace("([\\\\'])", "\\\\1", $val);
59
			$s .= "\$GLOBALS['meta']['$key'] = '$val';\n";
60
		}
61
		$s .= "\n";
62
	}
63
	if ($meta_maj) {
64
		reset($meta_maj);
65
		while (list($key, $val) = each($meta_maj)) {
66
			$key = addslashes($key);
67
			$s .= "\$GLOBALS['meta_maj']['$key'] = '$val';\n";
68
		}
69
		$s .= "\n";
70
	}
71
 
72
	if ($s) {
73
		$ok = ecrire_fichier (_DIR_SESSIONS . 'meta_cache.php3',
74
				      '<'.'?php
75
 
76
if (defined("_DATA_META_CACHE")) return;
77
define("_DATA_META_CACHE", "1");
78
'
79
				      . $s . '?'.'>');
80
		if (!$ok && $GLOBALS['connect_statut'] == '0minirezo')
81
		  echo "<h4 font color=red>"._T('texte_inc_meta_1')." <a href='../spip_test_dirs.php3'>"._T('texte_inc_meta_2')."</a> "._T('texte_inc_meta_3')."&nbsp;</h4>\n";
82
	}
83
}
84
 
85
// On force lire_metas() si le cache n'a pas ete utilise
86
if (!isset($GLOBALS['meta']))
87
	lire_metas();
88
 
89
?>