| | |
| | | $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'])) { |
| | |
| | | * @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 = ''; |
| | | |
| | |
| | | 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]); |
| | | } |
| | |
| | | //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]); |
| | |
| | | $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] == '') { |
| | |
| | | } |
| | | } 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 |
| | |
| | | |
| | | // ü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'); |
| | |
| | | $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 |
| | |
| | | } 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); |
| | | } |
| | | } |
| | |
| | | |
| | | 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]; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* |
| | | 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; |
| | |
| | | } |
| | | } 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 |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |