item = $this->getProperty("item"); if($this->item->type == "delimiter" || $this->item->type == "empty") { return true; } $value_type = "string"; switch($this->item->type) { case "string": $value_type = "string"; break; case "enum": $value_type = "string"; break; case "gps": $value_type = "string"; break; case "color": $value_type = "string"; break; case "date": $value_type = "string"; break; case "int": $value_type = "int"; break; case "bool": $value_type = "int"; break; case "file": $value_type = "int"; break; case "text": $value_type = "text"; break; } if($this->item->type == "gps") { if(is_array($value) && count($value) == 2) { $lat = $value['lat']; $long = $value['long']; $value = "$lat;$long"; if($lat == null && $long == null) { $value = null; } } else { $value = null; } } if($value === null) { return true; } if($value_type == "int" && !$value) { return true; } if($this->item->type == "bool" && $this->{"value_".$value_type} = null && $value == 0) { return true; } if($value == null && $this->{"value_".$value_type} == null) { return true; } $this->is_changed = true; $me = new User(); $me->loadMe(); if($this->{"value_".$value_type} != $value) { $this->{"value_".$value_type} = $value; $this->changed = date('U'); $this->changed_by = $me->id; } if($this->new() == "new") { $this->changed = date('U'); $this->changed_by = $me->id; } } public function getProperty($name) { if($this->$name == null) { if($name == "item") { $this->item = new Workflowitem($this->item_id); return $this->item; } if($name == "changer") { if($this->changed && $this->changed_by) { $this->changer = new User($this->changed_by); return $this->changer; } else { return new Address(); } } $classname = ucfirst($name); $idfield = $name."_id"; $this->$name = new $classname($this->$idfield); if($this->$name->id) { return $this->$name; } else { return null; } } return $this->$name; } }