From b863aef04debf67fb8bbad7b4d54633987426b81 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Mon, 20 Nov 2023 13:58:29 +0100 Subject: [PATCH 1/3] #12198 added dynamic welcome --- .../lib/TacticalView/GeneralTacticalView.php | 104 +++++++++++++++--- 1 file changed, 91 insertions(+), 13 deletions(-) diff --git a/pandora_console/include/lib/TacticalView/GeneralTacticalView.php b/pandora_console/include/lib/TacticalView/GeneralTacticalView.php index d61b748bca..d25191f2c7 100644 --- a/pandora_console/include/lib/TacticalView/GeneralTacticalView.php +++ b/pandora_console/include/lib/TacticalView/GeneralTacticalView.php @@ -22,6 +22,7 @@ namespace PandoraFMS\TacticalView; +use DateTimeZone; use Exception; use PandoraFMS\View; @@ -162,19 +163,7 @@ class GeneralTacticalView */ private function getWelcomeMessage():string { - global $config; - $user = users_get_user_by_id($config['id_user']); - if (is_array($user) === true && count($user) > 0) { - $name = $user['fullname']; - } else { - $name = ''; - } - - if (empty($name) === true) { - $message = __('Welcome back! 👋'); - } else { - $message = __('Welcome back %s! 👋', $name); - } + $message = $this->randomWelcomeMessage(); return html_print_div( [ @@ -186,4 +175,93 @@ class GeneralTacticalView } + /** + * Return random welcome message. + * + * @return string + */ + private function randomWelcomeMessage() : string + { + global $config; + $welcome = []; + + $user = users_get_user_by_id($config['id_user']); + if (is_array($user) === true && count($user) > 0) { + $name = $user['fullname']; + } else { + $name = $user['firstname']; + } + + // Config user time zone. + date_default_timezone_set($user['timezone']); + $date_zone = new DateTimeZone($user['timezone']); + $zone_location = $date_zone->getLocation(); + $latitude = $zone_location['latitude']; + + $emojiOptions = [ + 'have_good_day' => __('Have a good day %s ✌', $name), + 'welcome_back' => __('Welcome back! %s 👋', $name), + 'good_morning' => __('Good morning, %s! ☕', $name), + 'good_evening' => __('Good evening, %s 🌇', $name), + 'good_night' => __('Good night, %s 🌕', $name), + 'happy_summer' => __('Happy summer, %s 🌞', $name), + 'happy_winter' => __('Happy winter, %s ⛄', $name), + 'happy_autumn' => __('Happy autumn, %s 🍂', $name), + 'happy_spring' => __('Happy spring, %s 🌻', $name), + + ]; + + // Welcome back. + $user_last_connect = $user['last_connect']; + $user_last_day = date('d', strtotime($user_last_connect)); + $day = date('d', strtotime('now')); + if ($user_last_day === $day) { + if (empty($name) === true) { + $welcome[] = $emojiOptions['welcome_back']; + } else { + $welcome[] = $emojiOptions['welcome_back']; + } + } + + // Morning, evening, night. + $date = date('H'); + if ($date < 13) { + if (empty($name) === true) { + $welcome[] = $emojiOptions['good_morning']; + } else { + $welcome[] = $emojiOptions['good_morning']; + } + } else if ($date < 18) { + if (empty($name) === true) { + $welcome[] = $emojiOptions['good_evening']; + } else { + $welcome[] = $emojiOptions['good_evening']; + } + } else { + if (empty($name) === true) { + $welcome[] = $emojiOptions['good_night']; + } else { + $welcome[] = $emojiOptions['good_night']; + } + } + + // Seasons. + $mes = date('m'); + if (($latitude > 0 && ($mes >= 3 && $mes <= 5)) || ($latitude < 0 && ($mes >= 9 && $mes <= 11))) { + $welcome[] = $emojiOptions['happy_spring']; + } else if (($latitude > 0 && ($mes >= 6 && $mes <= 8)) || ($latitude < 0 && ($mes >= 12 || $mes <= 2))) { + $welcome[] = $emojiOptions['happy_summer']; + } else if (($latitude > 0 && ($mes >= 9 && $mes <= 11)) || ($latitude < 0 && ($mes >= 3 && $mes <= 5))) { + $welcome[] = $emojiOptions['happy_autumn']; + } else { + $welcome[] = $emojiOptions['happy_winter']; + } + + $length = count($welcome); + $possition = rand(0, ($length - 1)); + + return $welcome[$possition]; + } + + } From 38d23001cf85938ac69188acd6338fede0f74b6b Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Wed, 22 Nov 2023 09:28:56 +0100 Subject: [PATCH 2/3] #12198 fixed timezone of user or server --- .../include/lib/TacticalView/GeneralTacticalView.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pandora_console/include/lib/TacticalView/GeneralTacticalView.php b/pandora_console/include/lib/TacticalView/GeneralTacticalView.php index d25191f2c7..d0f8ecaad6 100644 --- a/pandora_console/include/lib/TacticalView/GeneralTacticalView.php +++ b/pandora_console/include/lib/TacticalView/GeneralTacticalView.php @@ -193,8 +193,14 @@ class GeneralTacticalView } // Config user time zone. - date_default_timezone_set($user['timezone']); - $date_zone = new DateTimeZone($user['timezone']); + if (!empty($user['timezone'])) { + $timezone = $user['timezone']; + } else { + $timezone = date_default_timezone_get(); + } + + date_default_timezone_set($timezone); + $date_zone = new DateTimeZone($timezone); $zone_location = $date_zone->getLocation(); $latitude = $zone_location['latitude']; @@ -213,7 +219,7 @@ class GeneralTacticalView // Welcome back. $user_last_connect = $user['last_connect']; - $user_last_day = date('d', strtotime($user_last_connect)); + $user_last_day = date('d', $user_last_connect); $day = date('d', strtotime('now')); if ($user_last_day === $day) { if (empty($name) === true) { From 9f08b9907c9eeb5c141617385bbcef77cd483508 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Fri, 24 Nov 2023 13:37:00 +0100 Subject: [PATCH 3/3] #12198 Added setup flag for easter egg --- .../lib/TacticalView/GeneralTacticalView.php | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/lib/TacticalView/GeneralTacticalView.php b/pandora_console/include/lib/TacticalView/GeneralTacticalView.php index d0f8ecaad6..4d06d5c5e2 100644 --- a/pandora_console/include/lib/TacticalView/GeneralTacticalView.php +++ b/pandora_console/include/lib/TacticalView/GeneralTacticalView.php @@ -163,7 +163,27 @@ class GeneralTacticalView */ private function getWelcomeMessage():string { - $message = $this->randomWelcomeMessage(); + global $config; + + $flag_eastern_egg = $config['eastern_eggs_disabled']; + + if ((bool) $flag_eastern_egg === true) { + $message = $this->randomWelcomeMessage(); + } else { + $user = users_get_user_by_id($config['id_user']); + if (is_array($user) === true && count($user) > 0) { + $name = $user['fullname']; + } else { + $name = ''; + $name = $user['firstname']; + } + + if (empty($name) === true) { + $message = __('Welcome back! 👋'); + } else { + $message = __('Welcome back %s! 👋', $name); + } + } return html_print_div( [