diff --git a/app/music_on_hold/music_on_hold_edit.php b/app/music_on_hold/music_on_hold_edit.php index 0648498948..c7cfe6df93 100644 --- a/app/music_on_hold/music_on_hold_edit.php +++ b/app/music_on_hold/music_on_hold_edit.php @@ -17,186 +17,316 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2016 + Portions created by the Initial Developer are Copyright (C) 2016 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ -require_once "root.php"; -require_once "resources/require.php"; -require_once "resources/check_auth.php"; -if (permission_exists('music_on_hold_edit')) { - //access granted -} -else { - echo "access denied"; - exit; -} + +//includes + require_once "root.php"; + require_once "resources/require.php"; + +//check permissions + require_once "resources/check_auth.php"; + if (permission_exists('music_on_hold_add') || permission_exists('music_on_hold_edit')) { + //access granted + } + else { + echo "access denied"; + exit; + } //add multi-lingual support $language = new text; $text = $language->get(); -//get current music on hold record, build array - $sql = "select * from v_music_on_hold "; - $sql .= "where music_on_hold_uuid = '".$_GET['id']."' "; - if (!permission_exists('music_on_hold_global_edit')) { - $sql .= "and domain_uuid = '".$domain_uuid."' "; +//action add or update + if (isset($_REQUEST["id"])) { + $action = "update"; + $music_on_hold_uuid = check_str($_REQUEST["id"]); } - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_NAMED); - foreach ($row as $index => $value) { - $moh[str_replace('music_on_hold_','',$index)] = $value; - $moh['name_only'] = (substr_count($moh['name'], '/') > 0) ? substr($moh['name'], 0, strpos($moh['name'],'/')) : $moh['name']; + else { + $action = "add"; } - unset($sql, $prep_statement, $row); - //echo "
".print_r($moh, true)."
"; exit; -if (is_array($_POST) && sizeof($_POST) > 0) { - //retrieve posted values - $moh = $_POST; - - //check required fields - if (permission_exists('music_on_hold_name') && $moh['name'] == '') { $missing_fields[] = $text['label-name']; } - if (permission_exists('music_on_hold_path') && $moh['path'] == '') { $missing_fields[] = $text['label-path']; } - if (is_array($missing_fields) && sizeof($missing_fields > 0)) { - //set message - $_SESSION["message_mood"] = 'negative'; - $_SESSION["message"] = $text['message-missing_required_fields'].': '.implode(', ', $missing_fields); +//get http post variables and set them to php variables + if (count($_POST) > 0) { + if (permission_exists('music_on_hold_domain')) { + $domain_uuid = check_str($_POST["domain_uuid"]); } - else { - //check strings - foreach ($_POST as $field => $value) { - $moh[$field] = check_str($value); - } + $music_on_hold_name = check_str($_POST["music_on_hold_name"]); + $music_on_hold_path = check_str($_POST["music_on_hold_path"]); + $music_on_hold_rate = check_str($_POST["music_on_hold_rate"]); + $music_on_hold_shuffle = check_str($_POST["music_on_hold_shuffle"]); + $music_on_hold_channels = check_str($_POST["music_on_hold_channels"]); + $music_on_hold_interval = check_str($_POST["music_on_hold_interval"]); + $music_on_hold_timer_name = check_str($_POST["music_on_hold_timer_name"]); + $music_on_hold_chime_list = check_str($_POST["music_on_hold_chime_list"]); + $music_on_hold_chime_freq = check_str($_POST["music_on_hold_chime_freq"]); + $music_on_hold_chime_max = check_str($_POST["music_on_hold_chime_max"]); + } - //update the moh record - $sql = "update v_music_on_hold set "; - if (permission_exists('music_on_hold_domain')) { - $sql .= "domain_uuid = ".(($moh['domain_uuid'] != '') ? "'".$moh['domain_uuid']."'" : 'null').", "; - } - if (permission_exists('music_on_hold_name')) { - $sql .= "music_on_hold_name = '".$moh['name']."', "; - } - if (permission_exists('music_on_hold_path')) { - $sql .= "music_on_hold_path = ".(($moh['path'] != '') ? "'".$moh['path']."'" : '$${sounds_dir}/music').", "; - } - $sql .= "music_on_hold_shuffle = '".$moh['shuffle']."', "; - $sql .= "music_on_hold_channels = ".$moh['channels'].", "; - $sql .= "music_on_hold_interval = ".(($moh['interval'] != '') ? $moh['interval'] : '20').", "; - $sql .= "music_on_hold_timer_name = 'soft', "; - $sql .= "music_on_hold_chime_list = '".$moh['chime_list']."', "; - $sql .= "music_on_hold_chime_freq = ".(($moh['chime_freq'] != '') ? $moh['chime_freq'] : 'null').", "; - $sql .= "music_on_hold_chime_max = ".(($moh['chime_max'] != '') ? $moh['chime_max'] : 'null')." "; - $sql .= "where music_on_hold_uuid = '".$moh['uuid']."' "; - if (!permission_exists('music_on_hold_domain')) { - $sql .= "and domain_uuid = '".$domain_uuid."' "; - } - //echo $sql."
"; exit; - $db->exec(check_sql($sql)); - unset($sql); +//add or update the data + if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { - //set message - $_SESSION["message"] = $text['message-update']; + //get the uuid + if ($action == "update") { + $music_on_hold_uuid = check_str($_POST["music_on_hold_uuid"]); + } - //redirect - header("Location: music_on_hold.php"); - exit; + //check for all required data + $msg = ''; + if (strlen($music_on_hold_name) == 0) { $msg .= $text['message-required']." ".$text['label-name']."
\n"; } + if (strlen($music_on_hold_path) == 0) { $msg .= $text['message-required']." ".$text['label-path']."
\n"; } + //if (strlen($music_on_hold_rate) == 0) { $msg .= $text['message-required']." ".$text['label-rate']."
\n"; } + if (strlen($music_on_hold_shuffle) == 0) { $msg .= $text['message-required']." ".$text['label-shuffle']."
\n"; } + if (strlen($music_on_hold_channels) == 0) { $msg .= $text['message-required']." ".$text['label-channels']."
\n"; } + //if (strlen($music_on_hold_interval) == 0) { $msg .= $text['message-required']." ".$text['label-interval']."
\n"; } + //if (strlen($music_on_hold_timer_name) == 0) { $msg .= $text['message-required']." ".$text['label-timer_name']."
\n"; } + //if (strlen($music_on_hold_chime_list) == 0) { $msg .= $text['message-required']." ".$text['label-chime_list']."
\n"; } + //if (strlen($music_on_hold_chime_freq) == 0) { $msg .= $text['message-required']." ".$text['label-chime_freq']."
\n"; } + //if (strlen($music_on_hold_chime_max) == 0) { $msg .= $text['message-required']." ".$text['label-chime_max']."
\n"; } + if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { + require_once "resources/header.php"; + require_once "resources/persist_form_var.php"; + echo "
\n"; + echo "
\n"; + echo $msg."
"; + echo "
\n"; + persistformvar($_POST); + echo "
\n"; + require_once "resources/footer.php"; + return; + } + + //add or update the database + if ($_POST["persistformvar"] != "true") { + if ($action == "add" && permission_exists('music_on_hold_add')) { + $sql = "insert into v_music_on_hold "; + $sql .= "("; + $sql .= "domain_uuid, "; + $sql .= "music_on_hold_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 .= "("; + $sql .= "'".$_SESSION['domain_uuid']."', "; + $sql .= "'".uuid()."', "; + $sql .= "'$music_on_hold_name', "; + $sql .= "'$music_on_hold_path', "; + if (strlen($music_on_hold_rate) == 0) { $sql .= "null, "; } else { $sql .= "'$music_on_hold_rate', "; } + $sql .= "'$music_on_hold_shuffle', "; + if (strlen($music_on_hold_channels) == 0) { $sql .= "null, "; } else { $sql .= "'$music_on_hold_channels', "; } + if (strlen($music_on_hold_interval) == 0) { $sql .= "null, "; } else { $sql .= "'$music_on_hold_interval', "; } + $sql .= "'$music_on_hold_timer_name', "; + $sql .= "'$music_on_hold_chime_list', "; + if (strlen($music_on_hold_chime_freq) == 0) { $sql .= "null, "; } else { $sql .= "'$music_on_hold_chime_freq', "; } + if (strlen($music_on_hold_chime_max) == 0) { $sql .= "null "; } else { $sql .= "'$music_on_hold_chime_max' "; } + $sql .= ")"; + $db->exec(check_sql($sql)); + unset($sql); + + $_SESSION["message"] = $text['message-add']; + header("Location: music_on_holds.php"); + return; + } //if ($action == "add") + + if ($action == "update" && permission_exists('music_on_hold_edit')) { + $sql = "update v_music_on_hold set "; + if (permission_exists('music_on_hold_domain')) { + if (strlen($domain_uuid) == 0) { $sql .= "domain_uuid = null, "; } else { $sql .= "domain_uuid = '$domain_uuid', "; } + } + $sql .= "music_on_hold_name = '$music_on_hold_name', "; + $sql .= "music_on_hold_path = '$music_on_hold_path', "; + if (strlen($music_on_hold_rate) == 0) { $sql .= "music_on_hold_rate = null, "; } else { $sql .= "music_on_hold_rate = '$music_on_hold_rate', "; } + $sql .= "music_on_hold_shuffle = '$music_on_hold_shuffle', "; + if (strlen($music_on_hold_channels) == 0) { $sql .= "music_on_hold_channels = null, "; } else { $sql .= "music_on_hold_channels = '$music_on_hold_channels', "; } + if (strlen($music_on_hold_interval) == 0) { $sql .= "music_on_hold_interval = null, "; } else { $sql .= "music_on_hold_interval = '$music_on_hold_interval', "; } + $sql .= "music_on_hold_timer_name = '$music_on_hold_timer_name', "; + $sql .= "music_on_hold_chime_list = '$music_on_hold_chime_list', "; + if (strlen($music_on_hold_chime_freq) == 0) { $sql .= "music_on_hold_chime_freq = null, "; } else { $sql .= "music_on_hold_chime_freq = '$music_on_hold_chime_freq', "; } + if (strlen($music_on_hold_chime_max) == 0) { $sql .= "music_on_hold_chime_max = null "; } else { $sql .= "music_on_hold_chime_max = '$music_on_hold_chime_max' "; } + $sql .= "where music_on_hold_uuid = '$music_on_hold_uuid' "; + $db->exec(check_sql($sql)); + unset($sql); + + $_SESSION["message"] = $text['message-update']; + header("Location: music_on_hold.php"); + return; + } //if ($action == "update") + } //if ($_POST["persistformvar"] != "true") + } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) + +//pre-populate the form + if (count($_GET) > 0 && $_POST["persistformvar"] != "true") { + $music_on_hold_uuid = check_str($_GET["id"]); + $sql = "select * from v_music_on_hold "; + $sql .= "where ( "; + $sql .= " domain_uuid = '$domain_uuid' "; + $sql .= " or domain_uuid is null "; + $sql .= ") "; + $sql .= "and music_on_hold_uuid = '$music_on_hold_uuid' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($result as &$row) { + $domain_uuid = $row["domain_uuid"]; + $music_on_hold_name = $row["music_on_hold_name"]; + $music_on_hold_path = $row["music_on_hold_path"]; + $music_on_hold_rate = $row["music_on_hold_rate"]; + $music_on_hold_shuffle = $row["music_on_hold_shuffle"]; + $music_on_hold_channels = $row["music_on_hold_channels"]; + $music_on_hold_interval = $row["music_on_hold_interval"]; + $music_on_hold_timer_name = $row["music_on_hold_timer_name"]; + $music_on_hold_chime_list = $row["music_on_hold_chime_list"]; + $music_on_hold_chime_freq = $row["music_on_hold_chime_freq"]; + $music_on_hold_chime_max = $row["music_on_hold_chime_max"]; } -} + unset ($prep_statement); + } //show the header require_once "resources/header.php"; - $document['title'] = $text['title-music_on_hold_settings']; //show the content - if (if_group("superadmin")) { - echo "\n"; - echo "\n"; - } - - echo "
\n"; - echo "\n"; - - echo "
\n"; - echo " "; - echo " \n"; - echo "
\n"; - echo "".$text['header-music_on_hold_settings'].": ".$moh['name_only']." (".($moh['rate']/1000).' kHz'.(($moh['rate'] == '48000') ? ' / '.$text['option-default'] : null).")"; - echo "

\n\n"; - - echo "\n"; - - if (permission_exists('music_on_hold_name')) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - } - + echo "\n"; + echo "
\n"; - echo " ".$text['label-name']."\n"; - echo "\n"; - echo " \n"; - echo "
\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; @@ -301,62 +431,63 @@ if (is_array($_POST) && sizeof($_POST) > 0) { echo "\n"; echo "\n"; - echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; echo "\n"; echo "\n"; if (permission_exists('music_on_hold_domain')) { - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - } - - if (permission_exists('music_on_hold_path')) { echo "\n"; - echo "\n"; - echo "\n"; echo "\n"; } + echo " \n"; + echo " \n"; + echo " "; echo "
\n"; - echo " ".$text['label-shuffle']."\n"; - echo "\n"; - echo " \n"; + echo "".$text['title-music_on_hold']."

\n"; + echo " "; + echo " "; echo "
\n"; + echo "\n"; + echo " ".$text['label-name']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_name']."\n"; + echo "
\n"; + echo " ".$text['label-path']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_path']."\n"; + echo "
\n"; + echo " ".$text['label-rate']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_rate']."\n"; + echo "
\n"; + echo " ".$text['label-shuffle']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_shuffle']."\n"; + echo "
\n"; echo " ".$text['label-channels']."\n"; echo "\n"; - echo " \n"; + echo " \n"; + echo " \n"; echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_channels']."\n"; echo "
\n"; + echo "\n"; echo " ".$text['label-interval']."\n"; echo "\n"; - echo " \n"; + echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_interval']."\n"; + echo "
\n"; + echo " ".$text['label-timer_name']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_timer_name']."\n"; echo "
\n"; + echo "\n"; echo " ".$text['label-chime_frequency']."\n"; echo "\n"; - echo " \n"; + echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_chime_freq']."\n"; echo "
\n"; + echo "\n"; echo " ".$text['label-chime_maximum']."\n"; echo "\n"; - echo " \n"; + echo " \n"; + echo "
\n"; + echo $text['description-music_on_hold_chime_max']."\n"; echo "
\n"; - echo " ".$text['label-domain']."\n"; - echo " \n"; - echo " \n"; - echo "
\n"; - echo " ".$text['label-path']."\n"; + echo "\n"; + echo " ".$text['label-domain']."\n"; echo "\n"; - echo " \n"; + echo "\n"; + echo " \n"; + + echo " \n"; echo "
\n"; + if ($action == "update") { + echo " \n"; + } + echo " \n"; + echo "
"; - echo "
"; - - echo "
\n"; - echo "\n"; - echo "
\n"; - echo "

"; - echo "
"; + echo "

"; //include the footer require_once "resources/footer.php"; + ?>