From 1e45da277b6e28ff65967d38c12b298872efb059 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 01 Aug 2008 17:37:59 -0400
Subject: [PATCH] Added translation functions for the tabs of forms.

---
 interface/lib/classes/tform.inc.php |   64 ++++++++++++++++++--------------
 1 files changed, 36 insertions(+), 28 deletions(-)

diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 92ef324..9f920c6 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -135,10 +135,16 @@
                 $this->formDef = $form;
 
                 $this->module = $module;
+				$wb = array();
+				
                 if($module == '') {
+					if(is_file("lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng")) {
                         include_once("lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng");
+					}
                 } else {
+					if(is_file("../$module/lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng")) {
                         include_once("../$module/lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng");
+					}
                 }
                 $this->wordbook = $wb;
 
@@ -382,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'])) {
@@ -687,7 +693,7 @@
                                                         $sql_insert_key .= "`$key`, ";
                                                         if($field['encryption'] == 'CRYPT') {
                                                                 $salt="$1$";
-																for ($n=0;$n<8;$n++) {
+																for ($n=0;$n<11;$n++) {
 																	$salt.=chr(mt_rand(64,126));
 																}
 																$salt.="$";
@@ -696,7 +702,7 @@
                                                         } else {
                                                                 $record[$key] = md5($record[$key]);
                                                         }
-														$sql_insert_val .= "'".$record[$key]."', ";
+														$sql_insert_val .= "'".addslashes($record[$key])."', ";
                                                 } elseif ($field['formtype'] == 'CHECKBOX') {
                                                         $sql_insert_key .= "`$key`, ";
 														if($record[$key] == '') {
@@ -712,9 +718,9 @@
                                                 }
                                         } else {
                                                 if($field['formtype'] == 'PASSWORD') {
-														if($field['encryption'] == 'CRYPT') {
+														if(isset($field['encryption']) && $field['encryption'] == 'CRYPT') {
                                                                 $salt="$1$";
-																for ($n=0;$n<8;$n++) {
+																for ($n=0;$n<11;$n++) {
 																	$salt.=chr(mt_rand(64,126));
 																}
 																$salt.="$";
@@ -723,7 +729,7 @@
                                                         } else {
                                                                 $record[$key] = md5($record[$key]);
                                                         }
-                                                        $sql_update .= "`$key` = '".$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
@@ -815,6 +821,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');
@@ -843,8 +852,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
@@ -869,23 +878,14 @@
                 } else {
                         $escape = '`';
                 }
-				
-				/*
-                if($action == "UPDATE" or $action == "DELETE") {
-                        $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id;
-                        $record_old = $app->db->queryOneRecord($sql);
-                } else {
-                        $record_old = array();
-                }
-				*/
 
                 $diffrec = array();
 				
                 if(is_array($record_new) && count($record_new) > 0) {
                         foreach($record_new as $key => $val) {
-                                if($record_old[$key] != $val) {
+                                if(@$record_old[$key] != $val) {
 										// Record has changed
-                                        $diffrec[$key] = array('old' => $record_old[$key],
+                                        $diffrec[$key] = array('old' => @$record_old[$key],
                                                                'new' => $val);
                                 }
                         }
@@ -906,7 +906,8 @@
 
                 if(is_array($record_old) && count($record_old) > 0) {
                         foreach($record_old as $key => $val) {
-                                if(isset($record_new[$key]) && $record_new[$key] != $val) {
+                                //if(isset($record_new[$key]) && $record_new[$key] != $val) {
+								if(!isset($record_new[$key]) || $record_new[$key] != $val) {
                                     // Record has changed
 									$diffrec_full['old'][$key] = $val;
 									$diffrec_full['new'][$key] = $record_new[$key];
@@ -927,12 +928,6 @@
 								}
                         }
                 }
-				
-				/*
-				echo "<pre>";
-				print_r($diffrec_full);
-				echo "</pre>";
-				*/
 				
 				// Insert the server_id, if the record has a server_id
 				$server_id = (isset($record_old["server_id"]) && $record_old["server_id"] > 0)?$record_old["server_id"]:0;
@@ -993,8 +988,8 @@
                         }
                 } else {
                         $result = false;
-                        if($this->formDef["auth_preset"]["userid"] == $_SESSION["s"]["user"]["userid"] && stristr($perm,$this->formDef["auth_preset"]["perm_user"])) $result = true;
-                        if($this->formDef["auth_preset"]["groupid"] == $_SESSION["s"]["user"]["groupid"] && stristr($perm,$this->formDef["auth_preset"]["perm_group"])) $result = true;
+                        if(@$this->formDef["auth_preset"]["userid"] == $_SESSION["s"]["user"]["userid"] && stristr($perm,$this->formDef["auth_preset"]["perm_user"])) $result = true;
+                        if(@$this->formDef["auth_preset"]["groupid"] == $_SESSION["s"]["user"]["groupid"] && stristr($perm,$this->formDef["auth_preset"]["perm_group"])) $result = true;
                         if(@stristr($this->formDef["auth_preset"]["perm_other"],$perm)) $result = true;
 
                         // if preset == 0, everyone can insert a record of this type
@@ -1028,6 +1023,19 @@
         function getCurrentTab() {
                 return $_SESSION["s"]["form"]["tab"];
         }
+		
+		
+		// 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