From 532ae591db5b5f020abf60609ded0d2d32b76d86 Mon Sep 17 00:00:00 2001
From: latham <latham@ispconfig3>
Date: Fri, 08 Apr 2011 15:50:11 -0400
Subject: [PATCH] Remove DOS line returns lathama

---
 interface/lib/classes/form.inc.php |  948 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 474 insertions(+), 474 deletions(-)

diff --git a/interface/lib/classes/form.inc.php b/interface/lib/classes/form.inc.php
index f0e8de6..99f6cfb 100644
--- a/interface/lib/classes/form.inc.php
+++ b/interface/lib/classes/form.inc.php
@@ -1,475 +1,475 @@
-<?php
-
-/*
-Copyright (c) 2007, Till Brehm, projektfarm Gmbh
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-    * Neither the name of ISPConfig nor the names of its contributors
-      may be used to endorse or promote products derived from this software without
-      specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/**
-* Formularbehandlung
-*
-* Funktionen zur Umwandlung von Formulardaten
-* sowie zum vorbereiten von HTML und SQL
-* Ausgaben
-*
-*	Tabellendefinition
-*	
-*	Datentypen:
-*	- INTEGER (Wandelt Ausdr�cke in Int um)
-*	- DOUBLE
-*	- CURRENCY (Formatiert Zahlen nach W�hrungsnotation)
-*	- VARCHAR (kein weiterer Format Check)
-*	- DATE (Datumsformat, Timestamp Umwandlung)
-*	
-*	Formtype:
-*	- TEXT (normales Textfeld)
-*	- PASSWORD (Feldinhalt wird nicht angezeigt)
-*	- SELECT (Gibt Werte als option Feld aus)
-*	- MULTIPLE (Select-Feld mit nehreren Werten)
-*	
-*	VALUE:
-*	- Wert oder Array
-*	
-*	SEPARATOR
-*	- Trennzeichen f�r multiple Felder
-*
-*	Hinweis:
-*	Das ID-Feld ist nicht bei den Table Values einzuf�gen.
-*
-* @package form
-* @author Till Brehm
-* @version 1.1
-*/
-
-class form {
-	
-	/**
-	* Definition der Tabelle (array)
-	* @var tableDef
-	*/
-	var $tableDef;
-	
-	/**
-	* Private
-	* @var action
-	*/
-	var $action;
-	
-	/**
-	* Tabellenname (String)
-	* @var table_name
-	*/
-	var $table_name;
-	
-	/**
-	* Debug Variable
-	* @var debug
-	*/
-	var $debug = 0;
-	
-	/**
-	* name des primary Field der Tabelle (string)
-	* @var table_index
-	*/
-	var $table_index;
-	
-	/**
-	* enth�lt die Fehlermeldung bei �berpr�fung
-	* der Variablen mit Regex
-	* @var errorMessage
-	*/
-	var $errorMessage;
-	
-	var $dateformat = "d.m.Y";
-    var $formDef;
-	
-	/**
-	* Laden der Tabellendefinition
-	*
-	* @param file: Pfad zur Tabellendefinition
-	* @return true
-	*/
-	function loadTableDef($file) {
-		global $app,$conf;
-		
-		include_once($file);
-		$this->tableDef = $table;
-		$this->table_name = $table_name;
-		$this->table_index = $table_index;
-		return true;
-	}
-    
-    function loadFormDef($file) {
-		global $app,$conf;
-		
-		include_once($file);
-		$this->formDef = $form;
-		return true;
-	}
-	
-	
-	/**
-	* Konvertiert die Daten des �bergebenen assoziativen
-	* Arrays in "menschenlesbare" Form.
-	* Datentyp Konvertierung, z.B. f�r Ausgabe in Listen.
-	*
-	* @param record
-	* @return record
-	*/
-	function decode($record) {
-		if(is_array($record)) {
-			foreach($record as $key => $val) {
-				switch ($this->tableDef[$key]['datatype']) {
-				case 'VARCHAR':
-					$new_record[$key] = stripslashes($val);
-				break;
-				
-				case 'DATE':
-					if($val > 0) {
-						$new_record[$key] = date($this->dateformat,$val);
-					}
-				break;
-				
-				case 'INTEGER':
-					$new_record[$key] = intval($val);
-				break;
-				
-				case 'DOUBLE':
-					$new_record[$key] = $val;
-				break;
-				
-				case 'CURRENCY':
-					$new_record[$key] = number_format($val, 2, ',', '');
-				break;
-				
-				default:
-					$new_record[$key] = stripslashes($val);
-				}
-			}
-			
-		}
-	return $new_record;
-	}
-	
-	/**
-	* Record f�r Ausgabe in Formularen vorbereiten.
-	*
-	* @param record = Datensatz als Array
-	* @param action = NEW oder EDIT 
-	* @return record
-	*/
-	function getHTML($record,$action = 'NEW') {
-		
-		global $app;
-		
-		if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden.");
-		
-		$new_record = array();
-		if($action == 'EDIT') {
-			$record = $this->decode($record);
-			if(is_array($record)) {
-				foreach($record as $key => $val) {
-					switch ($this->tableDef[$key]['formtype']) {
-					case 'SELECT':
-						if(is_array($this->tableDef[$key]['value'])) {
-							$out = '';
-							foreach($this->tableDef[$key]['value'] as $k => $v) {
-								$selected = ($k == $val)?' SELECTED':'';
-								$out .= "<option value='$k'$selected>$v</option>\r\n";
-							}
-						}
-						$new_record[$key] = $out;
-					break;
-					case 'MULTIPLE':
-						if(is_array($this->tableDef[$key]['value'])) {
-							
-							// aufsplitten ergebnisse
-							$vals = explode($this->tableDef[$key]['separator'],$val);
-							
-							// HTML schreiben
-							$out = '';
-							foreach($this->tableDef[$key]['value'] as $k => $v) {
-								
-								$selected = '';
-								foreach($vals as $tvl) {
-									if(trim($tvl) == trim($k)) $selected = ' SELECTED';
-								}
-								
-								$out .= "<option value='$k'$selected>$v</option>\r\n";
-							}
-						}
-						$new_record[$key] = $out;
-					break;
-					
-					case 'PASSWORD':
-						$new_record[$key] = '';
-					break;
-					
-					default:
-						$new_record[$key] = htmlspecialchars($val);
-					}
-				}
-			}
-		} else {
-			foreach($this->tableDef as $key => $val) {
-				switch ($this->tableDef[$key]['formtype']) {
-				case 'SELECT':
-					if(is_array($this->tableDef[$key]['value'])) {
-						$out = '';
-						foreach($this->tableDef[$key]['value'] as $k => $v) {
-							$selected = ($k == $val)?' SELECTED':'';
-							$out .= "<option value='$k'$selected>$v</option>\r\n";
-						}
-					}
-					$new_record[$key] = $out;
-				break;
-				case 'MULTIPLE':
-						if(is_array($this->tableDef[$key]['value'])) {
-							
-							// aufsplitten ergebnisse
-							$vals = explode($this->tableDef[$key]['separator'],$val);
-							
-							// HTML schreiben
-							$out = '';
-							foreach($this->tableDef[$key]['value'] as $k => $v) {
-								
-								$out .= "<option value='$k'>$v</option>\r\n";
-							}
-						}
-						$new_record[$key] = $out;
-					break;
-				
-				case 'PASSWORD':
-					$new_record[$key] = '';
-				break;
-				
-				default:
-					$new_record[$key] = htmlspecialchars($this->tableDef[$key]['value']);
-				}
-			}
-		
-		}
-		
-		if($this->debug == 1) $this->dbg($new_record);
-		
-		return $new_record;
-	}
-	
-	/**
-	* Record in "maschinen lesbares" Format �berf�hren
-	* und Werte gegen regul�re Ausdr�cke pr�fen.
-	*
-	* @param record = Datensatz als Array
-	* @return record
-	*/
-	function encode($record) {
-		
-		$this->errorMessage = '';
-		
-		if(is_array($record)) {
-			foreach($record as $key => $val) {
-				switch ($this->tableDef[$key]['datatype']) {
-				case 'VARCHAR':
-					if(!is_array($val)) {
-						$new_record[$key] = mysql_real_escape_string($val);
-					} else {
-						$new_record[$key] = implode($this->tableDef[$key]['separator'],$val);
-					}
-				break;
-				case 'DATE':
-					if($val > 0) {
-						list($tag,$monat,$jahr) = explode('.',$val);
-						$new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr);
-					}
-				break;
-				case 'INTEGER':
-					$new_record[$key] = intval($val);
-				break;
-				case 'DOUBLE':
-					$new_record[$key] = mysql_real_escape_string($val);
-				break;
-				case 'CURRENCY':
-					$new_record[$key] = str_replace(",",".",$val);
-				break;
-				}
-				
-				if($this->tableDef[$key]['regex'] != '') {
-					// Enable that "." matches also newlines
-					$this->tableDef[$key]['regex'] .= 's';
-					if(!preg_match($this->tableDef[$key]['regex'], $val)) {
-						$this->errorMessage .= $this->tableDef[$key]['errmsg']."<br>\r\n";
-					}
-				}
-			}
-			
-		}
-		return $new_record;
-	}
-	
-	/**
-	* SQL Statement f�r Record erzeugen.
-	*
-	* @param record = Datensatz als Array
-	* @param action = INSERT oder UPDATE
-	* @param primary_id
-	* @return record
-	*/
-	function getSQL($record, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') {
-		
-		global $app;
-		
-		$record = $this->encode($record);
-		$sql_insert_key = '';
-		$sql_insert_val = '';
-		$sql_update = '';
-		
-		if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden.");
-		
-		// gehe durch alle Felder des Records
-		if(is_array($record)) {
-        foreach($record as $key => $val) {
-			// Wenn es kein leeres Passwortfeld ist
-			if (!($this->tableDef[$key]['formtype'] == 'PASSWORD' and $val == '')) {
-				// gehe durch alle Felder der TableDef
-				foreach($this->tableDef as $tk => $tv) {
-					// Wenn Feld in TableDef enthalten ist
-					if($tk == $key) {
-						// Erzeuge Insert oder Update Quelltext
-						if($action == "INSERT") {
-							
-							if($this->tableDef[$key]['formtype'] == 'PASSWORD') {
-								$sql_insert_key .= "`$key`, ";
-								$sql_insert_val .= "md5('$val'), ";
-							//} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') {
-							//	$val = implode($this->tableDef[$key]['separator'],$val);
-							//	$sql_insert_key .= "`$key`, ";
-							//	$sql_insert_val .= "'$val', ";
-							} else {
-								$sql_insert_key .= "`$key`, ";
-								$sql_insert_val .= "'$val', ";
-							}
-							
-						} else {
-							
-							if($this->tableDef[$key]['formtype'] == 'PASSWORD') {
-								$sql_update .= "`$key` = md5('$val'), ";
-							//} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') {
-							//	$val = implode($this->tableDef[$key]['separator'],$val);
-							//	$sql_update .= "`$key` = '$val', ";
-							} else {
-								$sql_update .= "`$key` = '$val', ";
-							}
-							
-						}
-					}
-				}
-			}
-		}
-        }
-		
-		// F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein
-		if(stristr($this->table_name,'.')) {
-			$escape = '';
-		} else {
-			$escape = '`';
-		}
-		
-		
-		if($action == "INSERT") {
-			$sql_insert_key = substr($sql_insert_key,0,-2);
-			$sql_insert_val = substr($sql_insert_val,0,-2);
-			$sql = "INSERT INTO ".$escape.$this->table_name.$escape." ($sql_insert_key) VALUES ($sql_insert_val)";
-		} else {
-			if($primary_id != 0) {
-				$sql_update = substr($sql_update,0,-2);
-				$sql = "UPDATE ".$escape.$this->table_name.$escape." SET ".$sql_update." WHERE ".$this->table_index ." = ".$primary_id;
-				if($sql_ext_where != '') $sql .= " and ".$sql_ext_where;
-			} else {
-				$app->error("Primary ID fehlt!");
-			}
-		}
-		
-		return $sql;
-	}
-	
-	/**
-	* Debugging arrays.
-	*
-	* @param array_data
-	*/
-	function dbg($array_data) {
-		
-		echo "<pre>";
-		print_r($array_data);
-		echo "</pre>";
-		
-	}
-    
-    
-    function showForm() {
-    	global $app,$conf;
-        
-        if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen.");
-        
-        if($this->errorMessage == '') {
-        	// wenn kein Fehler vorliegt
-			if($_REQUEST["next_tab"] != '') {
-            	// wenn n�chster Tab bekannt
-            	$active_tab = $_REQUEST["next_tab"];
-            } else {
-            	// ansonsten ersten tab nehmen
-            	$active_tab = $this->formDef["tabs"][0]["name"];
-            }
-		} else {
-        	// bei Fehlern den gleichen Tab nochmal anzeigen
-            $active_tab = $_SESSION["s"]["form"]["tab"];
-		}
-        
-        // definiere Tabs
-        foreach( $this->formDef["tabs"] as $tab) {
-            
-            if($tab["name"] == $active_tab) {
-            	$app->tpl->setInclude('content_tpl',$tab["template"]);
-                $tab["active"] = 1;
-                $_SESSION["s"]["form"]["tab"] = $tab["name"];
-            } else {
-            	$tab["active"] = 0;
-            }
-			
-            $frmTab[] = $tab;
-        }
-        
-        // setze Loop
-        $app->tpl->setLoop("formTab", $frmTab);
-
-		// Formular action setzen
-		$app->tpl->setVar('form_action',$this->formDef["action"]);
-    }
-	
-	
-}
-
+<?php
+
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/**
+* Formularbehandlung
+*
+* Funktionen zur Umwandlung von Formulardaten
+* sowie zum vorbereiten von HTML und SQL
+* Ausgaben
+*
+*	Tabellendefinition
+*	
+*	Datentypen:
+*	- INTEGER (Wandelt Ausdr�cke in Int um)
+*	- DOUBLE
+*	- CURRENCY (Formatiert Zahlen nach W�hrungsnotation)
+*	- VARCHAR (kein weiterer Format Check)
+*	- DATE (Datumsformat, Timestamp Umwandlung)
+*	
+*	Formtype:
+*	- TEXT (normales Textfeld)
+*	- PASSWORD (Feldinhalt wird nicht angezeigt)
+*	- SELECT (Gibt Werte als option Feld aus)
+*	- MULTIPLE (Select-Feld mit nehreren Werten)
+*	
+*	VALUE:
+*	- Wert oder Array
+*	
+*	SEPARATOR
+*	- Trennzeichen f�r multiple Felder
+*
+*	Hinweis:
+*	Das ID-Feld ist nicht bei den Table Values einzuf�gen.
+*
+* @package form
+* @author Till Brehm
+* @version 1.1
+*/
+
+class form {
+	
+	/**
+	* Definition der Tabelle (array)
+	* @var tableDef
+	*/
+	var $tableDef;
+	
+	/**
+	* Private
+	* @var action
+	*/
+	var $action;
+	
+	/**
+	* Tabellenname (String)
+	* @var table_name
+	*/
+	var $table_name;
+	
+	/**
+	* Debug Variable
+	* @var debug
+	*/
+	var $debug = 0;
+	
+	/**
+	* name des primary Field der Tabelle (string)
+	* @var table_index
+	*/
+	var $table_index;
+	
+	/**
+	* enth�lt die Fehlermeldung bei �berpr�fung
+	* der Variablen mit Regex
+	* @var errorMessage
+	*/
+	var $errorMessage;
+	
+	var $dateformat = "d.m.Y";
+    var $formDef;
+	
+	/**
+	* Laden der Tabellendefinition
+	*
+	* @param file: Pfad zur Tabellendefinition
+	* @return true
+	*/
+	function loadTableDef($file) {
+		global $app,$conf;
+		
+		include_once($file);
+		$this->tableDef = $table;
+		$this->table_name = $table_name;
+		$this->table_index = $table_index;
+		return true;
+	}
+    
+    function loadFormDef($file) {
+		global $app,$conf;
+		
+		include_once($file);
+		$this->formDef = $form;
+		return true;
+	}
+	
+	
+	/**
+	* Konvertiert die Daten des �bergebenen assoziativen
+	* Arrays in "menschenlesbare" Form.
+	* Datentyp Konvertierung, z.B. f�r Ausgabe in Listen.
+	*
+	* @param record
+	* @return record
+	*/
+	function decode($record) {
+		if(is_array($record)) {
+			foreach($record as $key => $val) {
+				switch ($this->tableDef[$key]['datatype']) {
+				case 'VARCHAR':
+					$new_record[$key] = stripslashes($val);
+				break;
+				
+				case 'DATE':
+					if($val > 0) {
+						$new_record[$key] = date($this->dateformat,$val);
+					}
+				break;
+				
+				case 'INTEGER':
+					$new_record[$key] = intval($val);
+				break;
+				
+				case 'DOUBLE':
+					$new_record[$key] = $val;
+				break;
+				
+				case 'CURRENCY':
+					$new_record[$key] = number_format($val, 2, ',', '');
+				break;
+				
+				default:
+					$new_record[$key] = stripslashes($val);
+				}
+			}
+			
+		}
+	return $new_record;
+	}
+	
+	/**
+	* Record f�r Ausgabe in Formularen vorbereiten.
+	*
+	* @param record = Datensatz als Array
+	* @param action = NEW oder EDIT 
+	* @return record
+	*/
+	function getHTML($record,$action = 'NEW') {
+		
+		global $app;
+		
+		if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden.");
+		
+		$new_record = array();
+		if($action == 'EDIT') {
+			$record = $this->decode($record);
+			if(is_array($record)) {
+				foreach($record as $key => $val) {
+					switch ($this->tableDef[$key]['formtype']) {
+					case 'SELECT':
+						if(is_array($this->tableDef[$key]['value'])) {
+							$out = '';
+							foreach($this->tableDef[$key]['value'] as $k => $v) {
+								$selected = ($k == $val)?' SELECTED':'';
+								$out .= "<option value='$k'$selected>$v</option>\r\n";
+							}
+						}
+						$new_record[$key] = $out;
+					break;
+					case 'MULTIPLE':
+						if(is_array($this->tableDef[$key]['value'])) {
+							
+							// aufsplitten ergebnisse
+							$vals = explode($this->tableDef[$key]['separator'],$val);
+							
+							// HTML schreiben
+							$out = '';
+							foreach($this->tableDef[$key]['value'] as $k => $v) {
+								
+								$selected = '';
+								foreach($vals as $tvl) {
+									if(trim($tvl) == trim($k)) $selected = ' SELECTED';
+								}
+								
+								$out .= "<option value='$k'$selected>$v</option>\r\n";
+							}
+						}
+						$new_record[$key] = $out;
+					break;
+					
+					case 'PASSWORD':
+						$new_record[$key] = '';
+					break;
+					
+					default:
+						$new_record[$key] = htmlspecialchars($val);
+					}
+				}
+			}
+		} else {
+			foreach($this->tableDef as $key => $val) {
+				switch ($this->tableDef[$key]['formtype']) {
+				case 'SELECT':
+					if(is_array($this->tableDef[$key]['value'])) {
+						$out = '';
+						foreach($this->tableDef[$key]['value'] as $k => $v) {
+							$selected = ($k == $val)?' SELECTED':'';
+							$out .= "<option value='$k'$selected>$v</option>\r\n";
+						}
+					}
+					$new_record[$key] = $out;
+				break;
+				case 'MULTIPLE':
+						if(is_array($this->tableDef[$key]['value'])) {
+							
+							// aufsplitten ergebnisse
+							$vals = explode($this->tableDef[$key]['separator'],$val);
+							
+							// HTML schreiben
+							$out = '';
+							foreach($this->tableDef[$key]['value'] as $k => $v) {
+								
+								$out .= "<option value='$k'>$v</option>\r\n";
+							}
+						}
+						$new_record[$key] = $out;
+					break;
+				
+				case 'PASSWORD':
+					$new_record[$key] = '';
+				break;
+				
+				default:
+					$new_record[$key] = htmlspecialchars($this->tableDef[$key]['value']);
+				}
+			}
+		
+		}
+		
+		if($this->debug == 1) $this->dbg($new_record);
+		
+		return $new_record;
+	}
+	
+	/**
+	* Record in "maschinen lesbares" Format �berf�hren
+	* und Werte gegen regul�re Ausdr�cke pr�fen.
+	*
+	* @param record = Datensatz als Array
+	* @return record
+	*/
+	function encode($record) {
+		
+		$this->errorMessage = '';
+		
+		if(is_array($record)) {
+			foreach($record as $key => $val) {
+				switch ($this->tableDef[$key]['datatype']) {
+				case 'VARCHAR':
+					if(!is_array($val)) {
+						$new_record[$key] = mysql_real_escape_string($val);
+					} else {
+						$new_record[$key] = implode($this->tableDef[$key]['separator'],$val);
+					}
+				break;
+				case 'DATE':
+					if($val > 0) {
+						list($tag,$monat,$jahr) = explode('.',$val);
+						$new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr);
+					}
+				break;
+				case 'INTEGER':
+					$new_record[$key] = intval($val);
+				break;
+				case 'DOUBLE':
+					$new_record[$key] = mysql_real_escape_string($val);
+				break;
+				case 'CURRENCY':
+					$new_record[$key] = str_replace(",",".",$val);
+				break;
+				}
+				
+				if($this->tableDef[$key]['regex'] != '') {
+					// Enable that "." matches also newlines
+					$this->tableDef[$key]['regex'] .= 's';
+					if(!preg_match($this->tableDef[$key]['regex'], $val)) {
+						$this->errorMessage .= $this->tableDef[$key]['errmsg']."<br>\r\n";
+					}
+				}
+			}
+			
+		}
+		return $new_record;
+	}
+	
+	/**
+	* SQL Statement f�r Record erzeugen.
+	*
+	* @param record = Datensatz als Array
+	* @param action = INSERT oder UPDATE
+	* @param primary_id
+	* @return record
+	*/
+	function getSQL($record, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') {
+		
+		global $app;
+		
+		$record = $this->encode($record);
+		$sql_insert_key = '';
+		$sql_insert_val = '';
+		$sql_update = '';
+		
+		if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden.");
+		
+		// gehe durch alle Felder des Records
+		if(is_array($record)) {
+        foreach($record as $key => $val) {
+			// Wenn es kein leeres Passwortfeld ist
+			if (!($this->tableDef[$key]['formtype'] == 'PASSWORD' and $val == '')) {
+				// gehe durch alle Felder der TableDef
+				foreach($this->tableDef as $tk => $tv) {
+					// Wenn Feld in TableDef enthalten ist
+					if($tk == $key) {
+						// Erzeuge Insert oder Update Quelltext
+						if($action == "INSERT") {
+							
+							if($this->tableDef[$key]['formtype'] == 'PASSWORD') {
+								$sql_insert_key .= "`$key`, ";
+								$sql_insert_val .= "md5('$val'), ";
+							//} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') {
+							//	$val = implode($this->tableDef[$key]['separator'],$val);
+							//	$sql_insert_key .= "`$key`, ";
+							//	$sql_insert_val .= "'$val', ";
+							} else {
+								$sql_insert_key .= "`$key`, ";
+								$sql_insert_val .= "'$val', ";
+							}
+							
+						} else {
+							
+							if($this->tableDef[$key]['formtype'] == 'PASSWORD') {
+								$sql_update .= "`$key` = md5('$val'), ";
+							//} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') {
+							//	$val = implode($this->tableDef[$key]['separator'],$val);
+							//	$sql_update .= "`$key` = '$val', ";
+							} else {
+								$sql_update .= "`$key` = '$val', ";
+							}
+							
+						}
+					}
+				}
+			}
+		}
+        }
+		
+		// F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein
+		if(stristr($this->table_name,'.')) {
+			$escape = '';
+		} else {
+			$escape = '`';
+		}
+		
+		
+		if($action == "INSERT") {
+			$sql_insert_key = substr($sql_insert_key,0,-2);
+			$sql_insert_val = substr($sql_insert_val,0,-2);
+			$sql = "INSERT INTO ".$escape.$this->table_name.$escape." ($sql_insert_key) VALUES ($sql_insert_val)";
+		} else {
+			if($primary_id != 0) {
+				$sql_update = substr($sql_update,0,-2);
+				$sql = "UPDATE ".$escape.$this->table_name.$escape." SET ".$sql_update." WHERE ".$this->table_index ." = ".$primary_id;
+				if($sql_ext_where != '') $sql .= " and ".$sql_ext_where;
+			} else {
+				$app->error("Primary ID fehlt!");
+			}
+		}
+		
+		return $sql;
+	}
+	
+	/**
+	* Debugging arrays.
+	*
+	* @param array_data
+	*/
+	function dbg($array_data) {
+		
+		echo "<pre>";
+		print_r($array_data);
+		echo "</pre>";
+		
+	}
+    
+    
+    function showForm() {
+    	global $app,$conf;
+        
+        if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen.");
+        
+        if($this->errorMessage == '') {
+        	// wenn kein Fehler vorliegt
+			if($_REQUEST["next_tab"] != '') {
+            	// wenn n�chster Tab bekannt
+            	$active_tab = $_REQUEST["next_tab"];
+            } else {
+            	// ansonsten ersten tab nehmen
+            	$active_tab = $this->formDef["tabs"][0]["name"];
+            }
+		} else {
+        	// bei Fehlern den gleichen Tab nochmal anzeigen
+            $active_tab = $_SESSION["s"]["form"]["tab"];
+		}
+        
+        // definiere Tabs
+        foreach( $this->formDef["tabs"] as $tab) {
+            
+            if($tab["name"] == $active_tab) {
+            	$app->tpl->setInclude('content_tpl',$tab["template"]);
+                $tab["active"] = 1;
+                $_SESSION["s"]["form"]["tab"] = $tab["name"];
+            } else {
+            	$tab["active"] = 0;
+            }
+			
+            $frmTab[] = $tab;
+        }
+        
+        // setze Loop
+        $app->tpl->setLoop("formTab", $frmTab);
+
+		// Formular action setzen
+		$app->tpl->setVar('form_action',$this->formDef["action"]);
+    }
+	
+	
+}
+
 ?>
\ No newline at end of file

--
Gitblit v1.9.1