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