Example #1
0
 /**
  * Инициализирует все данные в сессии.
  *
  * @param users $user инициализирванный объект users.
  */
 public function fillU($user)
 {
     if (!$user->uid) {
         $this->error(EXTERNAL_ERR_USER_NOTFOUND);
     }
     if ($user->is_banned) {
         $this->error(EXTERNAL_ERR_USER_BANNED);
     }
     if ($user->active != 't') {
         $this->error(EXTERNAL_ERR_USER_NOTACTIVE);
     }
     $data = get_object_vars($user);
     unset($user);
     require_once ABS_PATH . '/classes/sbr.php';
     require_once ABS_PATH . '/classes/sbr_meta.php';
     require_once ABS_PATH . '/classes/messages.php';
     require_once ABS_PATH . '/classes/account.php';
     $is_emp = is_emp($data['role']);
     $data['id'] = md5(self::MEM_GROUP . uniqid($data['uid']));
     $data['new_msgs'] = messages::GetNewMsgCount($data['uid']);
     $data['role'] = (int) $is_emp;
     $data['is_pro'] = $this->pg2ex($data['is_pro'], EXTERNAL_DT_BOOL);
     $sbr_cls = $is_emp ? 'sbr_emp' : 'sbr_frl';
     $sbr = new $sbr_cls($data['uid'], $data['login']);
     $data['sbr_count'] = $sbr->getActivesCount();
     $data['new_sbr_events'] = sbr_meta::getNewEventCount($data['uid']);
     $account = new account();
     $account->GetInfo($data['uid']);
     $data['sum'] = $account->sum;
     foreach ($this->public as $f => $v) {
         $this->{$f} = $data[$f];
     }
     $this->_uid = $data['uid'];
     $this->_last_updated = time();
 }
Example #2
0
 /**
  * возвращает подсказку для кнопки "Сообщения"
  * в виде массива ((int)count, (string)tip)
  * null - в случае ошибки
  * 
  * @param  string  $interface События какого интерфейса брать (старой СБР. или новой СБР) @todo Убрать когда закончатся старые СБР
  * @param boolean $ajax вызов функции ajax'ом
  */
 public static function getSbrTip($interface = 'new')
 {
     $uid = get_uid(0);
     if (!$uid) {
         return null;
     }
     $name_session = $interface == 'old' ? 'sbr_tip_old' : 'sbr_tip';
     $eventCount = sbr_meta::getNewEventCount($uid, true, $interface);
     //$messCount = sbr_meta::getNewMsgCount($uid, true);
     if ($eventCount === null) {
         if (isset($_SESSION[$name_session])) {
             $tip = $_SESSION[$name_session];
             unset($_SESSION[$name_session]);
             return $tip;
         }
         return null;
     }
     $totalCount = $eventCount;
     // + $messCount;
     if ((int) $totalCount === 0) {
         if (isset($_SESSION[$name_session])) {
             // Для того чтобы моргало хотя бы один раз если пользователь находится сразу на странице СБР и обновляет страницу
             $tip = $_SESSION[$name_session];
             unset($_SESSION[$name_session]);
             return $tip;
         }
         $tip = 'Список Безопасных сделок';
         $alert = false;
     } elseif ((int) $totalCount === 1) {
         $tip = 'Новое событие в «Безопасной Сделке»';
         $alert = true;
     } else {
         $tip = $totalCount . ' ' . ending($totalCount, 'новое событие', 'новых события', 'новых событий') . ' в ваших «Безопасных Сделках»';
         $alert = false;
     }
     return array('count' => $totalCount, 'tip' => $tip, 'alert' => $alert);
 }