diff --git a/resources/classes/directory.php b/resources/classes/directory.php index e6951a2a03..4f2e998e79 100644 --- a/resources/classes/directory.php +++ b/resources/classes/directory.php @@ -39,9 +39,9 @@ include "root.php"; public $effective_caller_id_number; public $outbound_caller_id_name; public $outbound_caller_id_number; - public $limit_max=5; + public $limit_max = 5; public $limit_destination; - public $vm_enabled=1; + public $vm_enabled = 1; public $vm_mailto; public $vm_attach_file; public $vm_keep_local_after_email; @@ -98,7 +98,6 @@ include "root.php"; } public function add() { - global $db; $domain_uuid = $this->domain_uuid; $domain_name = $this->domain_name; $extension = $this->extension; @@ -132,113 +131,74 @@ include "root.php"; $enabled = $this->enabled; $description = $this->description; - $db->beginTransaction(); - for ($i=1; $i<=$range; $i++) { + for ($i = 1; $i <= $range; $i++) { if (extension_exists($extension)) { //extension exists } else { - //extension does not exist add it - $password = generate_password(); - $sql = "insert into v_extensions "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "extension_uuid, "; - $sql .= "extension, "; - $sql .= "number_alias, "; - $sql .= "password, "; - $sql .= "provisioning_list, "; - $sql .= "vm_password, "; - $sql .= "accountcode, "; - $sql .= "effective_caller_id_name, "; - $sql .= "effective_caller_id_number, "; - $sql .= "outbound_caller_id_name, "; - $sql .= "outbound_caller_id_number, "; - $sql .= "limit_max, "; - $sql .= "limit_destination, "; - $sql .= "vm_enabled, "; - $sql .= "vm_mailto, "; - $sql .= "vm_attach_file, "; - $sql .= "vm_keep_local_after_email, "; - $sql .= "user_context, "; - $sql .= "toll_allow, "; - $sql .= "call_group, "; - $sql .= "hold_music, "; - $sql .= "auth_acl, "; - $sql .= "cidr, "; - $sql .= "sip_force_contact, "; - if (strlen($sip_force_expires) > 0) { - $sql .= "sip_force_expires, "; - } - if (strlen($nibble_account) > 0) { - $sql .= "nibble_account, "; - } - if (strlen($mwi_account) > 0) { - $sql .= "mwi_account, "; - } - $sql .= "sip_bypass_media, "; - $sql .= "enabled, "; - $sql .= "description "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'$domain_uuid', "; - $sql .= "'$extension_uuid', "; - $sql .= "'$extension', "; - $sql .= "'$number_alias', "; - $sql .= "'$password', "; - $sql .= "'$provisioning_list', "; - $sql .= "'user-choose', "; - $sql .= "'$accountcode', "; - $sql .= "'$effective_caller_id_name', "; - $sql .= "'$effective_caller_id_number', "; - $sql .= "'$outbound_caller_id_name', "; - $sql .= "'$outbound_caller_id_number', "; - $sql .= "'$limit_max', "; - $sql .= "'$limit_destination', "; - $sql .= "'$vm_enabled', "; - $sql .= "'$vm_mailto', "; - $sql .= "'$vm_attach_file', "; - $sql .= "'$vm_keep_local_after_email', "; - $sql .= "'$user_context', "; - $sql .= "'$toll_allow', "; - $sql .= "'$call_group', "; - $sql .= "'$hold_music', "; - $sql .= "'$auth_acl', "; - $sql .= "'$cidr', "; - $sql .= "'$sip_force_contact', "; - if (strlen($sip_force_expires) > 0) { - $sql .= "'$sip_force_expires', "; - } - if (strlen($nibble_account) > 0) { - $sql .= "'$nibble_account', "; - } - if (strlen($mwi_account) > 0) { - if (strpos($mwi_account, '@') === false) { - if (count($_SESSION["domains"]) > 1) { - $mwi_account .= "@".$domain_name; - } - else { - $mwi_account .= "@\$\${domain}"; - } + //extension does not exist, build insert array + $password = generate_password(); + $array['extensions'][0]['domain_uuid'] = $domain_uuid; + $array['extensions'][0]['extension_uuid'] = $extension_uuid; + $array['extensions'][0]['extension'] = $extension; + $array['extensions'][0]['number_alias'] = $number_alias; + $array['extensions'][0]['password'] = $password; + $array['extensions'][0]['provisioning_list'] = $provisioning_list; + $array['extensions'][0]['vm_password'] = 'user-choose'; + $array['extensions'][0]['accountcode'] = $accountcode; + $array['extensions'][0]['effective_caller_id_name'] = $effective_caller_id_name; + $array['extensions'][0]['effective_caller_id_number'] = $effective_caller_id_number; + $array['extensions'][0]['outbound_caller_id_name'] = $outbound_caller_id_name; + $array['extensions'][0]['outbound_caller_id_number'] = $outbound_caller_id_number; + $array['extensions'][0]['limit_max'] = $limit_max; + $array['extensions'][0]['limit_destination'] = $limit_destination; + $array['extensions'][0]['vm_enabled'] = $vm_enabled; + $array['extensions'][0]['vm_mailto'] = $vm_mailto; + $array['extensions'][0]['vm_attach_file'] = $vm_attach_file; + $array['extensions'][0]['vm_keep_local_after_email'] = $vm_keep_local_after_email; + $array['extensions'][0]['user_context'] = $user_context; + $array['extensions'][0]['toll_allow'] = $toll_allow; + $array['extensions'][0]['call_group'] = $call_group; + $array['extensions'][0]['hold_music'] = $hold_music; + $array['extensions'][0]['auth_acl'] = $auth_acl; + $array['extensions'][0]['cidr'] = $cidr; + $array['extensions'][0]['sip_force_contact'] = $sip_force_contact; + if (strlen($sip_force_expires) > 0) { + $array['extensions'][0]['sip_force_expires'] = $sip_force_expires; } - $sql .= "'$mwi_account', "; - } - $sql .= "'$sip_bypass_media', "; - $sql .= "'$enabled', "; - $sql .= "'$description' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); + if (strlen($nibble_account) > 0) { + $array['extensions'][0]['nibble_account'] = $nibble_account; + } + if (strlen($mwi_account) > 0) { + if (strpos($mwi_account, '@') === false) { + $mwi_account .= count($_SESSION["domains"]) > 1 ? "@".$domain_name : "@\$\${domain}"; + } + $array['extensions'][0]['mwi_account'] = $mwi_account; + } + $array['extensions'][0]['sip_bypass_media'] = $sip_bypass_media; + $array['extensions'][0]['enabled'] = $enabled; + $array['extensions'][0]['description'] = $description; + + //grant temporary permissions + $p = new permissions; + $p->add('extension_add', 'temp'); + + //execute insert + $database = new database; + $database->app_name = 'switch_directory'; + $database->app_uuid = 'efc9cdbf-8616-435d-9d21-ae8d4e6b5225'; + $database->save($array); + unset($array); + + //revoke temporary permissions + $p->delete('extension_add', 'temp'); + } $extension++; } - $db->commit(); } public function update() { - global $db; - $domain_uuid = $this->domain_uuid; $domain_name = $this->domain_name; $extension = $this->extension; @@ -285,109 +245,107 @@ include "root.php"; $password = generate_password(); } - $sql = "update v_extensions set "; - $sql .= "extension = '$extension', "; - $sql .= "number_alias = '$number_alias', "; - $sql .= "password = '$password', "; - $sql .= "provisioning_list = '$provisioning_list', "; - if (strlen($vm_password) > 0) { - $sql .= "vm_password = '$vm_password', "; - } - else { - $sql .= "vm_password = 'user-choose', "; - } - $sql .= "accountcode = '$accountcode', "; - $sql .= "effective_caller_id_name = '$effective_caller_id_name', "; - $sql .= "effective_caller_id_number = '$effective_caller_id_number', "; - $sql .= "outbound_caller_id_name = '$outbound_caller_id_name', "; - $sql .= "outbound_caller_id_number = '$outbound_caller_id_number', "; - $sql .= "limit_max = '$limit_max', "; - $sql .= "limit_destination = '$limit_destination', "; - $sql .= "vm_enabled = '$vm_enabled', "; - $sql .= "vm_mailto = '$vm_mailto', "; - $sql .= "vm_attach_file = '$vm_attach_file', "; - $sql .= "vm_keep_local_after_email = '$vm_keep_local_after_email', "; - $sql .= "user_context = '$user_context', "; - $sql .= "toll_allow = '$toll_allow', "; - $sql .= "call_group = '$call_group', "; - $sql .= "hold_music = '$hold_music', "; - $sql .= "auth_acl = '$auth_acl', "; - $sql .= "cidr = '$cidr', "; - $sql .= "sip_force_contact = '$sip_force_contact', "; - if (strlen($sip_force_expires) == 0) { - $sql .= "sip_force_expires = null, "; - } - else { - $sql .= "sip_force_expires = '$sip_force_expires', "; - } - if (strlen($nibble_account) == 0) { - $sql .= "nibble_account = null, "; - } - else { - $sql .= "nibble_account = '$nibble_account', "; - } - if (strlen($mwi_account) > 0) { - if (strpos($mwi_account, '@') === false) { - if (count($_SESSION["domains"]) > 1) { - $mwi_account .= "@".$domain_name; - } - else { - $mwi_account .= "@\$\${domain}"; + //build update array + $array['extensions'][0]['extension_uuid'] = $extension_uuid; + $array['extensions'][0]['extension'] = $extension; + $array['extensions'][0]['number_alias'] = $number_alias; + $array['extensions'][0]['password'] = $password; + $array['extensions'][0]['provisioning_list'] = $provisioning_list; + $array['extensions'][0]['vm_password'] = strlen($vm_password) > 0 ? $vm_password : 'user-choose'; + $array['extensions'][0]['accountcode'] = $accountcode; + $array['extensions'][0]['effective_caller_id_name'] = $effective_caller_id_name; + $array['extensions'][0]['effective_caller_id_number'] = $effective_caller_id_number; + $array['extensions'][0]['outbound_caller_id_name'] = $outbound_caller_id_name; + $array['extensions'][0]['outbound_caller_id_number'] = $outbound_caller_id_number; + $array['extensions'][0]['limit_max'] = $limit_max; + $array['extensions'][0]['limit_destination'] = $limit_destination; + $array['extensions'][0]['vm_enabled'] = $vm_enabled; + $array['extensions'][0]['vm_mailto'] = $vm_mailto; + $array['extensions'][0]['vm_attach_file'] = $vm_attach_file; + $array['extensions'][0]['vm_keep_local_after_email'] = $vm_keep_local_after_email; + $array['extensions'][0]['user_context'] = $user_context; + $array['extensions'][0]['toll_allow'] = $toll_allow; + $array['extensions'][0]['call_group'] = $call_group; + $array['extensions'][0]['hold_music'] = $hold_music; + $array['extensions'][0]['auth_acl'] = $auth_acl; + $array['extensions'][0]['cidr'] = $cidr; + $array['extensions'][0]['sip_force_contact'] = $sip_force_contact; + $array['extensions'][0]['sip_force_expires'] = strlen($sip_force_expires) > 0 ? $sip_force_expires : null; + $array['extensions'][0]['nibble_account'] = strlen($nibble_account) > 0 ? $nibble_account : null; + if (strlen($mwi_account) > 0) { + if (strpos($mwi_account, '@') === false) { + $mwi_account .= count($_SESSION["domains"]) > 1 ? "@".$domain_name : "@\$\${domain}"; } + $array['extensions'][0]['mwi_account'] = $mwi_account; } - } - $sql .= "mwi_account = '$mwi_account', "; - $sql .= "sip_bypass_media = '$sip_bypass_media', "; - $sql .= "enabled = '$enabled', "; - $sql .= "description = '$description' "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and extension_uuid = '$extension_uuid'"; - $db->exec(check_sql($sql)); - unset($sql); + $array['extensions'][0]['sip_bypass_media'] = $sip_bypass_media; + $array['extensions'][0]['enabled'] = $enabled; + $array['extensions'][0]['description'] = $description; + + //grant temporary permissions + $p = new permissions; + $p->add('extension_edit', 'temp'); + + //execute insert + $database = new database; + $database->app_name = 'switch_directory'; + $database->app_uuid = 'efc9cdbf-8616-435d-9d21-ae8d4e6b5225'; + $database->save($array); + unset($array); + + //revoke temporary permissions + $p->delete('extension_edit', 'temp'); } function delete() { - global $db; $domain_uuid = $this->domain_uuid; $extension_uuid = $this->extension_uuid; - if (strlen($extension_uuid)>0) { - $sql = "delete from v_extensions "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and extension_uuid = '$extension_uuid' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - unset($sql); + if (is_uuid($extension_uuid)) { + //build delete array + $array['extensions'][0]['extension_uuid'] = $extension_uuid; + $array['extensions'][0]['domain_uuid'] = $domain_uuid; + //grant temporary permissions + $p = new permissions; + $p->add('extension_delete', 'temp'); + //execute delete + $database = new database; + $database->app_name = 'switch_directory'; + $database->app_uuid = 'efc9cdbf-8616-435d-9d21-ae8d4e6b5225'; + $database->delete($array); + unset($array); + //revoke temporary permissions + $p->delete('extension_delete', 'temp'); } } - function import_sql($data){ - $count=count($data); - $keys=$values=SplFixedArray($count); - $keys=array_keys($data); - $values=array_values($data); - for($i=0;$i<$count;$i++){ - $keys[$i]= str_replace("-", "_", $keys[$i]); - $this->{$keys[$i]}=$values[$i]; + function import_sql($data) { + $count = count($data); + $keys = $values = SplFixedArray($count); + $keys = array_keys($data); + $values = array_values($data); + for ($i = 0; $i < $count; $i++) { + $keys[$i] = str_replace("-", "_", $keys[$i]); + $this->{$keys[$i]} = $values[$i]; } } - function set_bool(&$var,$default=null){ - $var=strtolower($var); - if ($var==="true") return; - elseif ($var==="false") return; - elseif ($var==true) $var="true"; - elseif ($var==false) $var="false"; - elseif(!is_null($default)) { - $var=$default; + function set_bool(&$var, $default = null){ + $var = strtolower($var); + if ($var === "true") return; + else if ($var === "false") return; + else if ($var == true) $var = "true"; + else if ($var == false) $var = "false"; + else if (!is_null($default)) { + $var = $default; $this->set_bool($var); - } + } } - function generate_xml($single=1){ - //switch_account_code!! How should we be passing this?? + function generate_xml($single = 1) { + //switch_account_code!! if ($this->enabled== "false" || !$this->enabled) { - return false;//This the best way?? + return false; } $this->vm_password = str_replace("#", "", $this->vm_password); //preserves leading zeros//**Generic Validation! @@ -415,100 +373,99 @@ include "root.php"; $xml .= "\n"; }*/ if (strlen($this->cidr)) { - $this->cidr = " cidr=\"" . $this->cidr . "\""; + $this->cidr = " cidr=\"".$this->cidr."\""; } if (strlen($this->number_alias)) { $this->number_alias = " number-alias=\"".$this->number_alias."\""; } - if($single) $xml = "\n"; - else $xml = ""; + $xml = $single ? "\n" : ""; $xml .= " extension."\"".$this->cidr."".$this->number_alias.">\n"; $xml .= " \n"; - $xml .= " password . "\"/>\n"; + $xml .= " password."\"/>\n"; $xml .= " vm_enabled."\"/>\n"; if ($this->vm_enabled=="true"){ - $xml .= " vm_password . "\"/>\n"; + $xml .= " vm_password."\"/>\n"; if(strlen($this->vm_mailto)) { $xml .= " \n"; $xml .= " vm_attach_file."\"/>\n"; $xml .= " vm_keep_local_after_email."\"/>\n"; - $xml .= " vm_mailto . "\"/>\n"; + $xml .= " vm_mailto."\"/>\n"; } } if (strlen($this->mwi_account)) { - $xml .= " mwi_account . "\"/>\n"; + $xml .= " mwi_account."\"/>\n"; } if (strlen($this->auth_acl)) { - $xml .= " auth_acl . "\"/>\n"; + $xml .= " auth_acl."\"/>\n"; } $xml .= " \n"; $xml .= " \n"; if (strlen($this->hold_music)) { - $xml .= " hold_music . "\"/>\n"; + $xml .= " hold_music."\"/>\n"; } if (strlen($this->toll_allow)){ - $xml .= " toll_allow . "\"/>\n"; + $xml .= " toll_allow."\"/>\n"; } if (strlen($this->accountcode)){ - $xml .= " accountcode . "\"/>\n"; + $xml .= " accountcode."\"/>\n"; } - $xml .= " user_context . "\"/>\n"; + $xml .= " user_context."\"/>\n"; if (strlen($this->effective_caller_id_name)) { - $xml .= " effective_caller_id_name . "\"/>\n"; + $xml .= " effective_caller_id_name."\"/>\n"; } if (strlen($this->outbound_caller_id_number)) { - $xml .= " effective_caller_id_number . "\"/>\n"; + $xml .= " effective_caller_id_number."\"/>\n"; } if (strlen($this->outbound_caller_id_name)) { - $xml .= " outbound_caller_id_name . "\"/>\n"; + $xml .= " outbound_caller_id_name."\"/>\n"; } if (strlen($this->outbound_caller_id_number)) { - $xml .= " outbound_caller_id_number . "\"/>\n"; + $xml .= " outbound_caller_id_number."\"/>\n"; } if (!strlen($this->limit_max)) {//**validation $this->limit_max=5; } - $xml .= " limit_max . "\"/>\n"; + $xml .= " limit_max."\"/>\n"; if (strlen($this->limit_destination)) { - $xml .= " limit_destination . "\"/>\n"; + $xml .= " limit_destination."\"/>\n"; } if (strlen($this->sip_force_contact)) { - $xml .= " sip_force_contact . "\"/>\n"; + $xml .= " sip_force_contact."\"/>\n"; } if (strlen($this->sip_force_expires)) { - $xml .= " sip_force_expires . "\"/>\n"; + $xml .= " sip_force_expires."\"/>\n"; } if (strlen($this->nibble_account)) { - $xml .= " nibble_account . "\"/>\n"; + $xml .= " nibble_account."\"/>\n"; } switch ($this->sip_bypass_media) { case "bypass-media": - $xml .= " \n"; - break; + $xml .= " \n"; + break; case "bypass-media-after-bridge": - $xml .= " \n"; - break; + $xml .= " \n"; + break; case "proxy-media": - $xml .= " \n"; - break; + $xml .= " \n"; + break; } $xml .= " \n"; $xml .= " \n"; - if($single) { $xml .= "\n"; } + if ($single) { $xml .= "\n"; } return $xml; } function xml_save_all() { - global $db, $config; + global $config; $domain_uuid = $this->domain_uuid; $domain_name = $this->domain_name; //get the system settings paths and set them as variables $settings_array = v_settings(); - foreach($settings_array as $name => $value) { + foreach ($settings_array as $name => $value) { $$name = $value; } @@ -516,13 +473,14 @@ include "root.php"; $extension_parent_dir = realpath($_SESSION['switch']['extensions']['dir']."/.."); // delete all old extensions to prepare for new ones - if($dh = opendir($_SESSION['switch']['extensions']['dir'])) { - $files = Array(); - while($file = readdir($dh)) { - if($file != "." && $file != ".." && $file[0] != '.') { - if(is_dir($dir . "/" . $file)) { + if ($dh = opendir($_SESSION['switch']['extensions']['dir'])) { + $files = array(); + while ($file = readdir($dh)) { + if ($file != "." && $file != ".." && $file[0] != '.') { + if (is_dir($dir."/".$file)) { //this is a directory do nothing - } else { + } + else { //check if file is an extension; verify the file numeric and the extension is xml if (substr($file,0,2) == 'v_' && substr($file,-4) == '.xml') { unlink($_SESSION['switch']['extensions']['dir']."/".$file); @@ -534,51 +492,56 @@ include "root.php"; } $sql = "select * from v_extensions "; - $sql .= "where domain_uuid = '$domain_uuid' "; + $sql .= "where domain_uuid = :domain_uuid "; $sql .= "order by call_group asc "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $rows = $database->select($sql, $parameters, 'all'); $i = 0; $extension_xml_condensed = false; if ($extension_xml_condensed) { $fout = fopen($_SESSION['switch']['extensions']['dir']."/v_extensions.xml","w"); $xml = "\n"; } - while($row = $prep_statement->fetch(PDO::FETCH_ASSOC)) { - $call_group = $row['call_group']; - $call_group = str_replace(";", ",", $call_group); - $tmp_array = explode(",", $call_group); - foreach ($tmp_array as &$tmp_call_group) { - if (strlen($tmp_call_group) > 0) { - if (strlen($call_group_array[$tmp_call_group]) == 0) { - $call_group_array[$tmp_call_group] = $row['extension']; - } - else { - $call_group_array[$tmp_call_group] = $call_group_array[$tmp_call_group].','.$row['extension']; + if (is_array($rows) && @sizeof($rows) != 0) { + foreach ($rows as $row) { + $call_group = $row['call_group']; + $call_group = str_replace(";", ",", $call_group); + $tmp_array = explode(",", $call_group); + foreach ($tmp_array as &$tmp_call_group) { + if (strlen($tmp_call_group) > 0) { + if (strlen($call_group_array[$tmp_call_group]) == 0) { + $call_group_array[$tmp_call_group] = $row['extension']; + } + else { + $call_group_array[$tmp_call_group] = $call_group_array[$tmp_call_group].','.$row['extension']; + } } + $i++; } - $i++; - } - if ($row['enabled'] != "false") { - //$this->import_sql($row);//Do I need to be worried about ghost values? Maybe I should make a new object? - //if (strlen($switch_account_code)) $this->accountcode=$switch_account_code; - //$xml.=$this->generate_xml(1); + if ($row['enabled'] != "false") { + //$this->import_sql($row); + //if (strlen($switch_account_code)) $this->accountcode=$switch_account_code; + //$xml.=$this->generate_xml(1); - $one_row=new fs_directory; - $one_row->import_sql($row);//make a new object to flush ghost rows. And we can call this as static. - if (strlen($switch_account_code)) $one_row->accountcode=$switch_account_code; - $xml.=$one_row->generate_xml(false); + $one_row = new fs_directory; + $one_row->import_sql($row); + if (strlen($switch_account_code)) { + $one_row->accountcode = $switch_account_code; + } + $xml .= $one_row->generate_xml(false); - if (!$extension_xml_condensed) { - $xml .= "\n"; - fwrite($fout, $xml); - unset($xml); - fclose($fout); + if (!$extension_xml_condensed) { + $xml .= "\n"; + fwrite($fout, $xml); + unset($xml); + fclose($fout); + } } } } - unset ($prep_statement); + unset($sql, $parameters, $rows, $row); if ($extension_xml_condensed) { $xml .= "\n"; fwrite($fout, $xml); @@ -684,7 +647,8 @@ include "root.php"; //event_socket_request_cmd($cmd); //unset($cmd); - } //end function - } //class + } + + } ?> \ No newline at end of file diff --git a/resources/classes/ringbacks.php b/resources/classes/ringbacks.php index e321ce0759..40efc23974 100644 --- a/resources/classes/ringbacks.php +++ b/resources/classes/ringbacks.php @@ -29,7 +29,6 @@ if (!class_exists('ringbacks')) { class ringbacks { //define variables - public $db; public $domain_uuid; private $ringtones_list; private $tones_list; @@ -39,14 +38,6 @@ if (!class_exists('ringbacks')) { //class constructor public function __construct() { - //connect to the database if not connected - if (!$this->db) { - require_once "resources/classes/database.php"; - $database = new database; - $database->connect(); - $this->db = $database->db; - } - //set the domain_uuid $this->domain_uuid = $_SESSION['domain_uuid']; @@ -58,28 +49,28 @@ if (!class_exists('ringbacks')) { $sql = "select * from v_vars "; $sql .= "where var_category = 'Ringtones' "; $sql .= "order by var_name asc "; - $prep_statement = $this->db->prepare(check_sql($sql)); - $prep_statement->execute(); - $ringtones = $prep_statement->fetchAll(PDO::FETCH_NAMED); - unset ($prep_statement, $sql); - foreach($ringtones as $ringtone) { - $ringtone = $ringtone['var_name']; - $label = $text['label-'.$ringtone]; - if ($label == "") { - $label = $ringtone; + $database = new database; + $ringtones = $database->select($sql, null, 'all'); + if (is_array($ringtones) && @sizeof($ringtones) != 0) { + foreach ($ringtones as $ringtone) { + $ringtone = $ringtone['var_name']; + $label = $text['label-'.$ringtone]; + if ($label == "") { + $label = $ringtone; + } + $ringtones_list[$ringtone] = $label; } - $ringtones_list[$ringtone] = $label; } $this->ringtones_list = $ringtones_list; + unset($sql, $ringtones, $ringtone, $ringtones_list); //get the default_ringback label /* $sql = "select * from v_vars where var_name = 'ringback' "; - $prep_statement = $this->db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetch(); - unset ($prep_statement, $sql); - $default_ringback = (string) $result['var_value']; + $database = new database; + $row = $database->select($sql, null, 'row'); + unset($sql); + $default_ringback = (string) $row['var_value']; $default_ringback = preg_replace('/\A\$\${/',"",$default_ringback); $default_ringback = preg_replace('/}\z/',"",$default_ringback); #$label = $text['label-'.$default_ringback]; @@ -108,7 +99,7 @@ if (!class_exists('ringbacks')) { } } - public function select ($name, $selected) { + public function select($name, $selected) { //add multi-lingual support $language = new text; $text = $language->get(); @@ -120,7 +111,7 @@ if (!class_exists('ringbacks')) { if (count($this->music_list) > 0) { $select .= " \n"; $previous_name = ''; - foreach($this->music_list as $row) { + foreach ($this->music_list as $row) { if ($previous_name != $row['music_on_hold_name']) { $name = ''; if (strlen($row['domain_uuid']) > 0) { @@ -137,8 +128,8 @@ if (!class_exists('ringbacks')) { //recordings if (sizeof($this->recordings_list) > 0) { $select .= " "; - foreach($this->recordings_list as $recording_value => $recording_name){ - $select .= " \n"; + foreach ($this->recordings_list as $recording_value => $recording_name) { + $select .= " \n"; } $select .= " \n"; } @@ -146,19 +137,20 @@ if (!class_exists('ringbacks')) { //streams if (is_dir($_SERVER["PROJECT_ROOT"].'/app/streams')) { $sql = "select * from v_streams "; - $sql .= "where (domain_uuid = '".$this->domain_uuid."' or domain_uuid is null) "; + $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; $sql .= "and stream_enabled = 'true' "; $sql .= "order by stream_name asc "; - $prep_statement = $this->db->prepare(check_sql($sql)); - $prep_statement->execute(); - $streams = $prep_statement->fetchAll(PDO::FETCH_NAMED); - if (sizeof($streams) > 0) { + $parameters['domain_uuid'] = $this->domain_uuid; + $database = new database; + $streams = $database->select($sql, $parameters, 'all'); + if (is_array($streams) && @sizeof($streams) != 0) { $select .= " "; - foreach($streams as $row){ + foreach ($streams as $row) { $select .= " \n"; } $select .= " \n"; } + unset($sql, $parameters, $streams, $row); } //ringtones @@ -168,8 +160,8 @@ if (!class_exists('ringbacks')) { $selected_ringtone = preg_replace('/}\z/',"",$selected_ringtone); $select .= " "; //$select .= " \n"; - foreach($this->ringtones_list as $ringtone_value => $ringtone_name) { - $select .= " \n"; + foreach ($this->ringtones_list as $ringtone_value => $ringtone_name) { + $select .= " \n"; } $select .= " \n"; unset($selected_ringtone); @@ -182,7 +174,7 @@ if (!class_exists('ringbacks')) { $selected_tone = preg_replace('/}\z/',"",$selected_tone); $select .= " "; foreach($this->tones_list as $tone_value => $tone_name) { - $select .= " \n"; + $select .= " \n"; } $select .= " \n"; unset($selected_tone); @@ -195,4 +187,4 @@ if (!class_exists('ringbacks')) { } } -?> +?> \ No newline at end of file diff --git a/resources/classes/sounds.php b/resources/classes/sounds.php index d53c3e1312..d6787355f2 100644 --- a/resources/classes/sounds.php +++ b/resources/classes/sounds.php @@ -10,20 +10,13 @@ class sounds { /** * Called when the object is created */ - public $db; public $domain_uuid; /** * Class constructor */ public function __construct() { - //connect to the database if not connected - if (!$this->db) { - require_once "resources/classes/database.php"; - $database = new database; - $database->connect(); - $this->db = $database->db; - } + } /** @@ -44,7 +37,7 @@ class sounds { public function get() { //miscellaneous - $x=0; + $x = 0; if (if_group("superadmin")) { $array['miscellaneous'][$x]['name'] = "say"; $array['miscellaneous'][$x]['value'] = "say:"; @@ -55,12 +48,12 @@ class sounds { //recordings if (file_exists($_SERVER["PROJECT_ROOT"]."/app/phrases/app_config.php")) { $sql = "select recording_name, recording_filename from v_recordings "; - $sql .= "where domain_uuid = '".$_SESSION["domain_uuid"]."' "; + $sql .= "where domain_uuid = :domain_uuid "; $sql .= "order by recording_name asc "; - $prep_statement = $this->db->prepare(check_sql($sql)); - $prep_statement->execute(); - $recordings = $prep_statement->fetchAll(PDO::FETCH_ASSOC); - if (is_array($recordings) > 0) { + $parameters['domain_uuid'] = $_SESSION["domain_uuid"]; + $database = new database; + $recordings = $database->select($sql, $parameters, 'all'); + if (is_array($recordings) && @sizeof($recordings) != 0) { foreach ($recordings as &$row) { $recording_name = $row["recording_name"]; $recording_filename = $row["recording_filename"]; @@ -69,27 +62,29 @@ class sounds { $x++; } } + unset($sql, $parameters, $recordings, $row); } //phrases if (file_exists($_SERVER["PROJECT_ROOT"]."/app/phrases/app_config.php")) { - $sql = "select * from v_phrases where domain_uuid = '".$_SESSION["domain_uuid"]."' "; - $prep_statement = $this->db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - if (count($result) > 0) { - foreach ($result as &$row) { + $sql = "select * from v_phrases "; + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $_SESSION["domain_uuid"]; + $database = new database; + $phrases = $database->select($sql, $parameters, 'all'); + if (is_array($phrases) && @sizeof($phrases) != 0) { + foreach ($phrases as &$row) { $array['phrases'][$x]['name'] = "phrase:".$row["phrase_name"]; $array['phrases'][$x]['value'] = "phrase:".$row["phrase_uuid"]; $x++; } - unset ($prep_statement); } + unset($sql, $parameters, $phrases, $row); } //sounds if (file_exists($_SERVER["PROJECT_ROOT"]."/app/phrases/app_config.php")) { $file = new file; $sound_files = $file->sounds(); - if (is_array($sound_files)) { + if (is_array($sound_files) && @sizeof($sound_files) != 0) { foreach ($sound_files as $value) { if (substr($value, 0, 71) == "\$\${sounds_dir}/\${default_language}/\${default_dialect}/\${default_voice}/") { $value = substr($var, 71); @@ -102,8 +97,9 @@ class sounds { } //send the results return $array; - //print_r($array); - } // get method -} //end class -?> + } + +} + +?> \ No newline at end of file diff --git a/resources/classes/switch_settings.php b/resources/classes/switch_settings.php index e9bfe5d9a0..c19cf65c87 100644 --- a/resources/classes/switch_settings.php +++ b/resources/classes/switch_settings.php @@ -8,7 +8,6 @@ if (!class_exists('switch_settings')) { class switch_settings { - public $db; public $event_socket_ip_address; public $event_socket_port; public $event_socket_password; @@ -17,13 +16,7 @@ if (!class_exists('switch_settings')) { * Called when the object is created */ public function __construct() { - //connect to the database if not connected - if (!$this->db) { - require_once "resources/classes/database.php"; - $database = new database; - $database->connect(); - $this->db = $database->db; - } + } /** @@ -215,10 +208,9 @@ if (!class_exists('switch_settings')) { //get an array of the default settings $sql = "select * from v_default_settings "; $sql .= "where default_setting_category = 'switch' "; - $prep_statement = $this->db->prepare($sql); - $prep_statement->execute(); - $default_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED); - unset ($prep_statement, $sql); + $database = new database; + $default_settings = $database->select($sql, null, 'all'); + unset($sql); //find the missing default settings $x = 0; @@ -237,32 +229,31 @@ if (!class_exists('switch_settings')) { //add the missing default settings if (count($missing) > 0) { - $sql = "insert into v_default_settings ("; - $sql .= "default_setting_uuid, "; - $sql .= "default_setting_category, "; - $sql .= "default_setting_subcategory, "; - $sql .= "default_setting_name, "; - $sql .= "default_setting_value, "; - $sql .= "default_setting_enabled, "; - $sql .= "default_setting_description "; - $sql .= ") values \n"; $i = 1; foreach ($missing as $row) { - $sql .= "("; - $sql .= "'".uuid()."', "; - $sql .= "'".check_str($row['default_setting_category'])."', "; - $sql .= "'".check_str($row['default_setting_subcategory'])."', "; - $sql .= "'".check_str($row['default_setting_name'])."', "; - $sql .= "'".check_str($row['default_setting_value'])."', "; - $sql .= "'".check_str($row['default_setting_enabled'])."', "; - $sql .= "'".check_str($row['default_setting_description'])."' "; - $sql .= ")"; - if (sizeof($missing) != $i) { - $sql .= ",\n"; - } + //build insert array + $array['default_settings'][$i]['default_setting_uuid'] = uuid(); + $array['default_settings'][$i]['default_setting_category'] = $row['default_setting_category']; + $array['default_settings'][$i]['default_setting_subcategory'] = $row['default_setting_subcategory']; + $array['default_settings'][$i]['default_setting_name'] = $row['default_setting_name']; + $array['default_settings'][$i]['default_setting_value'] = $row['default_setting_value']; + $array['default_settings'][$i]['default_setting_enabled'] = $row['default_setting_enabled']; + $array['default_settings'][$i]['default_setting_description'] = $row['default_setting_description']; $i++; } - $this->db->exec(check_sql($sql)); + if (is_array($array) && @sizeof($array) != 0) { + //grant temporary permissions + $p = new permissions; + $p->add('default_setting_add', 'temp'); + //execute insert + $database = new database; + $database->app_name = 'switch_settings'; + $database->app_uuid = '84e91084-a227-43cd-ae99-a0f8ed61eb8b'; + $database->save($array); + unset($array); + //revoke temporary permissions + $p->delete('default_setting_add', 'temp'); + } unset($missing); } @@ -281,4 +272,4 @@ if (!class_exists('switch_settings')) { } } -?> +?> \ No newline at end of file diff --git a/resources/classes/template.php b/resources/classes/template.php index ef310b4699..8864c76061 100644 --- a/resources/classes/template.php +++ b/resources/classes/template.php @@ -98,4 +98,4 @@ include "root.php"; } } -?> +?> \ No newline at end of file diff --git a/resources/classes/text.php b/resources/classes/text.php index b7cef09f01..d6d6e86b9d 100644 --- a/resources/classes/text.php +++ b/resources/classes/text.php @@ -265,7 +265,7 @@ class text { $text = array(); $languages = array(); - //fetch all the languages + //retrieve all the languages $files = glob($_SERVER["PROJECT_ROOT"] . "/*/*/app_languages.php"); foreach($files as $file) { include $file; @@ -309,7 +309,7 @@ class text { $language_totals[$language_code] = 0; } - //fetch all the languages + //retrieve all the languages $text = array(); $files = glob($_SERVER["PROJECT_ROOT"] . "/*/*/app_languages.php"); foreach($files as $file) { @@ -327,7 +327,7 @@ class text { } unset($text); - //fetch all the menus + //retrieve all the menus $x = 0; $files = glob($_SERVER["PROJECT_ROOT"] . "/*/*"); foreach($files as $file) { diff --git a/resources/classes/tones.php b/resources/classes/tones.php index 8cc6b7784b..3428cf83e8 100644 --- a/resources/classes/tones.php +++ b/resources/classes/tones.php @@ -29,7 +29,6 @@ if (!class_exists('tones')) { class tones { //define variables - public $db; private $tones; private $music_list; private $recordings_list; @@ -37,14 +36,6 @@ if (!class_exists('tones')) { //class constructor public function __construct() { - //connect to the database if not connected - if (!$this->db) { - require_once "resources/classes/database.php"; - $database = new database; - $database->connect(); - $this->db = $database->db; - } - //add multi-lingual support $language = new text; $text = $language->get(); @@ -53,11 +44,9 @@ if (!class_exists('tones')) { $sql = "select * from v_vars "; $sql .= "where var_category = 'Tones' "; $sql .= "order by var_name asc "; - $prep_statement = $this->db->prepare(check_sql($sql)); - $prep_statement->execute(); - $tones = $prep_statement->fetchAll(PDO::FETCH_NAMED); - unset ($prep_statement, $sql); - foreach($tones as $tone) { + $database = new database; + $tones = $database->select($sql, null, 'all'); + foreach ($tones as $tone) { $tone = $tone['var_name']; $label = $text['label-'.$tone]; if ($label == "") { @@ -66,8 +55,7 @@ if (!class_exists('tones')) { $tone_list[$tone] = $label; } $this->tones = $tone_list; - unset($tone_list); - + unset($sql, $tones, $tone, $tone_list); } public function tones_list() { @@ -76,4 +64,4 @@ if (!class_exists('tones')) { } } -?> +?> \ No newline at end of file