public static function init_warnings($remainder_user_id) { global $section; // проверям нет ли граничения на показ оповещений: // - проверяем какая страница ОС открыта if ($section == "planner") { self::$make_loading = FALSE; } if ($section == "agreement_editor") { self::$make_loading = FALSE; } // При загрузке страницы скрипт проверяет на существование $_SESSION['warnings']['last_update'], если // такой переменной нет или она есть и time() больше или равно $_SESSION['warnings']['last_update'] + 60*60 // (значит прошел час с момента последнего обновления данных в $_SESSION['warnings']) скрипт запускает // Planner::check() и Planner::load_session() чтобы создать либо обновить данные в $_SESSION['warnings'] // данная схема позволяет через каждый час выдавать менеджеру оповещения по новой, на основе обновленных // данных которые будут учитывать его действия в ответ на предупреждения, в тоже время все данные о состояниях // окон не сохраняются что позволяет заново развернуть все свернутые и закрытые окна если необходимость в // оповещении по ним осталась актуальной if (self::$make_loading) { if (!(!empty($_SESSION['warnings']['last_update']) && time() < (int) $_SESSION['warnings']['last_update'] + self::$update_interval)) { // проверяем нет ли полного ограничения на показ оповещений по id менеджера // если нет собераем оповещения if (!in_array($remainder_user_id, self::$full_output_limit_for_id)) { self::check($remainder_user_id); } // если пользователь является лицом контролирующим одобрения для событий собераем оповещения о // событиях ждущих одобрения if (in_array($remainder_user_id, self::$controllers_ids)) { self::check_who_needs_approval($remainder_user_id); } self::load_session(); $_SESSION['warnings']['last_update'] = time(); } // проверяем $_SESSION['warnings']['warnings'] на существование и на наличие данных, если его нет указываем что отображать нечего if (!(!empty($_SESSION['warnings']['warnings']) && count($_SESSION['warnings']['warnings']) > 0)) { self::$make_loading = FALSE; } } self::$warnings_container = '<div id="dialog_window_minimized_container" data-loading="' . (int) self::$make_loading . '" data-pause_time="' . self::$pause_time . '" data-update_interval="' . self::$update_interval . '"></div>'; }