/** * Возвращает полную информацию о пользователе включая ранг, картинку ранга, статус онлайн, имя файла аватара для вывода. Вся информация кэшируется. * @param $user_id * @return array|bool */ function GetUserInfo($user_id) { $system_users_cache = GetUsers(); if (isset($system_users_cache[$user_id])) { $usr = $system_users_cache[$user_id]; // Аватар $usr['avatar_file'] = GetUserAvatar($user_id); $usr['avatar_file_small'] = GetSmallUserAvatar($user_id, $usr['avatar_file']); $usr['avatar_file_smallest'] = GetSmallestUserAvatar($user_id, $usr['avatar_file']); // Ранг $rank = GetUserRank($usr['points'], $usr['type'], $usr['access']); $usr['rank_name'] = $rank[0]; $usr['rank_image'] = $rank[1]; // Статус онлайн $online = System::user()->Online(); $usr['online'] = isset($online[$user_id]); // Индивидуальные настройки if (!is_array($usr['data'])) { if ($usr['data'] == '') { $usr['data'] = array(); } else { $system_users_cache[$user_id]['data'] = unserialize($usr['data']); $usr['data'] = $system_users_cache[$user_id]['data']; } } return $usr; } else { return false; } }
private function RenderPost($ObjectId, &$Posts, $BlockName, $Level) { if (count($Posts) == 0) { return false; } foreach ($Posts as $post) { $post_id = SafeDB($post['id'], 11, int); $user_id = SafeDB($post['user_id'], 11, int); $vars = array(); $vars['level_padding'] = Posts::$LevelMargin * $Level; $vars['post_message'] = HtmlChars($post['post_message']); SmiliesReplace($vars['post_message']); $vars['post_message'] = nl2br($vars['post_message']); $vars['post_message'] = BbCodePrepare($vars['post_message']); if ($user_id != 0) { // Зарегистрированный пользователь $userinfo = GetUserInfo($user_id); $vars['user_link'] = Ufu("index.php?name=user&op=userinfo&user={$user_id}", 'user/{user}/info/'); $vars['user_name'] = '<a href="' . $vars['user_link'] . '">' . $userinfo['name'] . '</a>'; $vars['post_date'] = SafeDB($post['post_date'], 11, int); if ($userinfo['hideemail'] == '0') { $vars['user_email'] = AntispamEmail($userinfo['email']); } else { $vars['user_email'] = ''; } $vars['user_homepage'] = SafeDB($userinfo['url'], 255, str); $vars['user_homepage_url'] = UrlRender(SafeDB($post['user_homepage'], 255, str)); if ($userinfo['online']) { $vars['user_status'] = 'Сейчас на сайте.'; } else { $vars['user_status'] = ''; } $vars['user_rank_image'] = $userinfo['rank_image']; $vars['user_rank_name'] = $userinfo['rank_name']; $vars['user_avatar'] = $userinfo['avatar_file']; $vars['user_avatar_small'] = $userinfo['avatar_file_small']; $vars['user_avatar_smallest'] = $userinfo['avatar_file_smallest']; $vars['user_regdate'] = TimeRender($userinfo['regdate'], false, false); } else { $vars['user_name'] = SafeDB($post['user_name'], 255, str); $vars['post_date'] = SafeDB($post['post_date'], 11, int); if ($post['user_email'] != '' && $post['user_hideemail'] != 0) { $vars['user_email'] = AntispamEmail(SafeDB($post['user_email'], 255, str)); } else { $vars['user_email'] = ''; } if ($post['user_homepage'] != '') { $vars['user_homepage'] = SafeDB($post['user_homepage'], 255, str); $vars['user_homepage_url'] = UrlRender(SafeDB($post['user_homepage'], 255, str)); } else { $vars['user_homepage'] = ''; $vars['user_homepage_url'] = ''; } $vars['user_status'] = ''; $vars['user_rank_image'] = ''; $vars['user_rank_name'] = ''; $vars['user_avatar'] = GetPersonalAvatar(0); $vars['user_avatar_small'] = GetSmallUserAvatar(0, $vars['user_avatar']); $vars['user_avatar_smallest'] = GetSmallestUserAvatar(0, $vars['user_avatar']); $vars['user_regdate'] = ''; } $vars['user_id'] = SafeDB($post['user_id'], 11, int); $vars['post_id'] = $post_id; $vars['user_ip'] = SafeDB($post['user_ip'], 19, str); $vars['object_id'] = $ObjectId; $vars['parent_id'] = SafeDB($post['post_parent_id'], 11, int); if ($vars['user_homepage'] != '') { $vars['user_homepage'] = '<a href="' . $vars['user_homepage_url'] . '" target="_blank">' . $vars['user_homepage'] . '</a>'; } else { $vars['user_homepage'] = ''; } $vars['post_date'] = TimeRender($vars['post_date']); if (System::user()->Auth) { $vars['editing'] = System::user()->Get('u_id') == $user_id || System::user()->isAdmin(); } else { $vars['editing'] = $user_id == '0' && $vars['user_ip'] == getip(); } $vars['answers'] = $this->Answers != '0' || System::user()->isAdmin(); if (!System::user()->Auth && !$this->GuestPost) { $vars['answers'] = false; } if (!$this->AlloyComments) { $vars['answers'] = false; } $vars['no_answers'] = !$vars['answers']; $back = SaveRefererUrl(); $vars['edit_url'] = $this->EditPageUrl . '&post_id=' . $post_id . '&back=' . $back; $vars['delete_url'] = $this->DeletePageUrl . '&post_id=' . $post_id . '&back=' . $back; $vars['parent_post_url'] = $_SERVER['REQUEST_URI'] . '#post_' . SafeDB($post['post_parent_id'], 11, int); $vars['post_url'] = $_SERVER['REQUEST_URI'] . '#post_' . $post_id; System::site()->AddSubBlock($BlockName, true, $vars, array(), $this->PostTemplate); if (isset($this->PostsTree[$post_id])) { if ($this->MaxTreeLevel > $Level) { $newLevel = $Level + 1; } else { $newLevel = $Level; } $this->RenderPost($ObjectId, $this->PostsTree[$post_id], $BlockName, $newLevel); } } return true; }
function AdminsMain() { $atypes = System::database()->Select('usertypes', ''); foreach ($atypes as $type) { $types[SafeDB($type['id'], 11, int)] = array('<span style="color: ' . SafeDB($type['color'], 9, str) . ';">' . SafeDB($type['name'], 255, str) . '</span>', SafeDB($type['system'], 1, bool), $type['image'] != '' ? '<img src="' . System::config('general/ranks_dir') . SafeDB($type['image'], 255, str) . '"><br>' : ''); } $admins = System::database()->Select('users', "`type`='1'"); //Подсчитываем количество главных администраторов $system = 0; for ($i = 0, $c = count($admins); $i < $c; $i++) { if ($types[$admins[$i]['access']][1]) { $system++; } } $text = '<table cellspacing="0" cellpadding="0" class="cfgtable"><tr><th> </th><th>Имя</th><th>E-mail</th><th>Группа</th><th>Посл. посещение</th><th>Посещений</th><th>Функции</th></tr>'; foreach ($admins as $adm) { $id = SafeDB($adm['id'], 11, int); $funcs = ''; $funcs .= System::admin()->SpeedButton('Редактировать', ADMIN_FILE . '?exe=admins&a=editadmin&id=' . $id, 'images/admin/edit.png'); if ($system > 1 || !$types[$adm['access']][1]) { $funcs .= System::admin()->SpeedButton('Удалить или перевести в пользователи', ADMIN_FILE . '?exe=admins&a=deladmin&id=' . $id, 'images/admin/delete.png'); } $text .= '<tr> <td><img src="' . GetSmallestUserAvatar($id) . '"></td> <td><b>' . System::admin()->Link(SafeDB($adm['name'], 50, str), ADMIN_FILE . '?exe=admins&a=editadmin&id=' . $id) . '</b></td> <td>' . PrintEmail($adm['email']) . '</td> <td>' . $types[$adm['access']][2] . $types[$adm['access']][0] . '</td> <td>' . TimeRender($adm['lastvisit']) . '</td> <td>' . SafeDB($adm['visits'], 11, int) . '</td> <td>' . $funcs . '</td> </tr>'; } $text .= '</table>'; AddTextBox('Администраторы сайта (' . count($admins) . ')', $text); }
function IndexUserlist() { System::site()->SetTitle('Список пользователей'); System::site()->BreadCrumbAdd('Список пользователей'); $page = 0; if (isset($_GET['page'])) { $page = SafeEnv($_GET['page'], 11, int); } else { $page = 1; } $users = System::database()->Select('users', "`active`='1'"); SortArray($users, 'points', true); // regdate SortArray($users, 'type', false); // type $num = System::config('user/users_on_page'); $navigation = new Navigation($page); $navigation->FrendlyUrl = System::site()->Ufu; $navigation->GenNavigationMenu($users, $num, Ufu('index.php?name=user&op=userslist', 'user/users/page{page}/', true)); System::site()->AddTemplatedBox('Список пользователей', 'module/user_list.html'); System::site()->AddBlock('userlist_th', true, false, 'title'); System::site()->Blocks['userlist_th']['vars'] = array('name' => 'Имя', 'email' => 'E-mail', 'date' => 'Дата регистрации', 'last_visit' => 'Посл. посещение', 'last' => 'Посл. посещение', 'rank' => 'Ранг/статус'); System::site()->AddBlock('userlist', true, true, 'user'); foreach ($users as $usr) { $vars = array(); $rank_stat = GetUserRank($usr['points'], $usr['type'], $usr['access']); $rank_stat = $rank_stat[0]; $vars['avatar'] = GetUserAvatar($usr['id']); $vars['avatar_small'] = GetSmallUserAvatar($usr['id'], $vars['avatar']); $vars['avatar_smallest'] = GetSmallestUserAvatar($usr['id'], $vars['avatar']); $vars['user_id'] = SafeDB($usr['id'], 11, int); $vars['url'] = Ufu('index.php?name=user&op=userinfo&user='******'id'], 11, int), 'user/{user}/info/'); $vars['name'] = SafeDB($usr['name'], 50, str); if ($usr['hideemail'] == '1') { $vars['email'] = 'Скрывается'; } else { $vars['email'] = SafeDB($usr['email'], 50, str); } $vars['date'] = TimeRender($usr['regdate'], true); $vars['lastdate'] = TimeRender($usr['lastvisit'], true); $vars['rank'] = $rank_stat; System::site()->AddSubBlock('userlist', true, $vars); } }
public function UpdateAvatarData($user_id) { $avatar = GetUserAvatar($user_id); $this->Def('u_avatar', $avatar); $this->Def('u_avatar_small', GetSmallUserAvatar($user_id, $avatar)); $this->Def('u_avatar_smallest', GetSmallestUserAvatar($user_id, $avatar)); }