/** * Инициализирует все данные в сессии. * * @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(); }
/** * возвращает подсказку для кнопки "Сообщения" * в виде массива ((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); }