Browse Source

Update destinations.php

FusionPBX 7 years ago
parent
commit
36f4710cc4
1 changed files with 128 additions and 124 deletions
  1. 128 124
      resources/classes/destinations.php

+ 128 - 124
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 = "<script>\n";
-				$response .= "var Objs;\n";
-				$response .= "\n";
-				$response .= "function changeToInput".$destination_id."(obj){\n";
-				$response .= "	tb=document.createElement('INPUT');\n";
-				$response .= "	tb.type='text';\n";
-				$response .= "	tb.name=obj.name;\n";
-				$response .= "	tb.className='formfld';\n";
-				$response .= "	tb.setAttribute('id', '".$destination_id."');\n";
-				$response .= "	tb.setAttribute('style', '".$select_style."');\n";
-				if ($onchange != '') {
-					$response .= "	tb.setAttribute('onchange', \"".$onchange."\");\n";
-					$response .= "	tb.setAttribute('onkeyup', \"".$onchange."\");\n";
-				}
-				$response .= "	tb.value=obj.options[obj.selectedIndex].value;\n";
-				$response .= "	document.getElementById('btn_select_to_input_".$destination_id."').style.visibility = 'hidden';\n";
-				$response .= "	tbb=document.createElement('INPUT');\n";
-				$response .= "	tbb.setAttribute('class', 'btn');\n";
-				$response .= "	tbb.setAttribute('style', 'margin-left: 4px;');\n";
-				$response .= "	tbb.type='button';\n";
-				$response .= "	tbb.value=$('<div />').html('&#9665;').text();\n";
-				$response .= "	tbb.objs=[obj,tb,tbb];\n";
-				$response .= "	tbb.onclick=function(){ Replace".$destination_id."(this.objs); }\n";
-				$response .= "	obj.parentNode.insertBefore(tb,obj);\n";
-				$response .= "	obj.parentNode.insertBefore(tbb,obj);\n";
-				$response .= "	obj.parentNode.removeChild(obj);\n";
-				$response .= "	Replace".$destination_id."(this.objs);\n";
-				$response .= "}\n";
-				$response .= "\n";
-				$response .= "function Replace".$destination_id."(obj){\n";
-				$response .= "	obj[2].parentNode.insertBefore(obj[0],obj[2]);\n";
-				$response .= "	obj[0].parentNode.removeChild(obj[1]);\n";
-				$response .= "	obj[0].parentNode.removeChild(obj[2]);\n";
-				$response .= "	document.getElementById('btn_select_to_input_".$destination_id."').style.visibility = 'visible';\n";
-				if ($onchange != '') {
-					$response .= "	".$onchange.";\n";
-				}
-				$response .= "}\n";
-				$response .= "</script>\n";
-				$response .= "\n";
+		if (if_group("superadmin")) {
+			$response = "<script>\n";
+			$response .= "var Objs;\n";
+			$response .= "\n";
+			$response .= "function changeToInput".$destination_id."(obj){\n";
+			$response .= "	tb=document.createElement('INPUT');\n";
+			$response .= "	tb.type='text';\n";
+			$response .= "	tb.name=obj.name;\n";
+			$response .= "	tb.className='formfld';\n";
+			$response .= "	tb.setAttribute('id', '".$destination_id."');\n";
+			$response .= "	tb.setAttribute('style', '".$select_style."');\n";
+			if ($onchange != '') {
+				$response .= "	tb.setAttribute('onchange', \"".$onchange."\");\n";
+				$response .= "	tb.setAttribute('onkeyup', \"".$onchange."\");\n";
 			}
+			$response .= "	tb.value=obj.options[obj.selectedIndex].value;\n";
+			$response .= "	document.getElementById('btn_select_to_input_".$destination_id."').style.visibility = 'hidden';\n";
+			$response .= "	tbb=document.createElement('INPUT');\n";
+			$response .= "	tbb.setAttribute('class', 'btn');\n";
+			$response .= "	tbb.setAttribute('style', 'margin-left: 4px;');\n";
+			$response .= "	tbb.type='button';\n";
+			$response .= "	tbb.value=$('<div />').html('&#9665;').text();\n";
+			$response .= "	tbb.objs=[obj,tb,tbb];\n";
+			$response .= "	tbb.onclick=function(){ Replace".$destination_id."(this.objs); }\n";
+			$response .= "	obj.parentNode.insertBefore(tb,obj);\n";
+			$response .= "	obj.parentNode.insertBefore(tbb,obj);\n";
+			$response .= "	obj.parentNode.removeChild(obj);\n";
+			$response .= "	Replace".$destination_id."(this.objs);\n";
+			$response .= "}\n";
+			$response .= "\n";
+			$response .= "function Replace".$destination_id."(obj){\n";
+			$response .= "	obj[2].parentNode.insertBefore(obj[0],obj[2]);\n";
+			$response .= "	obj[0].parentNode.removeChild(obj[1]);\n";
+			$response .= "	obj[0].parentNode.removeChild(obj[2]);\n";
+			$response .= "	document.getElementById('btn_select_to_input_".$destination_id."').style.visibility = 'visible';\n";
+			if ($onchange != '') {
+				$response .= "	".$onchange.";\n";
+			}
+			$response .= "}\n";
+			$response .= "</script>\n";
+			$response .= "\n";
+		}
 
-			//set default to false
-			$select_found = false;
+		//set default to false
+		$select_found = false;
 
-			$response .= "	<select name='".$destination_name."' id='".$destination_id."' class='formfld' style='".$select_style."' onchange=\"".$onchange."\">\n";
-			$response .= "			<option value=''></option>\n";
-			foreach ($this->destinations as $row) {
+		$response .= "	<select name='".$destination_name."' id='".$destination_id."' class='formfld' style='".$select_style."' onchange=\"".$onchange."\">\n";
+		$response .= "			<option value=''></option>\n";
+		foreach ($this->destinations as $row) {
 
-				$name = $row['name'];
-				$label = $row['label'];
-				$destination = $row['field']['destination'];
+			$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);
-				}
+			//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 .= "		<optgroup label='".$text2['title-'.$label]."'>\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);
-								}
+			if (count($row['result']['data']) > 0 and strlen($row['select_value'][$destination_type]) > 0) {
+				$response .= "		<optgroup label='".$text2['title-'.$label]."'>\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 {
+							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 {
-									$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);
+									$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);
+							}
 						}
-
-						$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 .= "			<option value='".$select_value."' ".$selected.">".$select_label."</option>\n";
 					}
-					$response .= "		</optgroup>\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 .= "			<option value='".$select_value."' ".$selected.">".$select_label."</option>\n";
 				}
+				$response .= "		</optgroup>\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 .= "			<option value='".$destination_value."' selected='selected'>".trim($destination_label)."</option>\n";
-			}
-			$response .= "	</select>\n";
-			if (if_group("superadmin")) {
-				$response .= "<input type='button' id='btn_select_to_input_".$destination_id."' class='btn' name='' alt='back' onclick='changeToInput".$destination_id."(document.getElementById(\"".$destination_id."\"));this.style.visibility = \"hidden\";' value='&#9665;'>";
-			}
+		}
+		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 .= "			<option value='".$destination_value."' selected='selected'>".trim($destination_label)."</option>\n";
+		}
+		$response .= "	</select>\n";
+		if (if_group("superadmin")) {
+			$response .= "<input type='button' id='btn_select_to_input_".$destination_id."' class='btn' name='' alt='back' onclick='changeToInput".$destination_id."(document.getElementById(\"".$destination_id."\"));this.style.visibility = \"hidden\";' value='&#9665;'>";
+		}
 
 		//return the formatted destinations
-			return $response;
+		return $response;
 	}
 
 	/**