瀏覽代碼

Login Message: Prevent re-enable message post Upgrade Schema.

Nate Jones 11 年之前
父節點
當前提交
aa593c5c33
共有 2 個文件被更改,包括 39 次插入8 次删除
  1. 37 7
      core/upgrade/app_defaults.php
  2. 2 1
      core/user_settings/user_dashboard.php

+ 37 - 7
core/upgrade/app_defaults.php

@@ -75,13 +75,7 @@ if (strlen($_SESSION['switch']['scripts']['dir']) > 0) {
 				}
 			}
 
-		//ensure the login message is set
-			$sql = "delete from v_default_settings ";
-			$sql .= "where default_setting_category = 'login' ";
-			$sql .= "and default_setting_subcategory = 'message' ";
-			$db->exec(check_sql($sql));
-			unset($sql);
-
+		//ensure the login message is set, if new message exists
 			$sql = "select count(*) as num_rows from v_default_settings ";
 			$sql .= "where default_setting_category = 'login' ";
 			$sql .= "and default_setting_subcategory = 'message' ";
@@ -91,6 +85,8 @@ if (strlen($_SESSION['switch']['scripts']['dir']) > 0) {
 				$prep_statement->execute();
 				$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
 				if ($row['num_rows'] == 0) {
+
+					// insert message
 					$sql = "insert into v_default_settings ";
 					$sql .= "(";
 					$sql .= "default_setting_uuid, ";
@@ -113,6 +109,40 @@ if (strlen($_SESSION['switch']['scripts']['dir']) > 0) {
 					$sql .= ")";
 					$db->exec(check_sql($sql));
 					unset($sql);
+
+				}
+				else {
+
+					// get current message value
+					$sql = "select default_setting_uuid, default_setting_value ";
+					$sql .= "from v_default_settings ";
+					$sql .= "where default_setting_category = 'login' ";
+					$sql .= "and default_setting_subcategory = 'message' ";
+					$sql .= "and default_setting_name = 'text' ";
+					$prep_statement = $db->prepare($sql);
+					if ($prep_statement) {
+						$prep_statement->execute();
+						$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+						if (count($result) > 0) {
+							foreach($result as $row) {
+								$current_default_setting_uuid = $row["default_setting_uuid"];
+								$current_default_setting_value = $row["default_setting_value"];
+								break;
+							}
+
+							// compare to message in language file, update and enable if different
+							$new_default_setting_value = str_replace("''", "'", $text['login-message_text']);
+							if ($current_default_setting_value != $new_default_setting_value) {
+								$sql = "update v_default_settings set ";
+								$sql .= "default_setting_value = '".$text['login-message_text']."', ";
+								$sql .= "default_setting_enabled = 'true' ";
+								$sql .= "where default_setting_uuid = '".$current_default_setting_uuid."' ";
+								$db->exec(check_sql($sql));
+								unset($sql);
+							}
+						}
+					}
+					unset($sql, $result);
 				}
 			}
 

+ 2 - 1
core/user_settings/user_dashboard.php

@@ -60,7 +60,8 @@
 		$sql .= "set default_setting_enabled = 'false' ";
 		$sql .= "where ";
 		$sql .= "default_setting_category = 'login' ";
-		$sql .= "and default_setting_subcategory = 'message'";
+		$sql .= "and default_setting_subcategory = 'message' ";
+		$sql .= "and default_setting_name = 'text' ";
 		$db->exec(check_sql($sql));
 		unset($sql);
 	}