diff --git a/pandora_console/include/lib/TacticalView/GeneralTacticalView.php b/pandora_console/include/lib/TacticalView/GeneralTacticalView.php index d61b748bca..4d06d5c5e2 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; @@ -163,17 +164,25 @@ 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! 👋'); + $flag_eastern_egg = $config['eastern_eggs_disabled']; + + if ((bool) $flag_eastern_egg === true) { + $message = $this->randomWelcomeMessage(); } else { - $message = __('Welcome back %s! 👋', $name); + $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( @@ -186,4 +195,99 @@ 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. + 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']; + + $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', $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]; + } + + }