update installer to use default theme (#1626)

added support to allow install to use the theme's default settings and
reduce the number of php errors during the installer due to missing
settings
This commit is contained in:
Mafoo 2016-06-08 14:31:45 +01:00 committed by FusionPBX
parent d663891bd8
commit 96d576fc7a
3 changed files with 83 additions and 60 deletions

View File

@ -32,10 +32,6 @@
//start a php session
session_start();
//set theme settings
$_SESSION['theme']['footer_color'] = '#cccccc';
$_SESSION['theme']['footer_background_color'] = '#ffffff';
//initialize variables we are going to use
$event_host = '';
$event_port = '';
@ -337,6 +333,7 @@
else {
echo "<p>Unkown install_step '$install_step'</p>\n";
}
echo "</div>\n";
//initialize some defaults so we can be 'logged in'
$_SESSION['username'] = 'install_enabled';
@ -350,6 +347,10 @@
//set a default template
$default_template = 'default';
$_SESSION['domain']['template']['name'] = $default_template;
$set_session_theme = 1;
$domains_processed = 1;
include "themes/$default_template/app_defaults.php";
unset($set_session_theme, $domains_processed);
$_SESSION['theme']['menu_brand_type']['text'] = "text";
//set the default template path

View File

@ -1381,65 +1381,85 @@ if ($domains_processed == 1) {
$x++;
//get an array of the default settings
$sql = "select * from v_default_settings ";
$sql .= "where default_setting_category = 'theme' ";
$prep_statement = $db->prepare($sql);
$prep_statement->execute();
$default_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset ($prep_statement, $sql);
//find the missing default settings
$i = 0;
foreach ($array as $setting) {
$found = false;
$missing[$i] = $setting;
foreach ($default_settings as $row) {
if (trim($row['default_setting_subcategory']) == trim($setting['default_setting_subcategory'])) {
$found = true;
//remove items from the array that were found
unset($missing[$i]);
if(!$set_session_theme) {
//get an array of the default settings
$sql = "select * from v_default_settings ";
$sql .= "where default_setting_category = 'theme' ";
$prep_statement = $db->prepare($sql);
$prep_statement->execute();
$default_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset ($prep_statement, $sql);
//find the missing default settings
$i = 0;
foreach ($array as $setting) {
$found = false;
$missing[$i] = $setting;
foreach ($default_settings as $row) {
if (trim($row['default_setting_subcategory']) == trim($setting['default_setting_subcategory'])) {
$found = true;
//remove items from the array that were found
unset($missing[$i]);
}
}
$i++;
}
}
$i++;
}
//get the missing count
$i = 0;
foreach ($missing as $row) { $i++; }
$missing_count = $i;
//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 ($missing_count != $i) {
$sql .= ",\n";
//get the missing count
$i = 0;
foreach ($missing as $row) { $i++; }
$missing_count = $i;
//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 ($missing_count != $i) {
$sql .= ",\n";
}
$i++;
}
$db->exec(check_sql($sql));
unset($missing);
}
}
else {
//populate the default settings into the session theme
$_SESSION['theme'] = Array();
foreach ($array as $index => $default_settings) {
$sub_category = $array[$index]['default_setting_subcategory'];
$name = $array[$index]['default_setting_name'];
if($array[$index]['default_setting_enabled'] == 'true'){
if($name == 'array'){
$_SESSION['theme'][$sub_category][$array[$index]['default_setting_order']] = $array[$index]['default_setting_value'];
}
else {
$_SESSION['theme'][$sub_category][$name] = $array[$index]['default_setting_value'];
}
}else{
$_SESSION['theme'][$sub_category][$name] = '';
}
}
$i++;
}
$db->exec(check_sql($sql));
unset($missing);
}
//unset the array variable
unset($array);
}

View File

@ -869,6 +869,7 @@ $default_login = ($_REQUEST['login'] == 'default') ? true : false;
box-shadow: none;
<?php
/* then set */
$shadow_inset = $shadow_outset = '';
if ($_SESSION['theme']['input_shadow_inner_color_focus']['text'] != '') {
$inner_color = $_SESSION['theme']['input_shadow_inner_color_focus']['text'];
$shadow_inset = "0 0 3px ".$inner_color." inset";
@ -944,6 +945,7 @@ $default_login = ($_REQUEST['login'] == 'default') ? true : false;
box-shadow: none;
<?php
/* then set */
$shadow_inset = $shadow_outset = '';
if ($_SESSION['theme']['login_input_shadow_inner_color_focus']['text'] != '') {
$inner_color = $_SESSION['theme']['login_input_shadow_inner_color_focus']['text'];
$shadow_inset = "0 0 3px ".$inner_color." inset";