public function getIpNotifications() { $systemInfo = Model::getIpNotifications(); if (isset($_REQUEST['afterLogin'])) { // Request after login. if ($systemInfo == '') { $_SESSION['ipSystem']['show_system_message'] = false; // Don't display system alert at the top. return null; } else { $md5 = \Ip\ServiceLocator::storage()->get('Ip', 'lastSystemMessageShown'); if ($systemInfo && (!$md5 || $md5 != md5(serialize($systemInfo)))) { // We have a new message. $newMessage = false; foreach (json_decode($systemInfo) as $infoValue) { if ($infoValue->type != 'status') { $newMessage = true; } } $_SESSION['ipSystem']['show_system_message'] = $newMessage; // Display system alert. } else { // This message was already seen. $_SESSION['ipSystem']['show_system_message'] = false; // Don't display system alert at the top. return null; } } } else { // administrator/system tab. \Ip\ServiceLocator::storage()->set('Ip', 'lastSystemMessageShown', md5(serialize($systemInfo))); $_SESSION['ipSystem']['show_system_message'] = false; // Don't display system alert at the top. } return new \Ip\Response\Json($systemInfo); }