Exemple #1
0
 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>';
 }