Name = $name; $this->DataType = $dataType; $this->Description = $description; $this->DefaultValue = $defaultValue; } public function Decode($value) { if ($this->DataType == null) return $value; return $this->DataType->Decode($value); } public function Encode($value) { if ($this->DataType == null) return $value; return $this->DataType->Encode($value); } public function RenderColumn($value = null) { if ($this->DataType == null || $this->DataType->ColumnRendererCodeBlob == null) { if ($value == null) { echo($this->DefaultValue); } else { echo($value); } } else { if ($value == null) { $this->DataType->RenderColumn($this->DefaultValue); } else { $this->DataType->RenderColumn($value); } } } public function RenderEditor($value = null, $name = null) { if ($name == null) $name = "Property_" . $this->ID; if ($this->DataType == null || $this->DataType->ColumnRendererCodeBlob == null) { ?> DataType->RenderEditor($this->DefaultValue, $name); } else { $this->DataType->RenderEditor($value, $name); } } } public static function GetByAssoc($values) { $item = new TenantProperty(); $item->ID = $values["property_ID"]; $item->Tenant = Tenant::GetByID($values["property_TenantID"]); $item->Name = $values["property_Name"]; $item->Description = $values["property_Description"]; $item->DataType = DataType::GetByID($values["property_DataTypeID"]); $item->DefaultValue = $item->DataType->Decode($values["property_DefaultValue"]); return $item; } public static function Create($property, $tenant = null) { global $MySQL; $query = "INSERT INTO " . System::$Configuration["Database.TablePrefix"] . "TenantProperties (property_TenantID, property_Name, property_Description, property_DataTypeID, property_DefaultValue) VALUES ("; $query .= ($tenant == null ? "NULL" : $tenant->ID) . ", "; $query .= "'" . $MySQL->real_escape_string($property->Name) . "', "; $query .= "'" . $MySQL->real_escape_string($property->Description) . "', "; $query .= ($property->DataType == null ? "NULL" : $property->DataType->ID) . ", "; $query .= ($property->DefaultValue == null ? "NULL" : "'" . $MySQL->real_escape_string($property->DataType->Encode($property->DefaultValue)) . "'"); $query .= ")"; $result = $MySQL->query($query); if ($result === false) { Objectify::Log("Database error when trying to create a property on the tenant.", array ( "DatabaseError" => $MySQL->error . " (" . $MySQL->errno . ")", "Query" => $query, "Property" => ($property == null ? ($propname == null ? "(null)" : $propname) : (is_string($property) ? $property : "#" . $property->ID)) )); return false; } return true; } } ?>