diff --git a/app/voicemail_greetings/app_defaults.php b/app/voicemail_greetings/app_defaults.php
index f16d463a6e..96c31a4c41 100644
--- a/app/voicemail_greetings/app_defaults.php
+++ b/app/voicemail_greetings/app_defaults.php
@@ -30,37 +30,52 @@ if ($domains_processed == 1) {
$sql .= "set greeting_filename = greeting_name ";
$sql .= "where greeting_filename is null ";
$sql .= "or greeting_filename = '' ";
- $db->exec(check_sql($sql));
+ $database = new database;
+ $database->execute($sql);
unset($sql);
//populate greeting id number if empty
$sql = "select voicemail_greeting_uuid, greeting_filename ";
$sql .= "from v_voicemail_greetings ";
$sql .= "where greeting_id is null ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- foreach ($result as &$row) {
- $voicemail_greeting_uuid = $row['voicemail_greeting_uuid'];
- $greeting_id = preg_replace('{\D}', '', $row['greeting_filename']);
- $sqlu = "update v_voicemail_greetings ";
- $sqlu .= "set greeting_id = ".$greeting_id." ";
- $sqlu .= "where voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
- $db->exec(check_sql($sqlu));
- unset($sqlu, $voicemail_greeting_uuid, $greeting_id);
+ $database = new database;
+ $result = $database->select($sql, null, 'all');
+ if (is_array($result) && @sizeof($result) != 0) {
+ foreach ($result as $x => &$row) {
+ $voicemail_greeting_uuid = $row['voicemail_greeting_uuid'];
+ $greeting_id = preg_replace('{\D}', '', $row['greeting_filename']);
+ //build update array
+ $array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $array['voicemail_greetings'][$x]['greeting_id'] = $greeting_id;
+ unset($voicemail_greeting_uuid, $greeting_id);
+ }
+ if (is_array($array) && @sizeof($array) != 0) {
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('voicemail_greeting_edit', 'temp');
+ //execute update
+ $database = new database;
+ $database->app_name = 'voicemail_greetings';
+ $database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
+ $database->save($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('voicemail_greeting_edit', 'temp');
+ }
}
- unset ($sql, $prep_statement);
+ unset($sql, $result, $x, $row);
//if base64, populate from existing greeting files, then remove
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
//get greetings without base64 in db
$sql = "select voicemail_greeting_uuid, domain_uuid, voicemail_id, greeting_filename ";
- $sql .= "from v_voicemail_greetings where greeting_base64 is null or greeting_base64 = '' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- if (count($result) > 0) {
- foreach ($result as &$row) {
+ $sql .= "from v_voicemail_greetings ";
+ $sql .= "where greeting_base64 is null ";
+ $sql .= "or greeting_base64 = '' ";
+ $database = new database;
+ $result = $database->select($sql, null, 'all');
+ if (is_array($result) && @sizeof($result) != 0) {
+ foreach ($result as $x => &$row) {
$voicemail_greeting_uuid = $row['voicemail_greeting_uuid'];
$greeting_domain_uuid = $row['domain_uuid'];
$voicemail_id = $row['voicemail_id'];
@@ -69,31 +84,40 @@ if ($domains_processed == 1) {
$greeting_directory = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$greeting_domain_uuid]['domain_name'].'/'.$voicemail_id;
//encode greeting file (if exists)
if (file_exists($greeting_directory.'/'.$greeting_filename)) {
- $greeting_base64 = base64_encode(file_get_contents($greeting_directory.'/'.$greeting_filename));
- //update greeting record with base64
- $sql = "update v_voicemail_greetings set ";
- $sql .= "greeting_base64 = '".$greeting_base64."' ";
- $sql .= "where domain_uuid = '".$greeting_domain_uuid."' ";
- $sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
- $db->exec(check_sql($sql));
- unset($sql);
+ //build update array
+ $array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $array['voicemail_greetings'][$x]['greeting_base64'] = base64_encode(file_get_contents($greeting_directory.'/'.$greeting_filename));
//remove local greeting file
@unlink($greeting_directory.'/'.$greeting_filename);
}
}
+ if (is_array($array) && @sizeof($array) != 0) {
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('voicemail_greeting_edit', 'temp');
+ //execute update
+ $database = new database;
+ $database->app_name = 'voicemail_greetings';
+ $database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
+ $database->save($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('voicemail_greeting_edit', 'temp');
+ }
}
- unset($sql, $prep_statement, $result, $row);
+ unset($sql, $result, $row);
}
+
//if not base64, decode to local files, remove base64 data from db
else if ($_SESSION['voicemail']['storage_type']['text'] != 'base64') {
//get greetings with base64 in db
$sql = "select voicemail_greeting_uuid, domain_uuid, voicemail_id, greeting_filename, greeting_base64 ";
- $sql .= "from v_voicemail_greetings where greeting_base64 is not null ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- if (count($result) > 0) {
- foreach ($result as &$row) {
+ $sql .= "from v_voicemail_greetings ";
+ $sql .= "where greeting_base64 is not null ";
+ $database = new database;
+ $result = $database->select($sql, null, 'all');
+ if (is_array($result) && @sizeof($result) != 0) {
+ foreach ($result as $x => &$row) {
$voicemail_greeting_uuid = $row['voicemail_greeting_uuid'];
$greeting_domain_uuid = $row['domain_uuid'];
$voicemail_id = $row['voicemail_id'];
@@ -102,21 +126,28 @@ if ($domains_processed == 1) {
//set greeting directory
$greeting_directory = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$greeting_domain_uuid]['domain_name'].'/'.$voicemail_id;
//remove local file, if any
- if (file_exists($greeting_directory.'/'.$greeting_filename)) {
- @unlink($greeting_directory.'/'.$greeting_filename);
- }
+ @unlink($greeting_directory.'/'.$greeting_filename);
+ //build update array
+ $array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $array['voicemail_greetings'][$x]['greeting_base64'] = null;
//decode base64, save to local file
- $greeting_decoded = base64_decode($greeting_base64);
- file_put_contents($greeting_directory.'/'.$greeting_filename, $greeting_decoded);
- $sql = "update v_voicemail_greetings ";
- $sql .= "set greeting_base64 = null ";
- $sql .= "where domain_uuid = '".$greeting_domain_uuid."' ";
- $sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
- $db->exec(check_sql($sql));
- unset($sql);
+ file_put_contents($greeting_directory.'/'.$greeting_filename, base64_decode($greeting_base64));
+ }
+ if (is_array($array) && @sizeof($array) != 0) {
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('voicemail_greeting_edit', 'temp');
+ //execute update
+ $database = new database;
+ $database->app_name = 'voicemail_greetings';
+ $database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
+ $database->save($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('voicemail_greeting_edit', 'temp');
}
}
- unset($sql, $prep_statement, $result, $row);
+ unset($sql, $result, $row);
}
}
diff --git a/app/voicemail_greetings/voicemail_greeting_delete.php b/app/voicemail_greetings/voicemail_greeting_delete.php
index ea78e2f2da..46d3d2f86a 100644
--- a/app/voicemail_greetings/voicemail_greeting_delete.php
+++ b/app/voicemail_greetings/voicemail_greeting_delete.php
@@ -38,46 +38,48 @@ else {
$language = new text;
$text = $language->get();
-if (count($_GET) > 0) {
- $voicemail_greeting_uuid = check_str($_GET["id"]);
- $voicemail_id = check_str($_GET["voicemail_id"]);
-}
+//get ids
+ $voicemail_greeting_uuid = $_GET["id"];
+ $voicemail_id = $_GET["voicemail_id"];
-if (strlen($voicemail_greeting_uuid) > 0) {
+if (is_uuid($voicemail_greeting_uuid) && $voicemail_id != '') {
//get the greeting filename
- $sql = "select greeting_filename from v_voicemail_greetings ";
- $sql .= "where voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
- $sql .= "and domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_id = '".$voicemail_id."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- foreach ($result as &$row) {
- $greeting_filename = $row["greeting_filename"];
- break; //limit to 1 row
- }
- unset ($prep_statement);
+ $sql = "select greeting_filename ";
+ $sql .= "from v_voicemail_greetings ";
+ $sql .= "where voicemail_greeting_uuid = :voicemail_greeting_uuid ";
+ $sql .= "and domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_id = :voicemail_id ";
+ $parameters['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_id'] = $voicemail_id;
+ $database = new database;
+ $greeting_filename = $database->select($sql, $parameters, 'column');
+ unset($prep_statement);
- //delete recording from the database
- $sql = "delete from v_voicemail_greetings ";
- $sql .= "where voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
- $sql .= "and domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_id = '".$voicemail_id."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- unset($sql);
+ //build delete array
+ $array['voicemail_greetings'][0]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $array['voicemail_greetings'][0]['domain_uuid'] = $domain_uuid;
+ $array['voicemail_greetings'][0]['voicemail_id'] = $voicemail_id;
+
+ //execute delete
+ $database = new database;
+ $database->app_name = 'voicemail_greetings';
+ $database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
+ $database->delete($array);
+ unset($array);
//set the greeting directory
$v_greeting_dir = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$domain_uuid]['domain_name'].'/'.$voicemail_id;
//delete the recording file
- if (file_exists($v_greeting_dir."/".$greeting_filename)) {
- @unlink($v_greeting_dir."/".$greeting_filename);
- }
+ @unlink($v_greeting_dir."/".$greeting_filename);
+
+ //set message
+ message::add($text['message-delete']);
}
-//redirect the user
- message::add($text['message-delete']);
+//redirect
header("Location: voicemail_greetings.php?id=".$voicemail_id);
- return;
+ exit;
+
?>
\ No newline at end of file
diff --git a/app/voicemail_greetings/voicemail_greeting_edit.php b/app/voicemail_greetings/voicemail_greeting_edit.php
index ec193677d4..9a7b50250a 100644
--- a/app/voicemail_greetings/voicemail_greeting_edit.php
+++ b/app/voicemail_greetings/voicemail_greeting_edit.php
@@ -43,15 +43,15 @@
$text = $language->get();
//get greeting id
- if (isset($_REQUEST["id"])) {
- $voicemail_greeting_uuid = check_str($_REQUEST["id"]);
+ if (is_uuid($_REQUEST["id"])) {
+ $voicemail_greeting_uuid = $_REQUEST["id"];
}
//get the form value and set to php variables
- $voicemail_id = check_str($_REQUEST["voicemail_id"]);
+ $voicemail_id = $_REQUEST["voicemail_id"];
if (count($_POST) > 0) {
- $greeting_name = check_str($_POST["greeting_name"]);
- $greeting_description = check_str($_POST["greeting_description"]);
+ $greeting_name = $_POST["greeting_name"];
+ $greeting_description = $_POST["greeting_description"];
//clean the name
$greeting_name = str_replace("'", "", $greeting_name);
@@ -59,7 +59,7 @@
if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//get greeting uuid to edit
- $voicemail_greeting_uuid = check_str($_POST["voicemail_greeting_uuid"]);
+ $voicemail_greeting_uuid = $_POST["voicemail_greeting_uuid"];
//check for all required data
$msg = '';
@@ -78,40 +78,40 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
}
//update the database
- if ($_POST["persistformvar"] != "true") {
- if (permission_exists('voicemail_greeting_edit')) {
- //update the database with the new data
- $sql = "update v_voicemail_greetings set ";
- $sql .= "greeting_name = '".$greeting_name."', ";
- $sql .= "greeting_description = '".$greeting_description."' ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
- $db->exec(check_sql($sql));
- unset($sql);
-
- //redirect the user
- message::add($text['message-update']);
- header("Location: voicemail_greetings.php?id=".$voicemail_id);
- return;
- } //if (permission_exists('voicemail_greeting_edit')) {
- } //if ($_POST["persistformvar"] != "true")
-} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
+ if ($_POST["persistformvar"] != "true" && permission_exists('voicemail_greeting_edit')) {
+ //build update array
+ $array['voicemail_greetings'][0]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $array['voicemail_greetings'][0]['greeting_name'] = $greeting_name;
+ $array['voicemail_greetings'][0]['greeting_description'] = $greeting_description;
+ //execute update
+ $database = new database;
+ $database->app_name = 'voicemail_greetings';
+ $database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
+ $database->save($array);
+ unset($array);
+ //set message
+ message::add($text['message-update']);
+ //redirect
+ header("Location: voicemail_greetings.php?id=".$voicemail_id);
+ exit;
+ }
+}
//pre-populate the form
if (count($_GET) > 0 && $_POST["persistformvar"] != "true") {
- $voicemail_greeting_uuid = check_str($_GET["id"]);
+ $voicemail_greeting_uuid = $_GET["id"];
$sql = "select * from v_voicemail_greetings ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- foreach ($result as &$row) {
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_greeting_uuid = :voicemail_greeting_uuid ";
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $database = new database;
+ $row = $database->select($sql, $parameters, 'row');
+ if (is_array($row) && @sizeof($row) != 0) {
$greeting_name = $row["greeting_name"];
$greeting_description = $row["greeting_description"];
- break; //limit to 1 row
}
- unset ($prep_statement);
+ unset($sql, $parameters, $row);
}
//show the header
@@ -171,4 +171,4 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//include the footer
require_once "resources/footer.php";
-?>
+?>
\ No newline at end of file
diff --git a/app/voicemail_greetings/voicemail_greetings.php b/app/voicemail_greetings/voicemail_greetings.php
index b4cb20c213..b6d649ebc2 100644
--- a/app/voicemail_greetings/voicemail_greetings.php
+++ b/app/voicemail_greetings/voicemail_greetings.php
@@ -45,9 +45,9 @@
ini_set(max_execution_time,7200);
//get the http get values and set them as php variables
- $voicemail_id = check_str($_REQUEST["id"]);
- $order_by = check_str($_GET["order_by"]);
- $order = check_str($_GET["order"]);
+ $voicemail_id = $_REQUEST["id"];
+ $order_by = $_GET["order_by"];
+ $order = $_GET["order"];
//set the back button url
$_SESSION['back'][$_SERVER['PHP_SELF']] = ($_GET['back'] != '') ? urldecode($_GET['back']) : $_SESSION['back'][$_SERVER['PHP_SELF']];
@@ -71,15 +71,13 @@
//get currently selected greeting
$sql = "select greeting_id from v_voicemails ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_id = '".$voicemail_id."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- if ($prep_statement) {
- $prep_statement->execute();
- $row = $prep_statement->fetch(PDO::FETCH_ASSOC);
- $selected_greeting_id = $row['greeting_id'];
- }
- unset($prep_statement, $row);
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_id = :voicemail_id ";
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_id'] = $voicemail_id;
+ $database = new database;
+ $selected_greeting_id = $database->select($sql, $parameters, 'column');
+ unset($sql, $parameters);
//define greeting directory
$v_greeting_dir = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$domain_uuid]['domain_name'].'/'.$voicemail_id;
@@ -87,28 +85,26 @@
//download the greeting
if ($_GET['a'] == "download" && (permission_exists('voicemail_greeting_play') || permission_exists('voicemail_greeting_download'))) {
session_cache_limiter('public');
- if ($_GET['type'] = "rec") {
- $voicemail_greeting_uuid = check_str($_GET['uuid']);
+ if ($_GET['type'] == "rec") {
+ $voicemail_greeting_uuid = $_GET['uuid'];
//get voicemail greeting details from db
- $sql = "select greeting_filename, greeting_base64, greeting_id from v_voicemail_greetings ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
- if (count($result) > 0) {
- foreach($result as &$row) {
- $greeting_filename = $row['greeting_filename'];
- $greeting_id = $row['greeting_id'];
- if ($_SESSION['voicemail']['storage_type']['text'] == 'base64' && $row['greeting_base64'] != '') {
- $greeting_decoded = base64_decode($row['greeting_base64']);
- file_put_contents($v_greeting_dir.'/'.$greeting_filename, $greeting_decoded);
- }
- break;
+ $sql = "select greeting_filename, greeting_base64, greeting_id ";
+ $sql .= "from v_voicemail_greetings ";
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_greeting_uuid = :voicemail_greeting_uuid ";
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $database = new database;
+ $row = $database->select($sql, $parameters, 'row');
+ if (is_array($row) && @sizeof($row) != 0) {
+ $greeting_filename = $row['greeting_filename'];
+ $greeting_id = $row['greeting_id'];
+ if ($_SESSION['voicemail']['storage_type']['text'] == 'base64' && $row['greeting_base64'] != '') {
+ $greeting_decoded = base64_decode($row['greeting_base64']);
+ file_put_contents($v_greeting_dir.'/'.$greeting_filename, $greeting_decoded);
}
}
- unset ($sql, $prep_statement, $result, $greeting_decoded);
-
+ unset($sql, $row, $greeting_decoded);
if (file_exists($v_greeting_dir.'/'.$greeting_filename)) {
$fd = fopen($v_greeting_dir.'/'.$greeting_filename, "rb");
if ($_GET['t'] == "bin") {
@@ -129,7 +125,7 @@
header('Content-Disposition: attachment; filename="'.$greeting_filename.'"');
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
- header("Content-Length: " . filesize($v_greeting_dir.'/'.$greeting_filename));
+ header("Content-Length: ".filesize($v_greeting_dir.'/'.$greeting_filename));
ob_clean();
fpassthru($fd);
}
@@ -151,50 +147,58 @@
//get the file extension
$file_ext = substr($_FILES['file']['name'], -4);
- //find the next available
- for ($i = 1; $i < 10; $i++) {
-
- //exit the loop if the file extension is invalid
- if ($file_ext != '.wav' && $file_ext != '.mp3') {
- break;
- }
+ //check file extension
+ if ($file_ext == '.wav' || $file_ext != '.mp3') {
- //set the file name
- $file_name = 'greeting_'.$i.$file_ext;
+ //find the next available
+ for ($i = 1; $i < 10; $i++) {
- //check the database
- if (is_uuid($domain_uuid) && is_numeric($voicemail_id) ) {
- $sql = "select voicemail_greeting_uuid from v_voicemail_greetings ";
- $sql .= "where domain_uuid = '".check_str($domain_uuid)."' ";
- $sql .= "and voicemail_id = '".($voicemail_id)."' ";
- $sql .= "and greeting_filename = '".check_str($file_name)."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- if (count($result) == 0 && !file_exists($v_greeting_dir.'/'.$file_name)) {
- //move the uploaded greeting
- event_socket_mkdir($v_greeting_dir);
- if ($file_ext == '.wav' || $file_ext == '.mp3') {
- move_uploaded_file($_FILES['file']['tmp_name'], $v_greeting_dir.'/'.$file_name);
- }
- //set newly uploaded greeting as active greeting for voicemail box
- $sql = "update v_voicemails ";
- $sql .= "set greeting_id = '".$i."' ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_id = '".$voicemail_id."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- unset($prep_statement);
+ //set the file name
+ $file_name = 'greeting_'.$i.$file_ext;
- message::add($text['message-uploaded'].": ".$_FILES['file']['name']);
- break;
+ //check the database
+ if (is_uuid($domain_uuid) && is_numeric($voicemail_id) ) {
+ $sql = "select count(*) from v_voicemail_greetings ";
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_id = :voicemail_id ";
+ $sql .= "and greeting_filename = :greeting_filename ";
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_id'] = $voicemail_id;
+ $parameters['greeting_filename'] = $file_name;
+ $database = new database;
+ $num_rows = $database->select($sql, $parameters, 'column');
+ unset($sql, $parameters);
+
+ if ($num_rows == 0 && !file_exists($v_greeting_dir.'/'.$file_name)) {
+ //move the uploaded greeting
+ event_socket_mkdir($v_greeting_dir);
+ if ($file_ext == '.wav' || $file_ext == '.mp3') {
+ move_uploaded_file($_FILES['file']['tmp_name'], $v_greeting_dir.'/'.$file_name);
+ }
+ //set newly uploaded greeting as active greeting for voicemail box
+ $sql = "update v_voicemails ";
+ $sql .= "set greeting_id = :greeting_id ";
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_id = :voicemail_id ";
+ $parameters['greeting_id'] = $i;
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_id'] = $voicemail_id;
+ $database = new database;
+ $database->execute($sql, $parameters);
+ unset($sql, $parameters);
+ //set message
+ message::add($text['message-uploaded'].": ".$_FILES['file']['name']);
+ //found available id, exit;
+ break;
+ }
+ else {
+ continue;
+ }
+ unset($num_rows);
}
- else {
- continue;
- }
- unset ($prep_statement);
+
}
- }
+ }
//set the file name to be inserted as the greeting description
$greeting_description = base64_encode($_FILES['file']['name']);
@@ -215,103 +219,111 @@
//set the greeting
if ($_REQUEST['action'] == "set") {
//save the greeting_id to a variable
- $greeting_id = check_str($_REQUEST['greeting_id']);
+ $greeting_id = $_REQUEST['greeting_id'];
//set the greeting_id
$sql = "update v_voicemails ";
- $sql .= "set greeting_id = '".$greeting_id."' ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_id = '".$voicemail_id."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- unset($prep_statement);
-
- message::add($text['message-greeting_selected']);
- header("Location: voicemail_greetings.php?id=".$voicemail_id."&order_by=".$order_by."&order=".$order);
- exit;
+ $sql .= "set greeting_id = :greeting_id ";
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_id = :voicemail_id ";
+ $parameters['greeting_id'] = $greeting_id;
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_id'] = $voicemail_id;
+ $database = new database;
+ $database->execute($sql, $parameters);
+ unset($sql, $parameters);
+ //set message
+ message::add($text['message-greeting_selected']);
+ //redirect
+ header("Location: voicemail_greetings.php?id=".$voicemail_id."&order_by=".$order_by."&order=".$order);
+ exit;
}
//get existing greetings
- $sql = "select voicemail_greeting_uuid, greeting_filename, greeting_base64 from v_voicemail_greetings ";
- $sql .= "where domain_uuid = '".$domain_uuid."' and voicemail_id = '".$voicemail_id."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- foreach ($result as &$row) {
- $array_greetings[$row['voicemail_greeting_uuid']] = $row['greeting_filename'];
- $array_base64_exists[$row['voicemail_greeting_uuid']] = ($row['greeting_base64'] != '') ? true : false;
- //if not base64, convert back to local files and remove base64 from db
- if ($_SESSION['voicemail']['storage_type']['text'] != 'base64' && $row['greeting_base64'] != '') {
- if (file_exists($v_greeting_dir.'/'.$row['greeting_filename'])) {
- @unlink($v_greeting_dir.'/'.$row['greeting_filename']);
+ $sql = "select voicemail_greeting_uuid, greeting_filename, greeting_base64 ";
+ $sql .= "from v_voicemail_greetings ";
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_id = :voicemail_id ";
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_id'] = $voicemail_id;
+ $database = new database;
+ $result = $database->select($sql, $parameters, 'all');
+ unset($sql, $parameters);
+
+ if (is_array($result) && @sizeof($result) != 0) {
+ foreach ($result as $x => &$row) {
+ $array_greetings[$row['voicemail_greeting_uuid']] = $row['greeting_filename'];
+ $array_base64_exists[$row['voicemail_greeting_uuid']] = ($row['greeting_base64'] != '') ? true : false;
+ //if not base64, convert back to local files and remove base64 from db
+ if ($_SESSION['voicemail']['storage_type']['text'] != 'base64' && $row['greeting_base64'] != '') {
+ if (file_exists($v_greeting_dir.'/'.$row['greeting_filename'])) {
+ @unlink($v_greeting_dir.'/'.$row['greeting_filename']);
+ }
+ $greeting_decoded = base64_decode($row['greeting_base64']);
+ file_put_contents($v_greeting_dir.'/'.$row['greeting_filename'], $greeting_decoded);
+ //build array
+ $array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $row['voicemail_greeting_uuid'];
+ $array['voicemail_greetings'][$x]['greeting_base64'] = null;
}
- $greeting_decoded = base64_decode($row['greeting_base64']);
- file_put_contents($v_greeting_dir.'/'.$row['greeting_filename'], $greeting_decoded);
- $sql = "update v_voicemail_greetings ";
- $sql .= "set greeting_base64 = null ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_greeting_uuid = '".$row['voicemail_greeting_uuid']."' ";
- $db->exec(check_sql($sql));
- unset($sql);
+ }
+ if (is_array($array) && @sizeof($array) != 0) {
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('voicemail_greeting_edit', 'temp');
+ //execute update
+ $database = new database;
+ $database->app_name = 'voicemail_greetings';
+ $database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
+ $database->save($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('voicemail_greeting_edit', 'temp');
}
}
- unset ($prep_statement);
+ unset($result, $row);
//add greetings to the database
if (is_dir($v_greeting_dir.'/')) {
if ($dh = opendir($v_greeting_dir.'/')) {
+ $x = 0;
+ //prepare for temporary permissions
+ $p = new permissions;
while (($file = readdir($dh)) !== false) {
if (filetype($v_greeting_dir."/".$file) == "file" && substr($file, 0, 8) == "greeting" && substr($file, 10, 4) != ".tmp") {
$greeting_number = preg_replace('{\D}', '', $file);
if (!in_array($file, $array_greetings)) {
//file not found, add to database
- $greeting_name = $text['label-greeting'].' '.$greeting_number;
- $greeting_description = base64_decode($_GET['gd']);
- $voicemail_greeting_uuid = uuid();
- $sql = "insert into v_voicemail_greetings ";
- $sql .= "( ";
- $sql .= "voicemail_greeting_uuid, ";
- $sql .= "domain_uuid, ";
- $sql .= "voicemail_id, ";
- $sql .= "greeting_name, ";
- $sql .= "greeting_filename, ";
- $sql .= "greeting_description, ";
- if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
- $sql .= "greeting_base64, ";
- }
- $sql .= "greeting_id ";
- $sql .= ") ";
- $sql .= "values ";
- $sql .= "(";
- $sql .= "'".$voicemail_greeting_uuid."', ";
- $sql .= "'".$domain_uuid."', ";
- $sql .= "'".$voicemail_id."', ";
- $sql .= "'".$greeting_name."', ";
- $sql .= "'".$file."', ";
- $sql .= "'".$greeting_description."', ";
- if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
- $greeting_base64 = base64_encode(file_get_contents($v_greeting_dir.'/'.$file));
- $sql .= "'".$greeting_base64."', ";
- }
- $sql .= $greeting_number." ";
- $sql .= ")";
- $db->exec(check_sql($sql));
- unset($sql);
+ $greeting_name = $text['label-greeting'].' '.$greeting_number;
+ $greeting_description = base64_decode($_GET['gd']);
+ $voicemail_greeting_uuid = uuid();
+ //build insert array
+ $array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
+ $array['voicemail_greetings'][$x]['domain_uuid'] = $domain_uuid;
+ $array['voicemail_greetings'][$x]['voicemail_id'] = $voicemail_id;
+ $array['voicemail_greetings'][$x]['greeting_name'] = $greeting_name;
+ $array['voicemail_greetings'][$x]['greeting_filename'] = $file;
+ $array['voicemail_greetings'][$x]['greeting_description'] = $greeting_description;
+ if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
+ $array['voicemail_greetings'][$x]['greeting_base64'] = base64_encode(file_get_contents($v_greeting_dir.'/'.$file));
+ }
+ $array['voicemail_greetings'][$x]['greeting_id'] = $greeting_number;
+ $x++;
+ //grant temporary permissions
+ $p->add('voicemail_greeting_add', 'temp');
}
else {
//file found, check if base64 present
- if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
- $found_greeting_uuid = array_search($file, $array_greetings);
- if (!$array_base64_exists[$found_greeting_uuid]) {
- $greeting_base64 = base64_encode(file_get_contents($v_greeting_dir.'/'.$file));
- $sql = "update v_voicemail_greetings set ";
- $sql .= "greeting_base64 = '".$greeting_base64."' ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_greeting_uuid = '".$found_greeting_uuid."' ";
- $db->exec(check_sql($sql));
- unset($sql);
+ if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
+ $found_greeting_uuid = array_search($file, $array_greetings);
+ if (!$array_base64_exists[$found_greeting_uuid]) {
+ //build update array
+ $array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $found_greeting_uuid;
+ $array['voicemail_greetings'][$x]['greeting_base64'] = base64_encode(file_get_contents($v_greeting_dir.'/'.$file));
+ $x++;
+ //grant temporary permissions
+ $p->add('voicemail_greeting_edit', 'temp');
+ }
}
- }
}
//if base64, remove local file (unless currently selected greeting)
@@ -321,21 +333,33 @@
}
}
}
- } //while
+ }
+ if (is_array($array) && @sizeof($array) != 0) {
+ //execute inserts/updates
+ $database = new database;
+ $database->app_name = 'voicemail_greetings';
+ $database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
+ $database->save($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('voicemail_greeting_add', 'temp');
+ $p->delete('voicemail_greeting_edit', 'temp');
+ }
+
closedir($dh);
- } //if
- } //if
+ }
+ }
//get the greetings list
$sql = "select * from v_voicemail_greetings ";
- $sql .= "where domain_uuid = '".$domain_uuid."' ";
- $sql .= "and voicemail_id = '".$voicemail_id."' ";
- $sql .= "order by ".$order_by." ".$order." ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $greetings = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- $greeting_count = count($result);
- unset ($prep_statement, $sql);
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and voicemail_id = :voicemail_id ";
+ $sql .= order_by($order_by, $order);
+ $parameters['domain_uuid'] = $domain_uuid;
+ $parameters['voicemail_id'] = $voicemail_id;
+ $database = new database;
+ $greetings = $database->select($sql, $parameters, 'all');
+ unset($sql, $parameters);
//set the row styles
$c = 0;
@@ -405,7 +429,7 @@
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') { $colspan = $colspan - 2; }
if (!(permission_exists('voicemail_greeting_edit') || permission_exists('voicemail_greeting_delete'))) { $colspan = $colspan - 1; }
- if (is_array($greetings)) {
+ if (is_array($greetings) && @sizeof($greetings) != 0) {
foreach($greetings as $row) {
//playback progress bar
if (permission_exists('voicemail_greeting_play')) {
@@ -456,13 +480,13 @@
echo "\n";
$c = ($c) ? 0 : 1;
- } //end foreach
- unset($sql, $result, $row_count);
- } //end if results
+ }
+ }
+ unset($result, $row);
echo "\n";
echo "
\n";
//include the footer
require_once "resources/footer.php";
-?>
+?>
\ No newline at end of file