Portions created by the Initial Developer are Copyright (C) 2008-2012 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ if ($domains_processed == 1) { //create a json string $vars = <<prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_ASSOC); if ( count($result)> 0) { $country_iso = $result[0]["value"]; } } unset($prep_statement, $sql, $result); if ( $country_iso===NULL ) { return; } if(isset($countries[$country_iso])){ $country = $countries[$country_iso]; // Set default Country ISO code $sql = "select count(*) as num_rows from v_vars "; $sql .= "where var_name = 'default_country' "; $sql .= "and var_cat = 'Defaults' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row['num_rows'] == 0) { $sql = "insert into v_vars "; $sql .= "("; $sql .= "var_uuid, "; $sql .= "var_name, "; $sql .= "var_value, "; $sql .= "var_cat, "; $sql .= "var_enabled, "; $sql .= "var_order, "; $sql .= "var_description "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".uuid()."', "; $sql .= "'default_country', "; $sql .= "'".$country["isocode"]."', "; $sql .= "'Defaults', "; $sql .= "'true', "; $sql .= "'".$x."', "; $sql .= "'' "; $sql .= ");"; $db->exec(check_sql($sql)); unset($sql, $row); $x++; } } unset($prep_statement, $sql); //Set default Country code $sql = "select count(*) as num_rows from v_vars "; $sql .= "where var_name = 'default_countrycode' "; $sql .= "and var_cat = 'Defaults' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row['num_rows'] == 0) { $sql = "insert into v_vars "; $sql .= "("; $sql .= "var_uuid, "; $sql .= "var_name, "; $sql .= "var_value, "; $sql .= "var_cat, "; $sql .= "var_enabled, "; $sql .= "var_order, "; $sql .= "var_description "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".uuid()."', "; $sql .= "'default_countrycode', "; $sql .= "'".$country["countrycode"]."', "; $sql .= "'Defaults', "; $sql .= "'true', "; $sql .= "'".$x."', "; $sql .= "'' "; $sql .= ");"; $db->exec(check_sql($sql)); unset($sql, $row); $x++; } } unset($prep_statement, $sql); // Set default International Direct Dialing code $sql = "select count(*) as num_rows from v_vars "; $sql .= "where var_name = 'default_exitcode' "; $sql .= "and var_cat = 'Defaults' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row['num_rows'] == 0) { $sql = "insert into v_vars "; $sql .= "("; $sql .= "var_uuid, "; $sql .= "var_name, "; $sql .= "var_value, "; $sql .= "var_cat, "; $sql .= "var_enabled, "; $sql .= "var_order, "; $sql .= "var_description "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".uuid()."', "; $sql .= "'default_exitcode', "; $sql .= "'".$country["exitcode"]."', "; $sql .= "'Defaults', "; $sql .= "'true', "; $sql .= "'".$x."', "; $sql .= "'' "; $sql .= ");"; $db->exec(check_sql($sql)); unset($sql, $row); $x++; } } unset($prep_statement, $sql); unset($countries); } } } //import default variables $result = json_decode($vars, true); //import ringtones from vars.xml $vars_xml = simplexml_load_file($_SERVER["PROJECT_ROOT"] . "/resources/templates/conf/vars.xml"); foreach($vars_xml->{'X-PRE-PROCESS'} as $item) { if($item->attributes()->cmd == 'set') { $value = explode('=', $item->attributes()->data, 2); if(preg_match("/-ring/", $value[0])){ $row = Array(); $row['var_cat'] = 'Ringtones'; $row['var_name'] = $value[0]; $row['var_value'] = $value[1]; $row['var_enabled'] = $item->attributes()->enabled; if(!isset($row['var_enabled'])){ $row['var_enabled'] = 'true'; } $row['var_description'] = $item->attributes()->description; if(!isset($row['var_description'])){ $row['var_description'] = base64_encode('Imported from vars.xml'); } $result[] = $row; } elseif(preg_match("/-tone/", $value[0])){ $row = Array(); $row['var_cat'] = 'Tones'; $row['var_name'] = $value[0]; $row['var_value'] = $value[1]; $row['var_enabled'] = $item->attributes()->enabled; if(!isset($row['var_enabled'])){ $row['var_enabled'] = 'true'; } $row['var_description'] = $item->attributes()->description; if(!isset($row['var_description'])){ $row['var_description'] = base64_encode('Imported from vars.xml'); } $result[] = $row; } } } //migrate old ringtones $sql = "update v_vars "; $sql .= "set var_cat = 'Ringtones' "; $sql .= "set var_description = 'TWlncmF0ZWQgZnJvbSBEZWZhdWx0cw==' "; $sql .= "where var_name like '%-ring' "; $sql .= "and var_cat = 'Defaults' "; $sql .= "and var_description = '' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); } $sql = "update v_vars "; $sql .= "set var_cat = 'Ringtones' "; $sql .= "where var_name like '%-ring' "; $sql .= "and var_cat = 'Defaults' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); } unset($prep_statement, $sql); //add missing variables $x = 1; foreach($result as $row) { $sql = "select count(*) as num_rows from v_vars "; $sql .= "where var_name = '".$row['var_name']."' "; $sql .= "and var_cat = '".$row['var_cat']."' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $row2 = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row2['num_rows'] == 0) { $sql = "insert into v_vars "; $sql .= "("; $sql .= "var_uuid, "; $sql .= "var_name, "; $sql .= "var_value, "; $sql .= "var_cat, "; $sql .= "var_enabled, "; $sql .= "var_order, "; $sql .= "var_description "; $sql .= ") "; $sql .= "values "; $sql .= "("; $sql .= "'".uuid()."', "; $sql .= "'".$row['var_name']."', "; $sql .= "'".$row['var_value']."', "; $sql .= "'".$row['var_cat']."', "; $sql .= "'".$row['var_enabled']."', "; $sql .= "'".$x."', "; $sql .= "'".$row['var_description']."' "; $sql .= ");"; $db->exec($sql); unset($sql); $x++; } } unset($prep_statement, $row2); } unset($result, $row); //adjust the variables required variables //set variables that depend on the number of domains if (count($_SESSION['domains']) > 1) { //disable the domain and domain_uuid for systems with multiple domains $sql = "update v_vars set "; $sql .= "var_enabled = 'false' "; $sql .= "where (var_name = 'domain' or var_name = 'domain_uuid') "; $db->exec(check_sql($sql)); unset($sql); } else { //set the domain_uuid $sql = "select count(*) as num_rows from v_vars "; $sql .= "where var_name = 'domain_uuid' "; $prep_statement = $db->prepare($sql); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row['num_rows'] == 0) { $sql = "insert into v_vars "; $sql .= "("; $sql .= "var_uuid, "; $sql .= "var_name, "; $sql .= "var_value, "; $sql .= "var_cat, "; $sql .= "var_enabled, "; $sql .= "var_order, "; $sql .= "var_description "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".uuid()."', "; $sql .= "'domain_uuid', "; $sql .= "'".$domain_uuid."', "; $sql .= "'Defaults', "; $sql .= "'true', "; $sql .= "'999', "; $sql .= "'' "; $sql .= ");"; $db->exec(check_sql($sql)); unset($sql); } unset($prep_statement, $row); } } //set country code variables set_country_vars($db, $x); //save the vars.xml file save_var_xml(); } ?>