FusionPBX пре 6 година
родитељ
комит
107149be0a
1 измењених фајлова са 0 додато и 924 уклоњено
  1. 0 924
      resources/classes/orm.php

+ 0 - 924
resources/classes/orm.php

@@ -1,924 +0,0 @@
-<?php
-/*
-	FusionPBX
-	Version: MPL 1.1
-
-	The contents of this file are subject to the Mozilla Public License Version
-	1.1 (the "License"); you may not use this file except in compliance with
-	the License. You may obtain a copy of the License at
-	http://www.mozilla.org/MPL/
-
-	Software distributed under the License is distributed on an "AS IS" basis,
-	WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-	for the specific language governing rights and limitations under the
-	License.
-
-	The Original Code is FusionPBX
-
-	The Initial Developer of the Original Code is
-	Mark J Crane <[email protected]>
-	Copyright (C) 2014-2016
-	All Rights Reserved.
-
-	Contributor(s):
-	Mark J Crane <[email protected]>
-*/
-
-//define the orm class
-	if (!class_exists('orm')) {
-		class orm extends database {
-			//factory - sets the model_name
-			//set - sets the array
-				public $name;
-			//get - get the results
-				public $result;
-			//find
-				public $uuid;
-				//public $name;
-				public $where;
-				public $limit;
-				public $offset;
-			//save
-				//public $uuid;
-				//public $name;
-				public $message;
-				public $debug;
-			//delete
-				//public $uuid;
-				//public $name;
-				//public $where;
-				//public $message;
-			//application 
-				public $app_name;
-				public $app_uuid;
-
-			public function factory($name) {
-				$this->name = $name;
-				return $this;
-			}
-
-			public function name($name) {
-				$this->name = $name;
-				return $this;
-			}
-
-			public function uuid($uuid) {
-				$this->uuid = $uuid;
-				return $this;
-			}
-
-			public function set($array) {
-				foreach ($array as $key => $value) {
-					//public $this->$$key = $value;
-				}
-				return $this;
-			}
-
-			public function get() {
-				return $this->result;
-			}
-
-			public function find() {
-
-				//connect to the database if needed
-					if (!$this->db) {
-						$this->connect();
-					}
-				//set the name
-					if (isset($array['name'])) {
-						$this->name = $array['name'];
-					}
-				//set the uuid
-					if (isset($array['uuid'])) {
-						$this->uuid = $array['uuid'];
-					}
-				//build the query
-					$sql = "SELECT * FROM v_".$this->name." ";
-					if (isset($this->uuid)) {
-						//get the specific uuid
-							$sql .= "WHERE ".$this->singular($this->name)."_uuid = '".$this->uuid."' ";
-					}
-					else {
-						//where
-							if (is_array($array['where'])) {
-								$i = 0;
-								foreach($array['where'] as $row) {
-									if ($i == 0) {
-										$sql .= "WHERE ".$row['name']." ".$row['operator']." '".$row['value']."' ";
-									}
-									else {
-										$sql .= "AND ".$row['name']." ".$row['operator']." '".$row['value']."' ";
-									}
-									$i++;
-								}
-							}
-						//order by
-							if (is_array($array['order_by'])) {
-								$sql .= "ORDER BY ".$array['order_by']." ";
-							}
-						//limit
-							if (isset($array['limit'])) {
-								$sql .= "LIMIT ".$array['limit']." ";
-							}
-						//offset
-							if (isset($array['offset'])) {
-								$sql .= "OFFSET ".$array['offset']." ";
-							}
-					}
-				//execute the query, and return the results
-					try {
-						$prep_statement = $this->db->prepare(check_sql($sql));
-						$prep_statement->execute();
-						$message["message"] = "OK";
-						$message["code"] = "200";
-						$message["details"][$m]["name"] = $this->name;
-						$message["details"][$m]["message"] = "OK";
-						$message["details"][$m]["code"] = "200";
-						if ($this->debug["sql"]) {
-							$message["details"][$m]["sql"] = $sql;
-						}
-						$this->message = $message;
-						$this->result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
-						unset($prep_statement);
-						$m++;
-						return $this;
-					}
-					catch(PDOException $e) {
-						$message["message"] = "Bad Request";
-						$message["code"] = "400";
-						$message["details"][$m]["name"] = $this->name;
-						$message["details"][$m]["message"] = $e->getMessage();
-						$message["details"][$m]["code"] = "400";
-						if ($this->debug["sql"]) {
-							$message["details"][$m]["sql"] = $sql;
-						}
-						$this->message = $message;
-						$this->result = '';
-						$m++;
-						return $this;
-					}
-			}
-
-			public function delete($uuid = null, $array = null) {
-				//connect to the database if needed
-					if (!$this->db) {
-						$this->connect();
-					}
-
-				//delete a specific uuid
-					if (permission_exists($this->singular($this->name).'_delete')) {
-						if (isset($api_uuid)) {
-							//start the atomic transaction
-								$this->db->beginTransaction();
-							//delete the primary data
-								$primary_key_name = $this->singular($this->name)."_uuid";
-								$sql = "DELETE FROM v_".$this->name." ";
-								$sql .= "WHERE ".$this->singular($this->name)."_uuid = '".$uuid."' ";
-								$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-								try {
-									$this->db->query(check_sql($sql));
-									$message["message"] = "OK";
-									$message["code"] = "200";
-									$message["details"][$m]["name"] = $this->name;
-									$message["details"][$m]["message"] = "OK";
-									$message["details"][$m]["code"] = "200";
-									if ($this->debug["sql"]) {
-										$message["details"][$m]["sql"] = $sql;
-									}
-									$this->message = $message;
-									$m++;
-								}
-								catch(PDOException $e) {
-									$message["message"] = "Bad Request";
-									$message["code"] = "400";
-									$message["details"][$m]["name"] = $this->name;
-									$message["details"][$m]["message"] = $e->getMessage();
-									$message["details"][$m]["code"] = "400";
-									if ($this->debug["sql"]) {
-										$message["details"][$m]["sql"] = $sql;
-									}
-									$this->message = $message;
-									$m++;
-								}
-							//delete the related data
-								$relations = $this->get_relations($this->name);
-								foreach ($relations as &$row) {
-									$schema_name = $row['table'];
-									if (substr($schema_name, 0,2) == "v_") {
-										$schema_name = substr($schema_name, 2);
-									}
-									if (permission_exists($this->singular($schema_name).'_delete')) {
-										$sql = "DELETE FROM ".$row['table']." ";
-										$sql .= "WHERE ".$row['key']['field']." = '".$uuid."' ";
-										$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-										try {
-											$this->db->query(check_sql($sql));
-											$message["details"][$m]["name"] = $schema_name;
-											$message["details"][$m]["message"] = "OK";
-											$message["details"][$m]["code"] = "200";
-											if ($this->debug["sql"]) {
-												$message["details"][$m]["sql"] = $sql;
-											}
-											$this->message = $message;
-											$m++;
-										}
-										catch(PDOException $e) {
-											if ($message["code"] = "200") {
-												$message["message"] = "Bad Request";
-												$message["code"] = "400";
-											}
-											$message["details"][$m]["name"] = $schema_name;
-											$message["details"][$m]["message"] = $e->getMessage();
-											$message["details"][$m]["code"] = "400";
-											if ($this->debug["sql"]) {
-												$message["details"][$m]["sql"] = $sql;
-											}
-											$this->message = $message;
-											$m++;
-										}
-										unset ($sql);
-									}
-								}
-							//commit the atomic transaction
-								if ($message["code"] == "200") {
-									$this->db->commit();
-								}
-						}
-					}
-					else {
-						$message["name"] = $this->name;
-						$message["message"] = "Forbidden, does not have '".$this->singular($this->name)."_delete'";
-						$message["code"] = "403";
-						$message["line"] = __line__;
-						$this->message = $message;
-						$m++;
-					}
-			}
-
-			private function normalize_array($array, $name) {
-				//get the depth of the array
-					$depth = $this->array_depth($array);
-				//before normalizing the array
-					//echo "before: ".$depth."<br />\n";
-					//echo "<pre>\n";
-					//print_r($array);
-					//echo "</pre>\n";
-				//normalize the array
-					if ($depth == 1) {
-						$return_array[$name][] = $array;
-					} else if ($depth == 2) {
-						$return_array[$name] = $array;
-					//} else if ($depth == 3) {
-					//	$return_array[$name][] = $array;
-					} else {
-						$return_array = $array;
-					}
-					unset($array);
-				//after normalizing the array
-					$depth = $this->array_depth($new_array);
-					//echo "after: ".$depth."<br />\n";
-					//echo "<pre>\n";
-					//print_r($new_array);
-					//echo "</pre>\n";
-				//return the array
-					return $return_array;
-			}
-
-			public function save($array) {
-
-				//return the array
-					if (!is_array($array)) { echo "not an array"; return false; }
-
-				//set the message id
-					$m = 0;
-
-				//set the app name
-					if (!isset($this->app_name)) {
-						$this->app_name = $this->name;
-					}
-
-				//normalize the array structure
-					//$new_array = $this->normalize_array($array, $this->name);
-					//unset($array);
-					$new_array = $array;
-
-				//connect to the database if needed
-					if (!$this->db) {
-						$this->connect();
-					}
-
-				//debug sql
-					$this->debug["sql"] = true;
-
-				//start the atomic transaction
-//					$this->db->beginTransaction();
-
-				//debug info
-					//echo "<pre>\n";
-					//print_r($new_array);
-					//echo "</pre>\n";
-					//exit;
-
-				//loop through the array
-					foreach ($new_array as $schema_name => $schema_array) {
-
-						$this->name = $schema_name;
-						foreach ($schema_array as $schema_id => $array) {
-
-							//set the variables
-								$table_name = "v_".$this->name;
-								$parent_key_name = $this->singular($this->name)."_uuid";
-
-							//if the uuid is set then set parent key exists and value 
-								//determine if the parent_key_exists
-								$parent_key_exists = false;
-								if (isset($array[$parent_key_name])) {
-									$this->uuid = $array[$parent_key_name];
-									$parent_key_value = $this->uuid;
-									$parent_key_exists = true;
-								}
-								else {
-									if (isset($this->uuid)) {
-										$parent_key_exists = true;
-										$parent_key_value = $this->uuid;
-									}
-									else {
-										$parent_key_value = uuid();
-									}
-								}
-
-							//get the parent field names
-								$parent_field_names = array();
-								foreach ($array as $key => $value) {
-									if (!is_array($value)) {
-										$parent_field_names[] = $key;
-									}
-								}
-
-							//determine action update or delete and get the original data
-								if ($parent_key_exists) {
-									$sql = "SELECT ".implode(", ", $parent_field_names)." FROM ".$table_name." ";
-									$sql .= "WHERE ".$parent_key_name." = '".$this->uuid."' ";
-									$prep_statement = $this->db->prepare($sql);
-									if ($prep_statement) {
-										//get the data
-											try {
-												$prep_statement->execute();
-												$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
-											}
-											catch(PDOException $e) {
-												echo 'Caught exception: ',  $e->getMessage(), "<br/><br/>\n";
-												echo $sql;
-												exit;
-											}
-
-										//set the action
-											if (count($result) > 0) {
-												$action = "update";
-												$old_array[$schema_name] = $result;
-											}
-											else {
-												$action = "add";
-											}
-									}
-									unset($prep_statement);
-									unset($result);
-								}
-								else {
-									$action = "add";
-								}
-
-							//add a record
-								if ($action == "add") {
-
-									if (permission_exists($this->singular($this->name).'_add')) {
-
-											$sql = "INSERT INTO v_".$this->name." ";
-											$sql .= "(";
-											if (!$parent_key_exists) {
-												$sql .= $parent_key_name.", ";
-											}
-											//foreach ($parent_field_names as $field_name) {
-											//		$sql .= check_str($field_name).", ";
-											//}
-											foreach ($array as $array_key => $array_value) {
-												if (!is_array($array_value)) {
-													$sql .= check_str($array_key).", ";
-												}
-											}
-											$sql .= ") ";
-											$sql .= "VALUES ";
-											$sql .= "(";
-											if (!$parent_key_exists) {
-												$sql .= "'".$parent_key_value."', ";
-											}
-											foreach ($array as $array_key => $array_value) {
-												if (!is_array($array_value)) {
-													if (strlen($array_value) == 0) {
-														$sql .= "null, ";
-													}
-													else {
-														$sql .= "'".check_str($array_value)."', ";
-													}
-												}
-											}
-											$sql .= ");";
-											$sql = str_replace(", )", ")", $sql);
-											$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-											try {
-												$this->db->query(check_sql($sql));
-												$message["message"] = "OK";
-												$message["code"] = "200";
-												$message["uuid"] = $parent_key_value;
-												$message["details"][$m]["name"] = $this->name;
-												$message["details"][$m]["message"] = "OK";
-												$message["details"][$m]["code"] = "200";
-												$message["details"][$m]["uuid"] = $parent_key_value;
-												if ($this->debug["sql"]) {
-													$message["details"][$m]["sql"] = $sql;
-												}
-												$this->message = $message;
-												$m++;
-											}
-											catch(PDOException $e) {
-												$message["message"] = "Bad Request";
-												$message["code"] = "400";
-												$message["details"][$m]["name"] = $this->name;
-												$message["details"][$m]["message"] = $e->getMessage();
-												$message["details"][$m]["code"] = "400";
-												if ($this->debug["sql"]) {
-													$message["details"][$m]["sql"] = $sql;
-												}
-												$this->message = $message;
-												$m++;
-											}
-											unset($sql);
-									}
-									else {
-										$message["name"] = $this->name;
-										$message["message"] = "Forbidden, does not have '".$this->singular($this->name)."_add'";
-										$message["code"] = "403";
-										$message["line"] = __line__;
-										$this->message[] = $message;
-										$m++;
-									}
-								}
-
-							//edit a specific uuid
-								if ($action == "update") {
-									if (permission_exists($this->singular($this->name).'_edit')) {
-
-										//parent data
-											$sql = "UPDATE v_".$this->name." SET ";
-											foreach ($array as $array_key => $array_value) {
-												if (!is_array($array_value) && $array_key != $parent_key_name) {
-													if (strlen($array_value) == 0) {
-														$sql .= check_str($array_key)." = null, ";
-													}
-													else {
-														$sql .= check_str($array_key)." = '".check_str($array_value)."', ";
-													}
-												}
-											}
-											$sql .= "WHERE ".$parent_key_name." = '".$parent_key_value."' ";
-											$sql = str_replace(", WHERE", " WHERE", $sql);
-											$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-											try {
-												$this->db->query(check_sql($sql));
-												$message["message"] = "OK";
-												$message["code"] = "200";
-												$message["uuid"] = $parent_key_value;
-												$message["details"][$m]["name"] = $this->name;
-												$message["details"][$m]["message"] = "OK";
-												$message["details"][$m]["code"] = "200";
-												$message["details"][$m]["uuid"] = $parent_key_value;
-												if ($this->debug["sql"]) {
-													$message["details"][$m]["sql"] = $sql;
-												}
-												$this->message = $message;
-												$m++;
-												unset($sql);
-											}
-											catch(PDOException $e) {
-												$message["message"] = "Bad Request";
-												$message["code"] = "400";
-												$message["details"][$m]["name"] = $this->name;
-												$message["details"][$m]["message"] = $e->getMessage();
-												$message["details"][$m]["code"] = "400";
-												if ($this->debug["sql"]) {
-													$message["details"][$m]["sql"] = $sql;
-												}
-												$this->message = $message;
-												$m++;
-											}
-									}
-									else {
-										$message["name"] = $this->name;
-										$message["message"] = "Forbidden, does not have '".$this->singular($this->name)."_edit'";
-										$message["code"] = "403";
-										$message["line"] = __line__;
-										$this->message = $message;
-										$m++;
-									}
-								}
-
-							//unset the variables
-								unset($sql, $action);
-
-							//child data
-								foreach ($array as $key => $value) {
-
-									if (is_array($value)) {
-											$table_name = "v_".$key;
-
-											foreach ($value as $id => $row) {
-												//prepare the variables
-													$child_name = $this->singular($key);
-													$child_key_name = $child_name."_uuid";
-			
-												//determine if the parent key exists in the child array
-													$parent_key_exists = false;
-													if (!isset($array[$parent_key_name])) {
-														$parent_key_exists = true;
-													}
-
-												//determine if the uuid exists
-													$uuid_exists = false;
-													foreach ($row as $k => $v) {
-														if ($child_key_name == $k) {
-															if (strlen($v) > 0) {
-																$child_key_value = $v;
-																$uuid_exists = true;
-																break;
-															}
-														}
-														else {
-															$uuid_exists = false;
-														}
-													}
-
-												//get the child field names
-													$child_field_names = array();
-													foreach ($row as $k => $v) {
-														if (!is_array($v)) {
-															$child_field_names[] = $k;
-														}
-													}
-
-												//determine sql update or delete and get the original data
-													if ($uuid_exists) {
-														$sql = "SELECT ". implode(", ", $child_field_names)." FROM ".$table_name." ";
-														$sql .= "WHERE ".$child_key_name." = '".$child_key_value."' ";
-														$prep_statement = $this->db->prepare($sql);
-														if ($prep_statement) {
-															//get the data
-																$prep_statement->execute();
-																$child_array = $prep_statement->fetch(PDO::FETCH_ASSOC);
-															//set the action
-																if (is_array($child_array)) {
-																	$action = "update";
-																}
-																else {
-																	$action = "add";
-																}
-															//add to the parent array
-																if (is_array($child_array)) {
-																	$old_array[$schema_name][$schema_id][$key][] = $child_array;
-																}
-														}
-														unset($prep_statement);
-													}
-													else {
-														$action = "add";
-													}
-
-												//update the data
-													if ($action == "update") {
-														if (permission_exists($child_name.'_edit')) {
-															$sql = "UPDATE ".$table_name." SET ";
-															foreach ($row as $k => $v) {
-																//if (!is_array($v) && $k != $child_key_name) { //original
-																if (!is_array($v) && ($k != $parent_key_name || $k != $child_key_name)) {
-																	if (strlen($v) == 0) {
-																		$sql .= check_str($k)." = null, ";
-																	}
-																	else {
-																		$sql .= check_str($k)." = '".check_str($v)."', ";
-																	}
-																}
-															}
-															$sql .= "WHERE ".$parent_key_name." = '".$this->uuid."' ";
-															$sql .= "AND ".$child_key_name." = '".$child_key_value."' ";
-															$sql = str_replace(", WHERE", " WHERE", $sql);
-															$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-															try {
-																$this->db->query(check_sql($sql));
-																$message["details"][$m]["name"] = $key;
-																$message["details"][$m]["message"] = "OK";
-																$message["details"][$m]["code"] = "200";
-																$message["details"][$m]["uuid"] = $child_key_value;
-																if ($this->debug["sql"]) {
-																	$message["details"][$m]["sql"] = $sql;
-																}
-																$this->message = $message;
-																$m++;
-															}
-															catch(PDOException $e) {
-																if ($message["code"] = "200") {
-																	$message["message"] = "Bad Request";
-																	$message["code"] = "400";
-																}
-																$message["details"][$m]["name"] = $key;
-																$message["details"][$m]["message"] = $e->getMessage();
-																$message["details"][$m]["code"] = "400";
-																if ($this->debug["sql"]) {
-																	$message["details"][$m]["sql"] = $sql;
-																}
-																$this->message = $message;
-																$m++;
-															}
-														}
-														else {
-															$message["name"] = $child_name;
-															$message["message"] = "Forbidden, does not have '${child_name}_edit'";
-															$message["code"] = "403";
-															$message["line"] = __line__;
-															$this->message = $message;
-															$m++;
-														}
-													} //action update
-
-											//add the data
-												if ($action == "add") {
-													if (permission_exists($child_name.'_add')) {
-														//determine if child or parent key exists
-														$child_key_name = $this->singular($child_name).'_uuid';
-														$parent_key_exists = false;
-														$child_key_exists = false;
-														foreach ($row as $k => $v) {
-															if ($k == $parent_key_name) {
-																$parent_key_exists = true; 
-															}
-															if ($k == $child_key_name) {
-																$child_key_exists = true;
-																$child_key_value = $v;
-															}
-														}
-														if (!$child_key_value) {
-															$child_key_value = uuid();
-														}
-														//build the insert
-														$sql = "INSERT INTO ".$table_name." ";
-														$sql .= "(";
-														if (!$parent_key_exists) {
-															$sql .= $this->singular($parent_key_name).", ";
-														}
-														if (!$child_key_exists) {
-															$sql .= $this->singular($child_key_name).", ";
-														}
-														foreach ($row as $k => $v) {
-															if (!is_array($v)) {
-																$sql .= check_str($k).", ";
-															}
-														}
-														$sql .= ") ";
-														$sql .= "VALUES ";
-														$sql .= "(";
-														if (!$parent_key_exists) {
-															$sql .= "'".$parent_key_value."', ";
-														}
-														if (!$child_key_exists) {
-															$sql .= "'".$child_key_value."', ";
-														}
-														foreach ($row as $k => $v) {
-															if (!is_array($v)) {
-																if (strlen($v) == 0) {
-																	$sql .= "null, ";
-																}
-																else {
-																	$sql .= "'".check_str($v)."', ";
-																}
-															}
-														}
-														$sql .= ");";
-														$sql = str_replace(", )", ")", $sql);
-														$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-														try {
-															$this->db->query(check_sql($sql));
-															$message["details"][$m]["name"] = $key;
-															$message["details"][$m]["message"] = "OK";
-															$message["details"][$m]["code"] = "200";
-															$message["details"][$m]["uuid"] = $child_key_value;
-															if ($this->debug["sql"]) {
-																$message["details"][$m]["sql"] = $sql;
-															}
-															$this->message = $message;
-															$m++;
-														}
-														catch(PDOException $e) {
-															if ($message["code"] = "200") {
-																$message["message"] = "Bad Request";
-																$message["code"] = "400";
-															}
-															$message["details"][$m]["name"] = $key;
-															$message["details"][$m]["message"] = $e->getMessage();
-															$message["details"][$m]["code"] = "400";
-															if ($this->debug["sql"]) {
-																$message["details"][$m]["sql"] = $sql;
-															}
-															$this->message = $message;
-															$m++;
-														}
-													}
-													else {
-														$message["name"] = $child_name;
-														$message["message"] = "Forbidden, does not have '${child_name}_add'";
-														$message["code"] = "403";
-														$message["line"] = __line__;
-														$this->message = $message;
-														$m++;
-													}
-												} //action add
-
-											//unset the variables
-												unset($sql, $action, $child_key_name, $child_key_value);
-										} // foreach value
-
-									} //is array
-								} //foreach array
-
-						} // foreach schema_array
-					}  // foreach main array
-
-				//return the before and after data
-					//log this in the future
-					if (is_array($old_array)) {
-						//normalize the array structure
-							//$old_array = $this->normalize_array($old_array, $this->name);
-
-						//debug info
-							//echo "<pre>\n";
-							//print_r($old_array);
-							//echo "</pre>\n";
-							//exit;
-					}
-					//$message["new"] = $new_array;
-					//$message["new"]["md5"] = md5(json_encode($new_array));
-					$this->message = $message;
-
-				//commit the atomic transaction
-//					$this->db->commit();
-
-				//get the domain uuid
-					$domain_uuid = $_SESSION['domain_uuid'];
-
-				//log the transaction results
-					if (file_exists($_SERVER["PROJECT_ROOT"]."/app/database_transactions/app_config.php")) {
-						$sql = "insert into v_database_transactions ";
-						$sql .= "(";
-						$sql .= "database_transaction_uuid, ";
-						$sql .= "domain_uuid, ";
-						$sql .= "user_uuid, ";
-						if (isset($this->app_uuid)) {
-							$sql .= "app_uuid, ";
-						}
-						$sql .= "app_name, ";
-						$sql .= "transaction_code, ";
-						$sql .= "transaction_address, ";
-						//$sql .= "transaction_type, ";
-						$sql .= "transaction_date, ";
-						$sql .= "transaction_old, ";
-						$sql .= "transaction_new, ";
-						$sql .= "transaction_result ";
-						$sql .= ")";
-						$sql .= "values ";
-						$sql .= "(";
-						$sql .= "'".uuid()."', ";
-						$sql .= "'".$domain_uuid."', ";
-						$sql .= "'".$_SESSION['user_uuid']."', ";
-						if (isset($this->app_uuid)) {
-							$sql .= "'".$this->app_uuid."', ";
-						}
-						$sql .= "'".$this->app_name."', ";
-						$sql .= "'".$message["code"]."', ";
-						$sql .= "'".$_SERVER['REMOTE_ADDR']."', ";
-						//$sql .= "'$transaction_type', ";
-						$sql .= "now(), ";
-						$sql .= "'".check_str(json_encode($old_array, JSON_PRETTY_PRINT))."', ";
-						$sql .= "'".check_str(json_encode($new_array, JSON_PRETTY_PRINT))."', ";
-						$sql .= "'".check_str(json_encode($this->message, JSON_PRETTY_PRINT))."' ";
-						$sql .= ")";
-						$this->db->exec(check_sql($sql));
-						unset($sql);
-					}
-			} //save method
-
-			//define singular function to convert a word in english to singular
-			private function singular($word) {
-				//"-es" is used for words that end in "-x", "-s", "-z", "-sh", "-ch" in which case you add
-				if (substr($word, -2) == "es") {
-					if (substr($word, -3, 1) == "x") {
-						return substr($word,0,-2);
-					}
-					if (substr($word, -3, 1) == "s") {
-						return substr($word,0,-2);
-					}
-					elseif (substr($word, -3, 1) == "z") {
-						return substr($word,0,-2);
-					}
-					elseif (substr($word, -4, 2) == "sh") {
-						return substr($word,0,-2);
-					}
-					elseif (substr($word, -4, 2) == "ch") {
-						return substr($word,0,-2);
-					}
-					else {
-						return rtrim($word, "s");
-					}
-				}
-				else {
-					return rtrim($word, "s");
-				}
-			}
-
-			public function get_apps() {
-				//get the $apps array from the installed apps from the core and mod directories
-					$config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php");
-					$x = 0;
-					foreach ($config_list as &$config_path) {
-						include($config_path);
-						$x++;
-					}
-					$_SESSION['apps'] = $apps;
-			}
-
-			public function array_depth($array) {
-				if (is_array($array)) {
-					foreach ($array as $value) {
-						if (!isset($depth)) { $depth = 1; }
-						if (is_array($value)) {
-							$depth = $this->array_depth($value) + 1;
-						}
-					}
-				}
-				else {
-					$depth = 0;
-				}
-				return $depth;
-			}
-
-			public function domain_uuid_exists($name) {
-				//get the $apps array from the installed apps from the core and mod directories
-					if (!is_array($_SESSION['apps'])) {
-						$this->get_apps();
-					}
-				//search through all fields to see if domain_uuid exists
-					foreach ($_SESSION['apps'] as $x => &$app) {
-						foreach ($app['db'] as $y => &$row) {
-							if ($row['table'] == $name) {
-								foreach ($row['fields'] as $z => $field) {
-									if ($field['name'] == "domain_uuid") {
-										return true;
-									}
-								}
-							}
-						}
-					}
-				//not found
-					return false;
-			}
-		}
-	}
-
-	//examples
-		/*
-		//get records
-			$orm = new orm();
-			$result = $orm->name('dialplans')->find()->get();
-			print_r($result);
-
-		//get a single record
-			$orm = new orm();
-			$orm->name('dialplans')
-			$orm->uuid('a8363085-8318-4dee-b87f-0818be0d6318');
-			$orm->find();
-			$result = $orm->get();
-			print_r($result);
-
-		//get a single record
-			$array['name'] = "dialplans";
-			$array['uuid'] = "2d27e4a4-c954-4f8a-b734-88b0e1054b86";
-			$orm = new orm();
-			$result = $orm->find($array)->get();
-			print_r($result);
-
-		//get limited records with limit and offset
-			$array['name'] = "dialplans";
-			$array['limit'] = "10";
-			$array['offset'] = "2";
-			$orm = new orm();
-			$result = $orm->find($array)->get();
-			print_r($result);
-		*/
-
-?>