diff --git a/core/upgrade/app_defaults.php b/core/upgrade/app_defaults.php index 2891c311ff..a963764937 100644 --- a/core/upgrade/app_defaults.php +++ b/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); } } diff --git a/core/user_settings/user_dashboard.php b/core/user_settings/user_dashboard.php index 1be06f754c..68c5e61def 100644 --- a/core/user_settings/user_dashboard.php +++ b/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); }