Add 3 more variables to device settings for the provision category and make it check default settings with one query rather than multiple making it more efficient.

This commit is contained in:
Mark Crane 2015-05-29 00:42:31 +00:00
parent 49ea23507c
commit 9de9ba1391
1 changed files with 51 additions and 20 deletions

View File

@ -101,32 +101,63 @@
$array[$x]['default_setting_value'] = '*97'; $array[$x]['default_setting_value'] = '*97';
$array[$x]['default_setting_enabled'] = 'false'; $array[$x]['default_setting_enabled'] = 'false';
$array[$x]['default_setting_description'] = ''; $array[$x]['default_setting_description'] = '';
$x++;
$array[$x]['default_setting_category'] = 'provision';
$array[$x]['default_setting_subcategory'] = 'line_sip_port';
$array[$x]['default_setting_name'] = 'numeric';
$array[$x]['default_setting_value'] = '5060';
$array[$x]['default_setting_enabled'] = 'true';
$array[$x]['default_setting_description'] = '';
$x++;
$array[$x]['default_setting_category'] = 'provision';
$array[$x]['default_setting_subcategory'] = 'line_sip_transport';
$array[$x]['default_setting_name'] = 'text';
$array[$x]['default_setting_value'] = 'tcp';
$array[$x]['default_setting_enabled'] = 'true';
$array[$x]['default_setting_description'] = '';
$x++;
$array[$x]['default_setting_category'] = 'provision';
$array[$x]['default_setting_subcategory'] = 'line_register_expires';
$array[$x]['default_setting_name'] = 'numeric';
$array[$x]['default_setting_value'] = '80';
$array[$x]['default_setting_enabled'] = 'false';
$array[$x]['default_setting_description'] = '';
//iterate and add each, if necessary //get an array of the default settings
foreach ($array as $index => $default_settings) { $sql = "select * from v_default_settings ";
$sql .= "where default_setting_category = 'provision' ";
$prep_statement = $db->prepare($sql);
$prep_statement->execute();
$default_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset ($prep_statement, $sql);
//add provision default settings //find the missing default settings
$sql = "select count(*) as num_rows from v_default_settings "; $x = 0;
$sql .= "where default_setting_category = 'provision' "; foreach ($array as $setting) {
$sql .= "and default_setting_subcategory = '".$default_settings['default_setting_subcategory']."' "; $found = false;
$prep_statement = $db->prepare($sql); $missing[$x] = $setting;
if ($prep_statement) { foreach ($default_settings as $row) {
$prep_statement->execute(); if (trim($row['default_setting_subcategory']) == trim($setting['default_setting_subcategory'])) {
$row = $prep_statement->fetch(PDO::FETCH_ASSOC); $found = true;
unset($prep_statement); //remove items from the array that were found
if ($row['num_rows'] == 0) { unset($missing[$x]);
$orm = new orm;
$orm->name('default_settings');
$orm->save($array[$index]);
$message = $orm->message;
//print_r($message);
} }
unset($row);
} }
$x++;
} }
//add the missing default settings
foreach ($missing as $row) {
//add the default settings
$orm = new orm;
$orm->name('default_settings');
$orm->save($row);
$message = $orm->message;
unset($orm);
//print_r($message);
}
unset($missing);
//move the dynamic provision variables that from v_vars table to v_default_settings //move the dynamic provision variables that from v_vars table to v_default_settings
if (count($_SESSION['provision']) == 0) { if (count($_SESSION['provision']) == 0) {
$sql = "select * from v_vars "; $sql = "select * from v_vars ";