Update music_on_hold.php

Fix the upload to specific music on hold categories and fix an issue with case sensitivity that prevented ability to delete a file with upper case letters.
This commit is contained in:
FusionPBX 2016-07-15 10:44:27 -06:00 committed by GitHub
parent 6af31a91da
commit a4ad4113cd
1 changed files with 115 additions and 100 deletions

View File

@ -114,37 +114,45 @@
//determine name
if ($_POST['name_new'] != '') {
$stream_name = strtolower($_POST['name_new']);
if (is_numeric($_POST['rate'])) { $stream_rate = $_POST['rate']; } else { $stream_rate = ''; }
//set the action
$action = 'add';
//get the stream_name
$stream_name = $_POST['name_new'];
//get the rate
if (is_numeric($_POST['rate'])) { $stream_rate = $_POST['rate']; } else { $stream_rate = ''; }
}
else {
$stream_uuid = $_POST['name'];
foreach ($streams as $row) {
if ($stream_uuid == $row['music_on_hold_uuid']) {
//set the variables
$stream_domain_uuid = $row['domain_uuid'];
$stream_name = $row['music_on_hold_name'];
$stream_path = $row['music_on_hold_path'];
$stream_rate = $row['music_on_hold_rate'];
$stream_shuffle = $row['music_on_hold_shuffle'];
$stream_channels = $row['music_on_hold_channels'];
$stream_internal = $row['music_on_hold_interval'];
$stream_timer_name = $row['music_on_hold_timer_name'];
$stream_chime_list = $row['music_on_hold_chime_list'];
$stream_chime_freq = $row['music_on_hold_chime_freq'];
$stream_chime_max = $row['music_on_hold_chime_max'];
$stream_rate = $row['music_on_hold_rate'];
//end the loop
break;
//get the stream uuid
$stream_uuid = $_POST['name'];
//find the matching stream
foreach ($streams as $row) {
if ($stream_uuid == $row['music_on_hold_uuid']) {
//set the action
$action = 'update';
//set the variables
$stream_domain_uuid = $row['domain_uuid'];
$stream_name = $row['music_on_hold_name'];
$stream_path = $row['music_on_hold_path'];
$stream_rate = $row['music_on_hold_rate'];
$stream_shuffle = $row['music_on_hold_shuffle'];
$stream_channels = $row['music_on_hold_channels'];
$stream_internal = $row['music_on_hold_interval'];
$stream_timer_name = $row['music_on_hold_timer_name'];
$stream_chime_list = $row['music_on_hold_chime_list'];
$stream_chime_freq = $row['music_on_hold_chime_freq'];
$stream_chime_max = $row['music_on_hold_chime_max'];
$stream_rate = $row['music_on_hold_rate'];
//end the loop
break;
}
}
}
}
//get remaining values
$stream_file_name_temp = $_FILES['file']['tmp_name'];
$stream_file_name = $_FILES['file']['name'];
$stream_file_ext = strtolower(pathinfo($stream_file_name, PATHINFO_EXTENSION));
//check file type
$valid_file_type = ($stream_file_ext == 'wav' || $stream_file_ext == 'mp3' || $stream_file_ext == 'ogg') ? true : false;
@ -154,84 +162,90 @@
}
else {
//strip slashes, replace spaces
$slashes = array("/", "\\");
$stream_name = str_replace($slashes, '', $stream_name);
$stream_name = str_replace(' ', '_', $stream_name);
$stream_file_name = str_replace($slashes, '', $stream_file_name);
$stream_file_name = str_replace(' ', '-', $stream_file_name);
$stream_file_name = strtolower($stream_file_name);
//detect auto rate
if ($stream_rate == 'auto') {
$stream_rate = '';
$path_rate = '48000';
$stream_rate_auto = true;
}
else {
$path_rate = $stream_rate;
$stream_rate_auto = false;
}
//define default path
$stream_path = path_join($_SESSION['switch']['sounds']['dir'], 'music', $_SESSION['domain_name'],$stream_name, $path_rate);
//find whether the path already exists
$stream_new_name = true;
foreach ($streams as $row) {
$alternate_path = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $row['music_on_hold_path']);
if ($stream_path == $row['music_on_hold_path']
|| $stream_path == $alternate_path) {
$stream_new_name = false;
break;
}
//add the new stream
if ($action == "add") {
//strip slashes, replace spaces
$slashes = array("/", "\\");
$stream_name = str_replace($slashes, '', $stream_name);
$stream_name = str_replace(' ', '_', $stream_name);
$stream_file_name = str_replace($slashes, '', $stream_file_name);
$stream_file_name = str_replace(' ', '-', $stream_file_name);
//detect auto rate
if ($stream_rate == '') {
$path_rate = '48000';
$stream_rate_auto = true;
}
else {
$path_rate = $stream_rate;
$stream_rate_auto = false;
}
//define default path
$stream_path = path_join($_SESSION['switch']['sounds']['dir'], 'music', $_SESSION['domain_name'],$stream_name, $path_rate);
//find whether the path already exists
$stream_new_name = true;
foreach ($streams as $row) {
$alternate_path = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $row['music_on_hold_path']);
if ($stream_path == $row['music_on_hold_path']
|| $stream_path == $alternate_path) {
$stream_new_name = false;
break;
}
}
//set the variables
$stream_path = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $stream_path);
//begin query
if ($stream_new_name) {
$stream_uuid = uuid();
$sql = "insert into v_music_on_hold ";
$sql .= "( ";
$sql .= "music_on_hold_uuid, ";
$sql .= "domain_uuid, ";
$sql .= "music_on_hold_name, ";
$sql .= "music_on_hold_path, ";
$sql .= "music_on_hold_rate, ";
$sql .= "music_on_hold_shuffle, ";
$sql .= "music_on_hold_channels, ";
$sql .= "music_on_hold_interval, ";
$sql .= "music_on_hold_timer_name, ";
$sql .= "music_on_hold_chime_list, ";
$sql .= "music_on_hold_chime_freq, ";
$sql .= "music_on_hold_chime_max ";
$sql .= ") ";
$sql .= "values ( ";
$sql .= "'".$stream_uuid."',";
$sql .= "'".$domain_uuid."', ";
$sql .= "'".check_str($stream_name)."', ";
$sql .= "'".check_str($stream_path)."', ";
if (strlen($stream_rate) == 0) {
$sql .= "null, ";
}
else {
$sql .= "'".$stream_rate."', ";
}
$sql .= "'false', ";
$sql .= "1, ";
$sql .= "20, ";
$sql .= "'soft', ";
$sql .= "null, ";
$sql .= "null, ";
$sql .= "null ";
$sql .= ") ";
unset($music_on_hold_name, $music_on_hold_path);
}
//execute query
if (!$stream_path_found) {
$db->exec(check_sql($sql));
unset($sql);
}
}
//set the variables
$stream_path = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $stream_path);
//begin query
if ($stream_new_name) {
$stream_uuid = uuid();
$sql = "insert into v_music_on_hold ";
$sql .= "( ";
$sql .= "music_on_hold_uuid, ";
$sql .= "domain_uuid, ";
$sql .= "music_on_hold_name, ";
$sql .= "music_on_hold_path, ";
$sql .= "music_on_hold_rate, ";
$sql .= "music_on_hold_shuffle, ";
$sql .= "music_on_hold_channels, ";
$sql .= "music_on_hold_interval, ";
$sql .= "music_on_hold_timer_name, ";
$sql .= "music_on_hold_chime_list, ";
$sql .= "music_on_hold_chime_freq, ";
$sql .= "music_on_hold_chime_max ";
$sql .= ") ";
$sql .= "values ( ";
$sql .= "'".$stream_uuid."',";
$sql .= "'".$domain_uuid."', ";
$sql .= "'".check_str($stream_name)."', ";
$sql .= "'".check_str($stream_path)."', ";
if (strlen($stream_rate) == 0) {
$sql .= "null, ";
}
else {
$sql .= "'".$stream_rate."', ";
}
$sql .= "'false', ";
$sql .= "1, ";
$sql .= "20, ";
$sql .= "'soft', ";
$sql .= "null, ";
$sql .= "null, ";
$sql .= "null ";
$sql .= ") ";
unset($music_on_hold_name, $music_on_hold_path);
}
//execute query
if (!$stream_path_found) {
$db->exec(check_sql($sql));
unset($sql);
}
//check target folder, move uploaded file
if (!is_dir($stream_path)) {
event_socket_mkdir($stream_path);
@ -241,6 +255,7 @@
@unlink($stream_file_name_temp);
}
}
//set message
$_SESSION['message'] = $text['message-upload_completed'];
}
@ -429,7 +444,7 @@
echo " </td>\n";
echo " <td class='vtable' width='70%'>\n";
echo " <select id='rate' name='rate' class='formfld' style='width: auto;'>\n";
echo " <option value='auto'>".$text['option-default']."</option>\n";
echo " <option value=''>".$text['option-default']."</option>\n";
echo " <option value='8000'>8 kHz</option>\n";
echo " <option value='16000'>16 kHz</option>\n";
echo " <option value='32000'>32 kHz</option>\n";
@ -576,7 +591,7 @@
if (file_exists($stream_path)) {
$stream_files = array_merge(glob($stream_path.'/*.wav'), glob($stream_path.'/*.mp3'), glob($stream_path.'/*.ogg'));
foreach ($stream_files as $stream_file_path) {
$stream_file = strtolower(pathinfo($stream_file_path, PATHINFO_BASENAME));
$stream_file = pathinfo($stream_file_path, PATHINFO_BASENAME);
$stream_file_size = byte_convert(filesize($stream_file_path));
$stream_file_date = date("M d, Y H:i:s", filemtime($stream_file_path));
$stream_file_ext = pathinfo($stream_file, PATHINFO_EXTENSION);