mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2026-03-10 18:48:49 +00:00
Use the database more efficiently
This commit is contained in:
@@ -46,18 +46,31 @@ if (!class_exists('domains')) {
|
||||
private $toggle_values;
|
||||
private $location;
|
||||
|
||||
/**
|
||||
* Set in the constructor. Must be a database object and cannot be null.
|
||||
* @var database Database Object
|
||||
*/
|
||||
private $database;
|
||||
|
||||
/**
|
||||
* called when the object is created
|
||||
*/
|
||||
public function __construct() {
|
||||
public function __construct($setting_array = []) {
|
||||
//assign the variables
|
||||
$this->app_name = 'domains';
|
||||
$this->app_uuid = '8b91605b-f6d2-42e6-a56d-5d1ded01bb44';
|
||||
$this->name = 'domain';
|
||||
$this->table = 'domains';
|
||||
$this->toggle_field = 'domain_enabled';
|
||||
$this->toggle_values = ['true','false'];
|
||||
$this->location = 'domains.php';
|
||||
$this->app_name = 'domains';
|
||||
$this->app_uuid = '8b91605b-f6d2-42e6-a56d-5d1ded01bb44';
|
||||
$this->name = 'domain';
|
||||
$this->table = 'domains';
|
||||
$this->toggle_field = 'domain_enabled';
|
||||
$this->toggle_values = ['true','false'];
|
||||
$this->location = 'domains.php';
|
||||
|
||||
//open a database connection
|
||||
if (empty($setting_array['database'])) {
|
||||
$this->database = database::new();
|
||||
} else {
|
||||
$this->database = $setting_array['database'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -91,8 +104,7 @@ if (!class_exists('domains')) {
|
||||
$sql = "select domain_name from v_domains ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $id;
|
||||
$database = new database;
|
||||
$domain_name = $database->select($sql, $parameters, 'column');
|
||||
$domain_name = $this->database->select($sql, $parameters, 'column');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//get the domain settings
|
||||
@@ -100,8 +112,7 @@ if (!class_exists('domains')) {
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and domain_setting_enabled = 'true' ";
|
||||
$parameters['domain_uuid'] = $id;
|
||||
$database = new database;
|
||||
$result = $database->select($sql, $parameters, 'all');
|
||||
$result = $this->database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
if (is_array($result) && sizeof($result) != 0) {
|
||||
@@ -155,10 +166,9 @@ if (!class_exists('domains')) {
|
||||
if ($field['name'] == 'domain_uuid' && $table_name != 'v_domains') {
|
||||
$sql = "delete from ".$table_name." where domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $id;
|
||||
$database = new database;
|
||||
$database->app_name = 'domain_settings';
|
||||
$database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
|
||||
$database->execute($sql, $parameters);
|
||||
$this->database->app_name = 'domain_settings';
|
||||
$this->database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71';
|
||||
$this->database->execute($sql, $parameters);
|
||||
unset($sql, $parameters);
|
||||
}
|
||||
}
|
||||
@@ -265,10 +275,9 @@ if (!class_exists('domains')) {
|
||||
//delete the checked rows
|
||||
if (is_array($domain_array) && @sizeof($domain_array) != 0) {
|
||||
//execute delete
|
||||
$database = new database;
|
||||
$database->app_name = $this->app_name;
|
||||
$database->app_uuid = $this->app_uuid;
|
||||
$database->delete($domain_array);
|
||||
$this->database->app_name = $this->app_name;
|
||||
$this->database->app_uuid = $this->app_uuid;
|
||||
$this->database->delete($domain_array);
|
||||
|
||||
//set message
|
||||
message::add($text['message-delete']);
|
||||
@@ -310,8 +319,7 @@ if (!class_exists('domains')) {
|
||||
if (is_array($uuids) && @sizeof($uuids) != 0) {
|
||||
$sql = "select ".$this->name."_uuid as uuid, ".$this->toggle_field." as toggle from v_".$this->table." ";
|
||||
$sql .= "where ".$this->name."_uuid in (".implode(', ', $uuids).") ";
|
||||
$database = new database;
|
||||
$rows = $database->select($sql, $parameters ?? null, 'all');
|
||||
$rows = $this->database->select($sql, $parameters ?? null, 'all');
|
||||
if (is_array($rows) && @sizeof($rows) != 0) {
|
||||
foreach ($rows as $row) {
|
||||
$states[$row['uuid']] = $row['toggle'];
|
||||
@@ -334,10 +342,9 @@ if (!class_exists('domains')) {
|
||||
//save the changes
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//save the array
|
||||
$database = new database;
|
||||
$database->app_name = $this->app_name;
|
||||
$database->app_uuid = $this->app_uuid;
|
||||
$database->save($array);
|
||||
$this->database->app_name = $this->app_name;
|
||||
$this->database->app_uuid = $this->app_uuid;
|
||||
$this->database->save($array);
|
||||
unset($array);
|
||||
|
||||
//set message
|
||||
@@ -380,8 +387,7 @@ if (!class_exists('domains')) {
|
||||
if (is_array($uuids) && @sizeof($uuids) != 0) {
|
||||
$sql = "select * from v_".$this->table." ";
|
||||
$sql .= "where ".$this->name."_uuid in (".implode(', ', $uuids).") ";
|
||||
$database = new database;
|
||||
$rows = $database->select($sql, $parameters, 'all');
|
||||
$rows = $this->database->select($sql, $parameters, 'all');
|
||||
if (is_array($rows) && @sizeof($rows) != 0) {
|
||||
$x = 0;
|
||||
foreach ($rows as $row) {
|
||||
@@ -402,10 +408,9 @@ if (!class_exists('domains')) {
|
||||
//save the changes and set the message
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//save the array
|
||||
$database = new database;
|
||||
$database->app_name = $this->app_name;
|
||||
$database->app_uuid = $this->app_uuid;
|
||||
$database->save($array);
|
||||
$this->database->app_name = $this->app_name;
|
||||
$this->database->app_uuid = $this->app_uuid;
|
||||
$this->database->save($array);
|
||||
unset($array);
|
||||
|
||||
//set message
|
||||
@@ -428,8 +433,7 @@ if (!class_exists('domains')) {
|
||||
$sql .= "and domain_setting_enabled = 'true' ";
|
||||
$sql .= " order by domain_setting_order asc ";
|
||||
$parameters['previous_domain_uuid'] = $_SESSION["previous_domain_uuid"];
|
||||
$database = new database;
|
||||
$result = $database->select($sql, $parameters, 'all');
|
||||
$result = $this->database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//unset previous domain settings
|
||||
@@ -444,8 +448,7 @@ if (!class_exists('domains')) {
|
||||
//get the default settings
|
||||
$sql = "select * from v_default_settings ";
|
||||
$sql .= "order by default_setting_order asc ";
|
||||
$database = new database;
|
||||
$result = $database->select($sql, null, 'all');
|
||||
$result = $this->database->select($sql, null, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//unset all settings
|
||||
@@ -495,8 +498,7 @@ if (!class_exists('domains')) {
|
||||
$sql .= "and domain_setting_enabled = 'true' ";
|
||||
$sql .= " order by domain_setting_order asc ";
|
||||
$parameters['domain_uuid'] = $_SESSION["domain_uuid"];
|
||||
$database = new database;
|
||||
$result = $database->select($sql, $parameters, 'all');
|
||||
$result = $this->database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//unset the arrays that domains are overriding
|
||||
@@ -545,8 +547,7 @@ if (!class_exists('domains')) {
|
||||
$sql .= " order by user_setting_order asc ";
|
||||
$parameters['domain_uuid'] = $_SESSION["domain_uuid"];
|
||||
$parameters['user_uuid'] = $_SESSION["user_uuid"];
|
||||
$database = new database;
|
||||
$result = $database->select($sql, $parameters, 'all');
|
||||
$result = $this->database->select($sql, $parameters, 'all');
|
||||
if (is_array($result)) {
|
||||
foreach ($result as $row) {
|
||||
if ($row['user_setting_enabled'] == 'true') {
|
||||
@@ -609,6 +610,9 @@ if (!class_exists('domains')) {
|
||||
//add missing default settings
|
||||
$this->settings();
|
||||
|
||||
//save the database object to be used by app_defaults.php
|
||||
$database = $this->database;
|
||||
|
||||
//get the variables
|
||||
$config = new config;
|
||||
$config_path = $config->config_file;
|
||||
@@ -628,8 +632,7 @@ if (!class_exists('domains')) {
|
||||
|
||||
//get the domains
|
||||
$sql = "select * from v_domains ";
|
||||
$database = new database;
|
||||
$domains = $database->select($sql, null, 'all');
|
||||
$domains = $this->database->select($sql, null, 'all');
|
||||
unset($sql);
|
||||
|
||||
//loop through all domains
|
||||
@@ -676,8 +679,7 @@ if (!class_exists('domains')) {
|
||||
|
||||
//get an array of the default settings UUIDs
|
||||
$sql = "select * from v_default_settings ";
|
||||
$database = new database;
|
||||
$result = $database->select($sql, null, 'all');
|
||||
$result = $this->database->select($sql, null, 'all');
|
||||
foreach($result as $row) {
|
||||
$setting[$row['default_setting_uuid']] = 1;
|
||||
}
|
||||
@@ -710,10 +712,9 @@ if (!class_exists('domains')) {
|
||||
$p->add('default_setting_add', 'temp');
|
||||
|
||||
//execute insert
|
||||
$database = new database;
|
||||
$database->app_name = 'default_settings';
|
||||
$database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09';
|
||||
$database->save($array, false);
|
||||
$this->database->app_name = 'default_settings';
|
||||
$this->database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09';
|
||||
$this->database->save($array, false);
|
||||
unset($array);
|
||||
|
||||
//revoke temporary permissions
|
||||
@@ -727,11 +728,9 @@ if (!class_exists('domains')) {
|
||||
*/
|
||||
public function all() {
|
||||
//get the domains from the database
|
||||
$database = new database;
|
||||
if ($database->table_exists('v_domains')) {
|
||||
if ($this->database->table_exists('v_domains')) {
|
||||
$sql = "select * from v_domains order by domain_name asc;";
|
||||
$database = new database;
|
||||
$result = $database->select($sql, null, 'all');
|
||||
$result = $this->database->select($sql, null, 'all');
|
||||
foreach($result as $row) {
|
||||
$domain_names[] = $row['domain_name'];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user