From d7efaee49f737648abca1f3aefacb30b024ff67c Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Tue, 9 Jan 2018 12:43:23 -0700 Subject: [PATCH] Update destinations.php --- resources/classes/destinations.php | 272 +++++++++++++++-------------- 1 file changed, 138 insertions(+), 134 deletions(-) diff --git a/resources/classes/destinations.php b/resources/classes/destinations.php index b53bb6c3d9..8aa5d1714d 100644 --- a/resources/classes/destinations.php +++ b/resources/classes/destinations.php @@ -46,9 +46,12 @@ class destinations { public function select($destination_type, $destination_name, $destination_value) { //set the global variables - global $db_type; + global $db_type; - //get the array from the app_config.php files + //get the destinations + if (!is_array($this->destinations)) { + + //get the array from the app_config.php files $config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php"); $x = 0; foreach ($config_list as &$config_path) { @@ -61,14 +64,14 @@ class destinations { $this->destinations[] = $row; } } - - //put the array in order + + //put the array in order foreach ($this->destinations as $row) { $option_groups[] = $row['label']; } array_multisort($option_groups, SORT_ASC, $this->destinations); - - //add the sql and data to the array + + //add the sql and data to the array $x = 0; foreach ($this->destinations as $row) { if ($row['type'] = 'sql') { @@ -134,150 +137,151 @@ class destinations { $this->destinations[$x]['result']['data'][$y]['name'] = '*732'; $this->destinations[$x]['result']['data'][$y]['destination'] = '*732 XML ${context}'; $y++; + } //remove special characters from the name - $destination_id = str_replace("]", "", $destination_name); - $destination_id = str_replace("[", "_", $destination_id); + $destination_id = str_replace("]", "", $destination_name); + $destination_id = str_replace("[", "_", $destination_id); //set the css style - $select_style = 'width: 200px;'; + $select_style = 'width: 200px;'; //add additional - if (if_group("superadmin")) { - $response = "\n"; - $response .= "\n"; + if (if_group("superadmin")) { + $response = "\n"; + $response .= "\n"; + } + + //set default to false + $select_found = false; + + $response .= " \n"; - $response .= " \n"; - foreach ($this->destinations as $row) { - - $name = $row['name']; - $label = $row['label']; - $destination = $row['field']['destination']; - - //add multi-lingual support - if (file_exists($_SERVER["PROJECT_ROOT"]."/app/".$name."/app_languages.php")) { - $language2 = new text; - $text2 = $language2->get($_SESSION['domain']['language']['code'], 'app/'.$name); - } - - if (count($row['result']['data']) > 0 and strlen($row['select_value'][$destination_type]) > 0) { - $response .= " \n"; - $label2 = $label; - foreach ($row['result']['data'] as $data) { - $select_value = $row['select_value'][$destination_type]; - $select_label = $row['select_label']; - foreach ($row['field'] as $key => $value) { - if ($key == 'destination' and is_array($value)){ - if ($value['type'] == 'csv') { - $array = explode($value['delimiter'], $data[$key]); - $select_value = str_replace("\${destination}", $array[0], $select_value); - $select_label = str_replace("\${destination}", $array[0], $select_label); - } - } - else { - if (strpos($value,',') !== false) { - $keys = explode(",", $value); - foreach ($keys as $k) { - if (strlen($data[$k]) > 0) { - $select_value = str_replace("\${".$key."}", $data[$k], $select_value); - if (strlen($data['label']) == 0) { - $select_label = str_replace("\${".$key."}", $data[$k], $select_label); - } - else { - $label = $data['label']; - $select_label = str_replace("\${".$key."}", $text2['option-'.$label], $select_label); - } - } - } - - } - else { - $select_value = str_replace("\${".$key."}", $data[$key], $select_value); - if (strlen($data['label']) == 0) { - $select_label = str_replace("\${".$key."}", $data[$key], $select_label); - } - else { - $label = $data['label']; - $select_label = str_replace("\${".$key."}", $text2['option-'.$label], $select_label); - } - } - //application: hangup - if (strlen($data['application']) > 0) { - $select_value = str_replace("transfer", $data['application'], $select_value); - } + if (count($row['result']['data']) > 0 and strlen($row['select_value'][$destination_type]) > 0) { + $response .= " \n"; + $label2 = $label; + foreach ($row['result']['data'] as $data) { + $select_value = $row['select_value'][$destination_type]; + $select_label = $row['select_label']; + foreach ($row['field'] as $key => $value) { + if ($key == 'destination' and is_array($value)){ + if ($value['type'] == 'csv') { + $array = explode($value['delimiter'], $data[$key]); + $select_value = str_replace("\${destination}", $array[0], $select_value); + $select_label = str_replace("\${destination}", $array[0], $select_label); } } + else { + if (strpos($value,',') !== false) { + $keys = explode(",", $value); + foreach ($keys as $k) { + if (strlen($data[$k]) > 0) { + $select_value = str_replace("\${".$key."}", $data[$k], $select_value); + if (strlen($data['label']) == 0) { + $select_label = str_replace("\${".$key."}", $data[$k], $select_label); + } + else { + $label = $data['label']; + $select_label = str_replace("\${".$key."}", $text2['option-'.$label], $select_label); + } + } + } - $select_value = str_replace("\${domain_name}", $_SESSION['domain_name'], $select_value); - $select_value = str_replace("\${context}", $_SESSION['domain_name'], $select_value); - $select_label = str_replace("\${domain_name}", $_SESSION['domain_name'], $select_label); - $select_label = str_replace("\${context}", $_SESSION['domain_name'], $select_label); - $select_label = trim($select_label); - if ($select_value == $destination_value) { $selected = "selected='selected' "; $select_found = true; } else { $selected = ''; } - if ($label2 == 'destinations') { $select_label = format_phone($select_label); } - $response .= " \n"; + } + else { + $select_value = str_replace("\${".$key."}", $data[$key], $select_value); + if (strlen($data['label']) == 0) { + $select_label = str_replace("\${".$key."}", $data[$key], $select_label); + } + else { + $label = $data['label']; + $select_label = str_replace("\${".$key."}", $text2['option-'.$label], $select_label); + } + } + //application: hangup + if (strlen($data['application']) > 0) { + $select_value = str_replace("transfer", $data['application'], $select_value); + } + } } - $response .= " \n"; - unset($text); + + $select_value = str_replace("\${domain_name}", $_SESSION['domain_name'], $select_value); + $select_value = str_replace("\${context}", $_SESSION['domain_name'], $select_value); + $select_label = str_replace("\${domain_name}", $_SESSION['domain_name'], $select_label); + $select_label = str_replace("\${context}", $_SESSION['domain_name'], $select_label); + $select_label = trim($select_label); + if ($select_value == $destination_value) { $selected = "selected='selected' "; $select_found = true; } else { $selected = ''; } + if ($label2 == 'destinations') { $select_label = format_phone($select_label); } + $response .= " \n"; } + $response .= " \n"; + unset($text); } - if (!$select_found) { - $destination_label = str_replace(":", " ", $destination_value); - $destination_label = str_replace("menu-exec-app", "", $destination_label); - $destination_label = str_replace("transfer", "", $destination_label); - $destination_label = str_replace("XML ".$_SESSION['domain_name'], "", $destination_label); - $response .= " \n"; - } - $response .= " \n"; - if (if_group("superadmin")) { - $response .= ""; - } + } + if (!$select_found) { + $destination_label = str_replace(":", " ", $destination_value); + $destination_label = str_replace("menu-exec-app", "", $destination_label); + $destination_label = str_replace("transfer", "", $destination_label); + $destination_label = str_replace("XML ".$_SESSION['domain_name'], "", $destination_label); + $response .= " \n"; + } + $response .= " \n"; + if (if_group("superadmin")) { + $response .= ""; + } //return the formatted destinations - return $response; + return $response; } /**