From c46870f6ad01452c00b53c4599110ebbf79decb2 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 18 Sep 2008 08:29:00 -0400
Subject: [PATCH] Fixed bugs 207 and 208 - Website symlinks in wrong client directory created. - Standard indes page gets replaced when a alias domain is added.

---
 interface/lib/classes/tform.inc.php |   52 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 8 deletions(-)

diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 251a9f9..51e5ffe 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -388,7 +388,7 @@
                                                     $out .= "<option value='$k'$selected>$v</option>\r\n";
                                                 }
                                         }
-                                        $new_record[$key] = $out;
+                                        if(isset($out)) $new_record[$key] = $out;
                                 break;
                                 case 'MULTIPLE':
                                                 if(is_array($field['value'])) {
@@ -482,14 +482,14 @@
                                 switch ($field['datatype']) {
                                 case 'VARCHAR':
                                         if(!@is_array($record[$key])) {
-                                                $new_record[$key] = (isset($record[$key]))?addslashes($record[$key]):'';
+                                                $new_record[$key] = (isset($record[$key]))?mysql_real_escape_string($record[$key]):'';
                                         } else {
                                                 $new_record[$key] = implode($field['separator'],$record[$key]);
                                         }
                                 break;
                                 case 'TEXT':
                                         if(!is_array($record[$key])) {
-                                                $new_record[$key] = addslashes($record[$key]);
+                                                $new_record[$key] = mysql_real_escape_string($record[$key]);
                                         } else {
                                                 $new_record[$key] = implode($field['separator'],$record[$key]);
                                         }
@@ -508,7 +508,7 @@
                                         //if($key == 'refresh') die($record[$key]);
                                 break;
                                 case 'DOUBLE':
-                                        $new_record[$key] = addslashes($record[$key]);
+                                        $new_record[$key] = mysql_real_escape_string($record[$key]);
                                 break;
                                 case 'CURRENCY':
                                         $new_record[$key] = str_replace(",",".",$record[$key]);
@@ -699,10 +699,16 @@
 																$salt.="$";
 																// $salt = substr(md5(time()),0,2);
 																$record[$key] = crypt($record[$key],$salt);
+																$sql_insert_val .= "'".mysql_real_escape_string($record[$key])."', ";
+														} elseif ($field['encryption'] == 'MYSQL') {
+																$sql_insert_val .= "PASSWORD('".mysql_real_escape_string($record[$key])."'), ";
+														} elseif ($field['encryption'] == 'CLEARTEXT') {
+																$sql_insert_val .= "'".mysql_real_escape_string($record[$key])."', ";
                                                         } else {
                                                                 $record[$key] = md5($record[$key]);
+																$sql_insert_val .= "'".mysql_real_escape_string($record[$key])."', ";
                                                         }
-														$sql_insert_val .= "'".addslashes($record[$key])."', ";
+														
                                                 } elseif ($field['formtype'] == 'CHECKBOX') {
                                                         $sql_insert_key .= "`$key`, ";
 														if($record[$key] == '') {
@@ -726,10 +732,16 @@
 																$salt.="$";
 																// $salt = substr(md5(time()),0,2);
 																$record[$key] = crypt($record[$key],$salt);
+																$sql_update .= "`$key` = '".mysql_real_escape_string($record[$key])."', ";
+														} elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') {
+																$sql_update .= "`$key` = PASSWORD('".mysql_real_escape_string($record[$key])."'), ";
+														} elseif (isset($field['encryption']) && $field['encryption'] == 'CLEARTEXT') {
+																$sql_update .= "`$key` = '".mysql_real_escape_string($record[$key])."', ";
                                                         } else {
                                                                 $record[$key] = md5($record[$key]);
+																$sql_update .= "`$key` = '".mysql_real_escape_string($record[$key])."', ";
                                                         }
-                                                        $sql_update .= "`$key` = '".addslashes($record[$key])."', ";
+                                                        
                                                 } elseif ($field['formtype'] == 'CHECKBOX') {
 														if($record[$key] == '') {
 															// if a checkbox is not set, we set it to the unchecked value
@@ -821,6 +833,9 @@
 
                 // �berpr�fe, ob das Template existiert, wenn nicht
                 // dann generiere das Template
+				
+				// Translate the title of the tab
+				$tab['title'] = $this->lng($tab['title']);
 								
                 if(!is_file($tab["template"])) {
                      $app->uses('tform_tpl_generator');
@@ -849,8 +864,8 @@
                 $app->tpl->setVar('form_active_tab',$active_tab);
 
                 // Set form title
-                $form_hint = '<b>'.$this->formDef["title"].'</b>';
-                if($this->formDef["description"] != '') $form_hint .= '<br><br>'.$this->formDef["description"];
+                $form_hint = '<b>'.$this->lng($this->formDef["title"]).'</b>';
+                if($this->formDef["description"] != '') $form_hint .= '<br><br>'.$this->lng($this->formDef["description"]);
                 $app->tpl->setVar('form_hint',$form_hint);
 
                 // Set Wordbook for this form
@@ -1020,6 +1035,27 @@
         function getCurrentTab() {
                 return $_SESSION["s"]["form"]["tab"];
         }
+		
+		function isReadonlyTab($tab) {
+			if(isset($this->formDef['tabs'][$tab]['readonly']) && $this->formDef['tabs'][$tab]['readonly'] == true) {
+				return true;
+			} else {
+				return false;
+			}
+        }
+		
+		
+		// translation function for forms, tries the form wordbook first and if this fails, it tries the global wordbook
+		function lng($msg) {
+			global $app;
+			
+			if(isset($this->wordbook[$msg])) {
+				return $this->wordbook[$msg];
+			} else {
+				return $app->lng($msg);
+			}
+			
+		}
 
 }
 

--
Gitblit v1.9.1