From 02bf997271f4d09e91c8fcb9cecd08f06f2400c4 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 12 Apr 2012 12:04:52 -0400
Subject: [PATCH] Merged revisions 3028-3045 from stable branch.

---
 interface/lib/classes/db_mysql.inc.php |   36 +++++++++++++++++++++++++++++++-----
 1 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index 8cbd2aa..83fcd57 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -286,9 +286,21 @@
     //** Inserts a record and saves the changes into the datalog
     public function datalogInsert($tablename, $insert_data, $index_field) {
       global $app;
+	  
+	  if(is_array($insert_data)) {
+			$key_str = '';
+			$val_str = '';
+			foreach($insert_data as $key => $val) {
+				$key_str .= "`".$key ."`,";
+				$val_str .= "'".$this->quote($val)."',";
+			}
+			$insert_data_str = '('.$key_str.') VALUES ('.$val_str.')';
+		} else {
+			$insert_data_str = $insert_data;
+		}
 
       $old_rec = array();
-      $this->query("INSERT INTO $tablename $insert_data");
+      $this->query("INSERT INTO $tablename $insert_data_str");
       $index_value = $this->insertID();
       $new_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
       $this->datalogSave($tablename, 'INSERT', $index_field, $index_value, $old_rec, $new_rec);
@@ -297,10 +309,24 @@
     }
 
     //** Updates a record and saves the changes into the datalog
-    public function datalogUpdate($tablename, $update_data, $index_field, $index_value) {
-      global $app;
-
-      $old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
+    public function datalogUpdate($tablename, $update_data, $index_field, $index_value, $force_update = false) {
+		global $app;
+      
+	  if($force_update == true) {
+		$old_rec = array();
+	  } else {
+		$old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
+	  }
+	  
+	  if(is_array($update_data)) {
+			$update_data_str = '';
+			foreach($update_data as $key => $val) {
+				$update_data_str .= "`".$key ."` = '".$this->quote($val)."',";
+			}
+		} else {
+			$update_data_str = $update_data;
+		}
+		
       $this->query("UPDATE $tablename SET $update_data WHERE $index_field = '$index_value'");
       $new_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
       $this->datalogSave($tablename, 'UPDATE', $index_field, $index_value, $old_rec, $new_rec);

--
Gitblit v1.9.1