latham
2011-05-25 f99b37f56dad8e3a1f844f8d3b33ee1ba4b86d62
interface/lib/classes/tform.inc.php
@@ -143,9 +143,9 @@
               if(!file_exists($lng_file)) $lng_file = "../$module/lib/lang/en_".$this->formDef["name"].".lng";
               include($lng_file);
                }
            if(is_array($wb_global)) {
               $wb = array_merge($wb_global,$wb);
               $wb = $app->functions->array_merge($wb_global,$wb);
            }
            if(isset($wb_global)) unset($wb_global);
            
@@ -163,7 +163,8 @@
        * @return record
        */
        function decode($record,$tab) {
                if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab does not exist or the tab is empty (TAB: $tab).");
                global $conf, $app;
            if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab does not exist or the tab is empty (TAB: $tab).");
                $new_record = '';
            if(is_array($record)) {
                        foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) {
@@ -198,7 +199,7 @@
                                break;
                                case 'CURRENCY':
                                        $new_record[$key] = number_format((double)$record[$key], 2, ',', '');
                                        $new_record[$key] = $app->functions->currency_format($record[$key]);
                                break;
                                default:
@@ -362,7 +363,8 @@
                                        // If Datasource is set, get the data from there
                                        if(isset($field['datasource']) && is_array($field['datasource'])) {
                                    if(is_array($field["value"])) {
                                       $field["value"] = array_merge($field["value"],$this->getDatasourceData($field, $record));
                                       //$field["value"] = array_merge($field["value"],$this->getDatasourceData($field, $record));
                                       $field["value"] = $app->functions->array_merge($field["value"],$this->getDatasourceData($field, $record));
                                    } else {
                                                   $field["value"] = $this->getDatasourceData($field, $record);
                                    }
@@ -379,6 +381,8 @@
                                                if(is_array($field['value'])) {
                                                        foreach($field['value'] as $k => $v) {
                                                                $selected = ($k == $val)?' SELECTED':'';
                                                if(!empty($this->wordbook[$v]))
                                                   $v = $this->wordbook[$v];
                                                                $out .= "<option value='$k'$selected>$v</option>\r\n";
                                                        }
                                                }
@@ -429,7 +433,7 @@
                                                                        if(trim($tvl) == trim($k)) $checked = ' CHECKED';
                                                                }
                                                                // $out .= "<label for=\"".$key."[]\" class=\"inlineLabel\"><input name=\"".$key."[]\" id=\"".$key."[]\" value=\"$k\" type=\"checkbox\" $checked /> $v</label>\r\n";
                                                $out .= "<input name=\"".$key."[]\" id=\"".$key."[]\" value=\"$k\" type=\"checkbox\" $checked /> $v &nbsp;\r\n";
                                                $out .= "<input name=\"".$key."[]\" id=\"".$key."[]\" value=\"$k\" type=\"checkbox\" $checked /> $v <br/>\r\n";
                                                        }
                                                }
                                                $new_record[$key] = $out;
@@ -475,7 +479,7 @@
                                // If Datasource is set, get the data from there
                                if(@is_array($field['datasource'])) {
                                   if(is_array($field["value"])) {
                              $field["value"] = array_merge($field["value"],$this->getDatasourceData($field, $record));
                              $field["value"] = $app->functions->array_merge($field["value"],$this->getDatasourceData($field, $record));
                           } else {
                                       $field["value"] = $this->getDatasourceData($field, $record);
                           }
@@ -492,7 +496,7 @@
                                                $out = '';
                                                foreach($field['value'] as $k => $v) {
                                                    $selected = ($k == $field["default"])?' SELECTED':'';
                                                    $out .= "<option value='$k'$selected>$v</option>\r\n";
                                                    $out .= "<option value='$k'$selected>".$this->lng($v)."</option>\r\n";
                                                }
                                        }
                                        if(isset($out)) $new_record[$key] = $out;
@@ -620,11 +624,18 @@
                                break;
                        case 'DATE':
                                        if($record[$key] != '' && $record[$key] != '0000-00-00') {
                                    $date_parts = date_parse_from_format($this->dateformat,$record[$key]);
                                    //list($tag,$monat,$jahr) = explode('.',$record[$key]);
                                                $new_record[$key] = $date_parts['year'].'-'.$date_parts['month'].'-'.$date_parts['day'];
                                    //$tmp = strptime($record[$key],$this->dateformat);
                                    //$new_record[$key] = ($tmp['tm_year']+1900).'-'.($tmp['tm_mon']+1).'-'.$tmp['tm_mday'];
                                    if(function_exists('date_parse_from_format')) {
                                       $date_parts = date_parse_from_format($this->dateformat,$record[$key]);
                                       //list($tag,$monat,$jahr) = explode('.',$record[$key]);
                                       $new_record[$key] = $date_parts['year'].'-'.$date_parts['month'].'-'.$date_parts['day'];
                                       //$tmp = strptime($record[$key],$this->dateformat);
                                       //$new_record[$key] = ($tmp['tm_year']+1900).'-'.($tmp['tm_mon']+1).'-'.$tmp['tm_mday'];
                                    } else {
                                       //$tmp = strptime($record[$key],$this->dateformat);
                                       //$new_record[$key] = ($tmp['tm_year']+1900).'-'.($tmp['tm_mon']+1).'-'.$tmp['tm_mday'];
                                       $tmp = strtotime($record[$key]);
                                       $new_record[$key] = date('Y-m-d',$tmp);
                                    }
                                        } else {
                                 $new_record[$key] = '0000-00-00';
                              }
@@ -734,7 +745,7 @@
                                        }
                                break;
                                case 'ISEMAIL':
                                        if(!preg_match("/^\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\w+\.[a-z]{2,10}$/i", $field_value)) {
                                        if(!preg_match("/^\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\w+\.[a-zA-Z0-9\-]{2,30}$/i", $field_value)) {
                                                $errmsg = $validator['errmsg'];
                                                if(isset($this->wordbook[$errmsg])) {
                                                    $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
@@ -857,14 +868,14 @@
                                                }
                                                $salt.="$";
                                                // $salt = substr(md5(time()),0,2);
                                                $record[$key] = crypt($record[$key],$salt);
                                                $record[$key] = crypt(stripslashes($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]);
                                                                $record[$key] = md5(stripslashes($record[$key]));
                                                $sql_insert_val .= "'".$app->db->quote($record[$key])."', ";
                                                        }
                                          
@@ -892,14 +903,14 @@
                                                }
                                                $salt.="$";
                                                // $salt = substr(md5(time()),0,2);
                                                $record[$key] = crypt($record[$key],$salt);
                                                $record[$key] = crypt(stripslashes($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]);
                                                                $record[$key] = md5(stripslashes($record[$key]));
                                                $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', ";
                                                        }