فهرست منبع

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
Mafoo 9 سال پیش
والد
کامیت
7b608f4f4e
3فایلهای تغییر یافته به همراه82 افزوده شده و 59 حذف شده
  1. 5 4
      core/install/install.php
  2. 75 55
      themes/default/app_defaults.php
  3. 2 0
      themes/default/css.php

+ 5 - 4
core/install/install.php

@@ -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

+ 75 - 55
themes/default/app_defaults.php

@@ -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++;
+				}
+		
+			//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);
 				}
-			}
-			$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";
+		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);
 }

+ 2 - 0
themes/default/css.php

@@ -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";