From 1f193f1e79d5a00daf94cde457c16bdca664668d Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Mon, 17 Nov 2008 16:38:22 -0500 Subject: [PATCH] Removed old sql file. --- interface/lib/classes/tform.inc.php | 165 +++++++++++++++++++++++++++++++++++------------------- 1 files changed, 107 insertions(+), 58 deletions(-) diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index 92ef324..64fa438 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -38,9 +38,9 @@ * Tabellendefinition * * Datentypen: -* - INTEGER (Wandelt Ausdr�cke in Int um) +* - INTEGER (Wandelt Ausdr�cke in Int um) * - DOUBLE -* - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) +* - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) * - VARCHAR (kein weiterer Format Check) * - DATE (Datumsformat, Timestamp Umwandlung) * @@ -54,10 +54,10 @@ * - Wert oder Array * * SEPARATOR -* - Trennzeichen f�r multiple Felder +* - Trennzeichen f�r multiple Felder * * Hinweis: -* Das ID-Feld ist nicht bei den Table Values einzuf�gen. +* Das ID-Feld ist nicht bei den Table Values einzuf�gen. * * @package form * @author Till Brehm @@ -97,7 +97,7 @@ var $table_index; /** - * enth�lt die Fehlermeldung bei �berpr�fung + * enth�lt die Fehlermeldung bei �berpr�fung * der Variablen mit Regex * @var errorMessage */ @@ -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; @@ -147,9 +153,9 @@ /** - * Konvertiert die Daten des �bergebenen assoziativen + * Konvertiert die Daten des �bergebenen assoziativen * Arrays in "menschenlesbare" Form. - * Datentyp Konvertierung, z.B. f�r Ausgabe in Listen. + * Datentyp Konvertierung, z.B. f�r Ausgabe in Listen. * * @param record * @return record @@ -256,7 +262,7 @@ /** - * Record f�r Ausgabe in Formularen vorbereiten. + * Record f�r Ausgabe in Formularen vorbereiten. * * @param record = Datensatz als Array * @param action = NEW oder EDIT @@ -338,8 +344,10 @@ foreach($vals as $tvl) { if(trim($tvl) == trim($k)) $checked = ' CHECKED'; } - - $out .= "<input name=\"".$key."[]\" type=\"checkbox\" value=\"$k\" $checked>$v <br />\r\n"; + $out .= "<span class=\"wf_oneChoice\">\r\n + <input type=\"checkbox\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n + <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n + </span><br />\r\n"; } } $new_record[$key] = $out; @@ -352,7 +360,10 @@ $out = ''; foreach($field['value'] as $k => $v) { $checked = ($k == $val)?' CHECKED':''; - $out .= "<input name='".$key."[]' type='radio' value='$k'$checked> $v<br>\r\n"; + $out .= "<span class=\"wf_oneChoice\">\r\n + <input type=\"radio\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n + <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n + </span><br />\r\n"; } } $new_record[$key] = $out; @@ -382,7 +393,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'])) { @@ -406,7 +417,7 @@ case 'CHECKBOX': // $checked = (empty($field["default"]))?'':' CHECKED'; - $checked = ($field["default"] == $field['value'][1])?' CHECKED':''; + $checked = ($field["default"] == $field['value'][1])?' CHECKED':''; $new_record[$key] = "<input name=\"".$key."\" type=\"checkbox\" value=\"".$field['value'][1]."\" $checked>\r\n"; break; @@ -424,8 +435,10 @@ foreach($vals as $tvl) { if(trim($tvl) == trim($k)) $checked = ' CHECKED'; } - - $out .= "<input name=\"".$key."[]\" type=\"checkbox\" value=\"$k\" $checked> $v<br />\r\n"; + $out .= "<span class=\"wf_oneChoice\">\r\n + <input type=\"checkbox\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n + <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n + </span><br />\r\n"; } } $new_record[$key] = $out; @@ -438,7 +451,10 @@ $out = ''; foreach($field['value'] as $k => $v) { $checked = ($k == $field["default"])?' CHECKED':''; - $out .= "<input name='".$key."[]' type='radio' value='$k'$checked> $v<br>\r\n"; + $out .= "<span class=\"wf_oneChoice\">\r\n + <input type=\"radio\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n + <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n + </span><br />\r\n"; } } $new_record[$key] = $out; @@ -457,14 +473,15 @@ } /** - * Record in "maschinen lesbares" Format �berf�hren - * und Werte gegen regul�re Ausdr�cke pr�fen. + * 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,$tab) { - + global $app; + if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab ist leer oder existiert nicht (TAB: $tab)."); //$this->errorMessage = ''; @@ -476,14 +493,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]))?$app->db->quote($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] = $app->db->quote($record[$key]); } else { $new_record[$key] = implode($field['separator'],$record[$key]); } @@ -497,12 +514,12 @@ } break; case 'INTEGER': - $new_record[$key] = (isset($record[$key]))?intval($record[$key]):0; + $new_record[$key] = (isset($record[$key]))?$record[$key]:0; //if($new_record[$key] != $record[$key]) $new_record[$key] = $field['default']; //if($key == 'refresh') die($record[$key]); break; case 'DOUBLE': - $new_record[$key] = addslashes($record[$key]); + $new_record[$key] = $app->db->quote($record[$key]); break; case 'CURRENCY': $new_record[$key] = str_replace(",",".",$record[$key]); @@ -642,7 +659,7 @@ } /** - * SQL Statement f�r Record erzeugen. + * SQL Statement f�r Record erzeugen. * * @param record = Datensatz als Array * @param action = INSERT oder UPDATE @@ -687,16 +704,22 @@ $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.="$"; // $salt = substr(md5(time()),0,2); $record[$key] = crypt($record[$key],$salt); + $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; + } elseif ($field['encryption'] == 'MYSQL') { + $sql_insert_val .= "PASSWORD('".$app->db->quote($record[$key])."'), "; + } elseif ($field['encryption'] == 'CLEARTEXT') { + $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; } else { $record[$key] = md5($record[$key]); + $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; } - $sql_insert_val .= "'".$record[$key]."', "; + } elseif ($field['formtype'] == 'CHECKBOX') { $sql_insert_key .= "`$key`, "; if($record[$key] == '') { @@ -712,18 +735,24 @@ } } 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.="$"; // $salt = substr(md5(time()),0,2); $record[$key] = crypt($record[$key],$salt); + $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; + } elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') { + $sql_update .= "`$key` = PASSWORD('".$app->db->quote($record[$key])."'), "; + } elseif (isset($field['encryption']) && $field['encryption'] == 'CLEARTEXT') { + $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; } else { $record[$key] = md5($record[$key]); + $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; } - $sql_update .= "`$key` = '".$record[$key]."', "; + } elseif ($field['formtype'] == 'CHECKBOX') { if($record[$key] == '') { // if a checkbox is not set, we set it to the unchecked value @@ -745,7 +774,7 @@ } - // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein + // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein if(stristr($this->formDef['db_table'],'.')) { $escape = ''; } else { @@ -771,6 +800,7 @@ $sql_insert_val = substr($sql_insert_val,0,-2); $sql = "INSERT INTO ".$escape.$this->formDef['db_table'].$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; } else { + if($this->formDef['auth'] == 'yes') { if($primary_id != 0) { $sql_update = substr($sql_update,0,-2); $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->getAuthSQL('u')." AND ".$this->formDef['db_table_idx']." = ".$primary_id; @@ -778,6 +808,15 @@ } else { $app->error("Primary ID fehlt!"); } + } else { + if($primary_id != 0) { + $sql_update = substr($sql_update,0,-2); + $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; + if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; + } else { + $app->error("Primary ID fehlt!"); + } + } } return $sql; @@ -813,8 +852,11 @@ // Wenn Modul gesetzt, dann setzte template pfad relativ zu modul. if($this->module != '') $tab["template"] = "../".$this->module."/".$tab["template"]; - // �berpr�fe, ob das Template existiert, wenn nicht + // �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'); @@ -828,7 +870,7 @@ $tab["active"] = 0; } - // Die Datenfelder werden f�r die Tabs nicht ben�tigt + // Die Datenfelder werden f�r die Tabs nicht ben�tigt unset($tab["fields"]); unset($tab["plugins"]); @@ -843,8 +885,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 = $this->lng($this->formDef["title"]); + if($this->formDef["description"] != '') $form_hint .= '<div class="pageForm_description">'.$this->lng($this->formDef["description"]).'</div>'; $app->tpl->setVar('form_hint',$form_hint); // Set Wordbook for this form @@ -863,29 +905,20 @@ function datalogSave($action,$primary_id, $record_old, $record_new) { global $app,$conf; - // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein + // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein if(stristr($this->formDef['db_table'],'.')) { $escape = ''; } 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 +939,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 +961,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; @@ -971,14 +999,14 @@ } /* - Diese funktion �berpr�ft, ob ein User die Berechtigung $perm f�r den Datensatz mit der ID $record_id + Diese funktion �berpr�ft, ob ein User die Berechtigung $perm f�r den Datensatz mit der ID $record_id hat. It record_id = 0, dann wird gegen die user Defaults des Formulares getestet. */ function checkPerm($record_id,$perm) { global $app; if($record_id > 0) { - // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein + // F�ge Backticks nur bei unvollst�ndigen Tabellennamen ein if(stristr($this->formDef['db_table'],'.')) { $escape = ''; } else { @@ -993,8 +1021,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 @@ -1011,7 +1039,7 @@ if($this->errorMessage == '') { // wenn kein Fehler vorliegt if(isset($_REQUEST["next_tab"]) && $_REQUEST["next_tab"] != '') { - // wenn n�chster Tab bekannt + // wenn n�chster Tab bekannt $active_tab = $_REQUEST["next_tab"]; } else { // ansonsten ersten tab nehmen @@ -1028,6 +1056,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