Use the database more efficiently

This commit is contained in:
FusionPBX
2024-07-26 17:04:02 -06:00
committed by GitHub
parent e7e2f73004
commit a5d44ae44b
7 changed files with 52 additions and 72 deletions

View File

@@ -38,6 +38,9 @@
exit;
}
//initialize the database object
$database = new database;
//add multi-lingual support
$language = new text;
$text = $language->get();
@@ -66,7 +69,6 @@
$sql .= "and extension_uuid = :extension_uuid ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['extension_uuid'] = $extension_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$extension = $row["extension"];
@@ -140,9 +142,7 @@
$array['extensions'][0]['extension_type'] = $extension_type;
$array['extensions'][0]['enabled'] = $enabled;
$array['extensions'][0]['description'] = $description;
$database = new database;
$database->save($array);
$message = $database->message;
unset($array);
//get the source extension voicemail data
@@ -154,7 +154,6 @@
$sql .= "and voicemail_id = :voicemail_id ";
$parameters['voicemail_id'] = is_numeric($number_alias) ? $number_alias : $extension;
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$voicemail_mailto = $row["voicemail_mail_to"];

View File

@@ -38,6 +38,9 @@
exit;
}
//initialize the database object
$database = new database;
//add multi-lingual support
$language = new text;
$text = $language->get();
@@ -148,7 +151,6 @@
$sql = "select ".implode(', ', $selected_columns)." from v_extensions ";
$sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$extensions = $database->select($sql, $parameters, 'all');
unset($sql, $parameters, $selected_columns);
@@ -180,7 +182,7 @@
echo $text['description-extension_export'];
echo "<br /><br />\n";
echo "<table class='list'>\n";
echo "<tr class='list-header'>\n";
echo " <th class='checkbox'>\n";

View File

@@ -38,6 +38,9 @@
exit;
}
//initialize the database object
$database = new database;
//add multi-lingual support
$language = new text;
$text = $language->get();
@@ -59,7 +62,6 @@
$sql .= "from v_extensions ";
$sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$database = new database;
$total_extensions = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
@@ -81,7 +83,6 @@
else { //lookup extension based on submitted uuid
$sql = "select extension from v_extensions where extension_uuid = :extension_uuid";
$parameters['extension_uuid'] = $extension_uuid;
$database = new database;
$extension = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
}
@@ -186,7 +187,6 @@
}
$sql .= "order by device_address asc ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$total_devices = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
@@ -227,7 +227,6 @@
$sql .= "d1.domain_uuid = d2.domain_uuid and ";
$sql .= "d1.device_address = :device_address ";
$parameters['device_address'] = $device_address;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row)) {
if ($_SESSION['domain_uuid'] == $row['domain_uuid']) {
@@ -266,7 +265,6 @@
$p->add('extension_user_delete', 'temp');
//save the array
$database = new database;
$database->app_name = 'extensions';
$database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
$database->delete($array);
@@ -294,7 +292,6 @@
$p->add('device_line_delete', 'temp');
//save the array
$database = new database;
$database->app_name = 'extensions';
$database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
$database->delete($array);
@@ -690,7 +687,6 @@
$sql .= "and domain_uuid = :domain_uuid ";
$parameters['voicemail_id'] = $voicemail_id;
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$voicemail_uuid = $row["voicemail_uuid"];
@@ -766,7 +762,6 @@
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['server_address'] = $_SESSION['domain_name'];
$parameters['user_id'] = $extension;
$database = new database;
$database->execute($sql, $parameters);
unset($sql, $parameters);
}
@@ -780,23 +775,20 @@
$parameters['device_key_label'] = $effective_caller_id_name;
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['device_key_value'] = $extension;
$database = new database;
$database->execute($sql, $parameters);
unset($sql, $parameters);
}
//save to the data
$database = new database;
$database->app_name = 'extensions';
$database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
$database->save($array);
$message = $database->message;
$message = $database->save($array);
unset($array);
//reload acl if allowed
//reload the access control list
if (permission_exists("extension_cidr")) {
$esl = event_socket::create();
if ($esl->is_connected()) { event_socket::api("reloadacl"); }
$event_socket = event_socket::create();
if ($event_socket->is_connected()) { event_socket::api("reloadacl"); }
}
//check the permissions
@@ -824,7 +816,6 @@
$sql = "select user_context from v_extensions ";
$sql .= "where extension_uuid = :extension_uuid ";
$parameters['extension_uuid'] = $extension_uuid;
$database = new database;
$user_context = $database->select($sql, $parameters, 'column');
}
$cache = new cache;
@@ -863,7 +854,6 @@
$sql = "select * from v_extensions ";
$sql .= "where extension_uuid = :extension_uuid ";
$parameters['extension_uuid'] = $extension_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$domain_uuid = $row["domain_uuid"];
@@ -924,7 +914,6 @@
$sql .= "and voicemail_id = :voicemail_id ";
$parameters['domain_uuid'] = $domain_uuid;
$parameters['voicemail_id'] = is_numeric($number_alias) ? $number_alias : $extension;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$voicemail_password = str_replace("#", "", $row["voicemail_password"] ?? '');
@@ -956,7 +945,6 @@
$parameters['user_id_2'] = $number_alias ?? null;
$parameters['password'] = $password ?? null;
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$device_lines = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
@@ -969,7 +957,6 @@
}
$sql .= "order by device_address asc ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$devices = $database->select($sql, $parameters, 'all');
if (!empty($devices) && is_array($devices)) {
$total_devices = @sizeof($devices);
@@ -981,7 +968,6 @@
$sql .= "from v_device_vendors ";
$sql .= "where enabled = 'true' ";
$sql .= "order by name asc ";
$database = new database;
$device_vendors = $database->select($sql, null, 'all');
unset($sql);
@@ -996,7 +982,6 @@
$sql .= "order by u.username asc ";
$parameters['domain_uuid'] = $domain_uuid;
$parameters['extension_uuid'] = $extension_uuid;
$database = new database;
$assigned_users = $database->select($sql, $parameters, 'all');
if (is_array($assigned_users) && @sizeof($assigned_users) != 0) {
foreach($assigned_users as $row) {
@@ -1018,7 +1003,6 @@
$sql .= "and user_enabled = 'true' ";
$sql .= "order by username asc ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$users = $database->select($sql, $parameters, 'all');
unset($sql, $parameters, $assigned_user_uuids, $assigned_user_uuid);
@@ -1028,7 +1012,6 @@
$sql .= "and destination_type = 'inbound' ";
$sql .= "order by destination_number asc ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$destinations = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
@@ -1040,7 +1023,6 @@
$sql .= "and destination_type_emergency = 1 ";
$sql .= "order by destination_number asc ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$emergency_destinations = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
}
@@ -2008,7 +1990,7 @@
echo "</td>\n";
echo "</tr>\n";
}
if (permission_exists('extension_language')) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap>\n";
@@ -2331,4 +2313,4 @@
//include the footer
require_once "resources/footer.php";
?>
?>

View File

@@ -37,6 +37,9 @@
exit;
}
//initialize the database object
$database = new database;
//add multi-lingual support
$language = new text;
$text = $language->get();
@@ -117,7 +120,7 @@
$schema[$i]['fields'][] = $field_name;
}
}
$i++;
$i++;
}
}
@@ -246,14 +249,13 @@
//user selected fields
$fields = $_POST['fields'];
//set the domain_uuid
$domain_uuid = $_SESSION['domain_uuid'];
//get the users
$sql = "select * from v_users where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$users = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
@@ -272,7 +274,7 @@
foreach ($fields as $key => $value) {
//get the line
$result = str_getcsv($line, $delimiter, $enclosure);
//get the table and field name
$field_array = explode(".",$value);
$table_name = $field_array[0];
@@ -280,7 +282,7 @@
//echo "value: $value<br />\n";
//echo "table_name: $table_name<br />\n";
//echo "field_name: $field_name<br />\n";
//get the parent table name
$parent = get_parent($schema, $table_name);
@@ -322,7 +324,6 @@
if ($row_id === 1000) {
//save to the data
$database = new database;
$database->app_name = 'extensions';
$database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
$database->save($array);
@@ -342,7 +343,6 @@
//save to the data
if (!empty($array) && is_array($array)) {
$database = new database;
$database->app_name = 'extensions';
$database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
$database->save($array);
@@ -458,4 +458,4 @@
//include the footer
require_once "resources/footer.php";
?>
?>

View File

@@ -39,6 +39,9 @@
exit;
}
//initialize the database object
$database = new database;
//add multi-lingual support
$language = new text;
$text = $language->get();
@@ -85,7 +88,6 @@
$sql = "select count(*) from v_extensions ";
$sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$database = new database;
$total_extensions = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
}
@@ -121,7 +123,6 @@
$sql .= ") ";
$parameters['search'] = '%'.$search.'%';
}
$database = new database;
$num_rows = $database->select($sql, $parameters ?? null, 'column');
//prepare to page the results
@@ -198,7 +199,6 @@
}
$sql .= order_by($order_by, $order, null, null, $sort);
$sql .= limit_offset($rows_per_page, $offset);
$database = new database;
$extensions = $database->select($sql, $parameters ?? null, 'all');
unset($sql, $parameters);
@@ -436,4 +436,4 @@
//show the footer
require_once "resources/footer.php";
?>
?>

View File

@@ -73,6 +73,7 @@ if (!class_exists('extension')) {
public $enabled;
public $description;
public $delete_voicemail;
private $database;
/**
* declare private variables
@@ -91,6 +92,11 @@ if (!class_exists('extension')) {
*/
public function __construct() {
//connect to the database
if (!isset($database)) {
$this->database = new database;
}
//assign private variables
$this->app_name = 'extensions';
$this->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
@@ -113,8 +119,7 @@ if (!class_exists('extension')) {
$sql .= "and enabled = 'true' ";
$parameters['domain_uuid'] = $domain_uuid;
$parameters['extension'] = $extension;
$database = new database;
return $database->select($sql, $parameters, 'column') != 0 ? true : false;
return $this->database->select($sql, $parameters, 'column') != 0 ? true : false;
unset($sql, $parameters);
}
@@ -141,8 +146,7 @@ if (!class_exists('extension')) {
$sql .= "and voicemail_id = :voicemail_id ";
$parameters['domain_uuid'] = $this->domain_uuid;
$parameters['voicemail_id'] = $this->voicemail_id;
$database = new database;
$voicemail_uuid = $database->select($sql, $parameters, 'column');
$voicemail_uuid = $this->database->select($sql, $parameters, 'column');
unset($sql, $parameters);
if (is_uuid($voicemail_uuid)) {
@@ -170,10 +174,9 @@ if (!class_exists('extension')) {
$array['voicemails'][0]['voicemail_enabled'] = $this->voicemail_enabled;
$array['voicemails'][0]['voicemail_description'] = $this->description;
//execute insert/update
$database = new database;
$database->app_name = 'extensions';
$database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
$database->save($array);
$this->database->app_name = 'extensions';
$this->database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
$this->database->save($array);
unset($array);
//revoke temporary permissions
$p->delete('voicemail_edit', 'temp');
@@ -204,8 +207,7 @@ if (!class_exists('extension')) {
$sql .= "and coalesce(nullif(e.number_alias,''),e.extension) = cast(v.voicemail_id as varchar) ";
$sql .= "order by e.call_group asc ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$rows = $database->select($sql, $parameters, 'all');
$rows = $this->database->select($sql, $parameters, 'all');
unset($sql, $parameters);
$extension_xml_condensed = false;
@@ -567,8 +569,7 @@ if (!class_exists('extension')) {
$sql .= "and extension_uuid = :extension_uuid ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['extension_uuid'] = $record['uuid'];
$database = new database;
$row = $database->select($sql, $parameters, 'row');
$row = $this->database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
//for use below and to clear cache (bottom)
@@ -622,8 +623,7 @@ if (!class_exists('extension')) {
$sql .= "where domain_uuid = :domain_uuid ";
$sql .= "and voicemail_id in ('".implode("','", $voicemail_ids)."') ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$database = new database;
$rows = $database->select($sql, $parameters, 'all');
$rows = $this->database->select($sql, $parameters, 'all');
if (is_array($rows) && @sizeof($rows) != 0) {
foreach ($rows as $r => $row) {
$voicemails[$r]['checked'] = 'true';
@@ -646,10 +646,9 @@ if (!class_exists('extension')) {
$p->add('ring_group_destination_delete', 'temp');
//execute delete
$database = new database;
$database->app_name = $this->app_name;
$database->app_uuid = $this->app_uuid;
$database->delete($array);
$this->database->app_name = $this->app_name;
$this->database->app_uuid = $this->app_uuid;
$this->database->delete($array);
unset($array);
//revoke temporary permissions
@@ -719,8 +718,7 @@ if (!class_exists('extension')) {
$sql .= "where domain_uuid = :domain_uuid ";
$sql .= "and ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") ";
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$database = new database;
$rows = $database->select($sql, $parameters, 'all');
$rows = $this->database->select($sql, $parameters, 'all');
if (is_array($rows) && @sizeof($rows) != 0) {
foreach ($rows as $row) {
//for use below and to clear cache (bottom)
@@ -749,10 +747,9 @@ if (!class_exists('extension')) {
$p->add('extension_edit', 'temp');
//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);
//revoke temporary permissions
@@ -801,3 +798,4 @@ if (!class_exists('extension')) {
}
?>

View File

@@ -95,8 +95,7 @@
//save to the data
$database->app_name = 'extensions';
$database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3';
$database->save($array);
$message = $database->message;
$message = $database->save($array);
//update the session array
if ($message['message'] == 'OK' && $message['code'] == '200') {
@@ -317,4 +316,4 @@
}
?>
?>