From ba116d1f81be834c58481e7a0f4c0b9aa7fc4fb2 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Mon, 18 Dec 2006 15:48:15 +0000
Subject: [PATCH] meta m'a tuer (aussi) essayons comme ca voir si on a plus de
 chance ...

---
 ecrire/base/upgrade.php | 4 ++--
 ecrire/inc/acces.php    | 6 +++---
 ecrire/inc/meta.php     | 8 ++++++--
 ecrire/inc_version.php  | 2 +-
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/ecrire/base/upgrade.php b/ecrire/base/upgrade.php
index 5983ecb0df..905a540860 100644
--- a/ecrire/base/upgrade.php
+++ b/ecrire/base/upgrade.php
@@ -1222,13 +1222,13 @@ function maj_base($version_cible = 0) {
 		spip_query("ALTER IGNORE TABLE spip_documents_rubriques DROP INDEX id_rubrique");
 		maj_version('1.920');
 	}
-	if (upgrade_vers(1.921, $version_installee, $version_cible)) {
+	if (upgrade_vers(1.922, $version_installee, $version_cible)) {
 		spip_query("ALTER TABLE spip_meta ADD impt ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER valeur");
 		$meta_serveur = array('version_installee','adresse_site','alea_ephemere_ancien','alea_ephemere','alea_ephemere_date','langue_site','langues_proposees','date_calcul_rubriques','derniere_modif','optimiser_table','drapeau_edition','creer_preview','taille_preview','creer_htpasswd','creer_htaccess','gd_formats_read','gd_formats',
 		'netpbm_formats','formats_graphiques','image_process','plugin_header','plugin');
 		foreach($meta_serveur as $nom)
 			spip_query("UPDATE spip_meta SET impt='non' WHERE nom="._q($nom));
-		maj_version('1.921');
+		maj_version('1.922');
 	}
 }
 
diff --git a/ecrire/inc/acces.php b/ecrire/inc/acces.php
index 49bb1b0880..2cc545e09c 100644
--- a/ecrire/inc/acces.php
+++ b/ecrire/inc/acces.php
@@ -69,9 +69,9 @@ function creer_uniqid() {
 function renouvelle_alea()
 {
 	$alea = md5(creer_uniqid());
-	ecrire_meta('alea_ephemere_ancien', $GLOBALS['meta']['alea_ephemere']);
-	ecrire_meta('alea_ephemere', $alea);
-	ecrire_meta('alea_ephemere_date', time());
+	ecrire_meta('alea_ephemere_ancien', $GLOBALS['meta']['alea_ephemere'],'non');
+	ecrire_meta('alea_ephemere', $alea,'non');
+	ecrire_meta('alea_ephemere_date', time(),'non');
 	ecrire_metas();
 	spip_log("renouvellement de l'alea_ephemere: $alea");
 }
diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php
index a8efdc3095..61013e1991 100644
--- a/ecrire/inc/meta.php
+++ b/ecrire/inc/meta.php
@@ -32,8 +32,12 @@ function ecrire_meta($nom, $valeur, $importable = NULL) {
 		$GLOBALS['meta'][$nom] = $valeur; 
 		if (!_FILE_CONNECT && !@file_exists(_FILE_CONNECT_INS .'.php')) return;
 		// conserver la valeur de impt si existante
-		if ($importable === NULL)
-			spip_query("REPLACE spip_meta (nom, valeur) VALUES ("._q($nom).", " . _q($valeur) . ")");
+		if ($importable === NULL){
+			if (@spip_num_rows(spip_query("SELECT * FROM spip_meta WHERE nom="._q($nom))))
+				spip_query("UPDATE spip_meta SET valeur=" . _q($valeur) . " WHERE nom="._q($nom));
+			else
+				spip_query("INSERT spip_meta (nom, valeur) VALUES ("._q($nom).", " . _q($valeur) . ")");
+		}
 		else
 			spip_query("REPLACE spip_meta (nom, valeur, impt) VALUES ("._q($nom).", " . _q($valeur) . ","._q($importable).")");
 	}
diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index c35365b5fe..063680547a 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -284,7 +284,7 @@ $tables_des_serveurs_sql['localhost'] =  &$tables_principales;
 // (utilise pour les modifs de la base de donnees)
 
 // version de la base
-$spip_version = 1.921;
+$spip_version = 1.922;
 
 // version de spip en chaine
 // et en numerique a incrementer sur les evolutions qui cassent la compatibilite descendante
-- 
GitLab