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; }
/** * Генерирует форму редактирования пользователя в админ-панели. * * @param $save_link Ссылка на обработчик формы (имя модуля и параметр action) * @param string $a Добавление или редавтирование пользователя (edit or add) * @param int $id Идентификатор пользователя * @param bool $isadmin Редактирование администратора (влияет на выборку и отключает активацию по email) * @param bool $EditProfile Редактирование своего профиля администратором (не может изменить свой статус если не системный администратор) * @return */ function AdminUserEditor($save_link, $a = 'add', $id = '0', $isadmin = false) { $active = array(false, false, false); $SystemAdmin = System::user()->isSuperUser(); $edit = $a == 'edit'; $editProfile = $edit && !$SystemAdmin && $id == System::user()->Get('u_id'); // Администратор редактирует свой профиль $editStatus = false; // Разрешено редактирование статуса $editType = false; // Разрешено редавтировать тип пользователя // Загружаем данные пользователя из БД if ($edit) { $user = System::database()->SelectOne('users', "`id`='{$id}'" . ($isadmin ? " and `type`='1'" : " and `type`='2'")); if (!$user) { AddTextBox('Ошибка', '<p align="center">Пользователь не найден, либо у вас не достаточно прав для редактирования администраторов.</p>'); return; } } // Устатанавливаем ограничения доступа if ($isadmin) { // Редатируем администратора if ($SystemAdmin) { // Только системные администаторы могут редактировать статус и тип администраторов if (!(groupIsSystem(SafeEnv($user['access'], 11, int)) && GetSystemAdminsCount() <= 1)) { // Если он не системный или системных больше 1 $editStatus = true; } $editType = $editStatus; } } else { // Если пользователь $editStatus = true; // Все администраторы с доступом могут редактировать статус пользователя $editType = $SystemAdmin; // Только системные администраторы могут создавать администраторов } if ($editType) { $user_types_db = System::database()->Select('usertypes'); $types = array('member' => array('member', 'Пользователь', false)); foreach ($user_types_db as $type) { $types[$type['id']] = array(SafeDB($type['id'], 11, int), SafeDB($type['name'], 255, str), false); } } if ($edit) { $login = SafeDB($user['login'], 30, str); $mail = SafeDB($user['email'], 50, str); $hideemail = $user['hideemail'] == 1 ? true : false; $snews = $user['servernews'] == 1 ? true : false; $name = SafeDB($user['name'], 50, str); $tname = SafeDB($user['truename'], 250, str); $age = SafeDB($user['age'], 11, str); $city = SafeDB($user['city'], 100, str); $url = SafeDB($user['url'], 250, str); $icq = SafeDB($user['icq'], 15, str); $gmt = SafeDB($user['timezone'], 255, str); $about = SafeDB($user['about'], 0, str); $avatar = SafeDB($user['avatar'], 250, str); $apersonal = SafeDB($user['a_personal'], 1, int); if ($editStatus) { if ($user['active'] == '1') { $active[0] = true; } elseif ($user['active'] == '0' && $user['activate'] == '') { $active[1] = true; } elseif ($user['active'] == '0' && $user['activate'] != '') { $active[2] = true; } } if ($editType) { if ($user['type'] == '1') { $types[$user['access']][2] = true; } else { $types['member'][2] = true; //пользователь } } $caption = 'Сохранить'; if ($isadmin) { if ($editProfile) { $title = 'Редактирование профиля'; } else { $title = 'Редактирование администратора'; } } else { $title = 'Редактирование пользователя'; } } else { $login = ''; $mail = ''; $snews = false; $hideemail = false; $name = ''; $tname = ''; $age = ''; $city = ''; $url = ''; $icq = ''; $gmt = System::config('general/default_timezone'); $about = ''; $avatar = ''; $apersonal = '0'; if ($editStatus) { $active[0] = true; } if ($editType) { $types['member'][2] = true; } $caption = 'Добавить'; $title = 'Добавить пользователя'; } FormRow('Логин', System::site()->Edit('login', $login, false, 'style="width:400px;" class="autofocus"')); FormRow('Пароль', System::site()->Edit('pass', '', true, 'style="width:400px;"')); FormRow('Повторите пароль<br /><small>(для проверки)</small>', System::site()->Edit('rpass', '', true, 'style="width:400px;"')); FormRow('E-mail', System::site()->Edit('email', $mail, false, 'style="width:300px;"') . ' <label for="hideemail">Скрыть</label> ' . System::site()->Check('hideemail', '1', $hideemail, 'id="hideemail"')); FormRow('<label for="snews">Рассылка</label>', System::site()->Check('snews', '1', $snews, 'id="snews"')); FormRow('Ник', System::site()->Edit('nikname', $name, false, 'style="width:400px;"')); FormRow('Настоящее имя', System::site()->Edit('realname', $tname, false, 'style="width:400px;"')); FormRow('Возраст', System::site()->Edit('age', $age, false, 'style="width:400px;"')); FormRow('Город', System::site()->Edit('city', $city, false, 'style="width:400px;"')); FormRow('Сайт', System::site()->Edit('homepage', $url, false, 'style="width:400px;"')); FormRow('ICQ', System::site()->Edit('icq', $icq, false, 'style="width:400px;"')); $gmt = GetGmtData($gmt); FormRow('Часовой пояс', System::site()->Select('gmt', $gmt, false, 'style="width:400px;"')); FormRow('О себе', System::site()->TextArea('about', $about, 'style="width:400px; height:200px;"')); $avatars = GetGalleryAvatarsData($avatar, $apersonal); if ($apersonal == '1') { $selected = GetPersonalAvatar($id); } else { $selected = GetGalleryAvatar($avatars[1]); } System::site()->AddJS(' ShowAvatar = function(){ if(document.userform.avatar.value==\'\'){ document.userform.avatarview.src = \'' . (System::config('user/secure_avatar_upload') ? 'index.php?name=plugins&p=avatars_render&user='******'general/personal_avatars_dir') . $avatar) . '\'; }else{ document.userform.avatarview.src = \'' . (System::config('user/secure_avatar_upload') ? 'index.php?name=plugins&p=avatars_render&aname=' : System::config('general/avatars_dir')) . '\'+document.userform.avatar.value; } }'); FormRow('Аватар', System::site()->Select('avatar', $avatars[0], false, 'onchange="ShowAvatar();"')); FormRow('', '<img id="avatarview" src="' . $selected . '" border="0">'); FormRow('Загрузить аватар', System::site()->FFile('upavatar')); if ($editStatus) { FormRow('Активация', System::site()->Radio('activate', 'auto', $active[0]) . 'Активировать' . System::site()->Radio('activate', 'manual', $active[1]) . 'Не активировать' . (!$isadmin ? System::site()->Radio('activate', 'mail', $active[2]) . 'По E-mail' : '')); } if ($editType) { $user_types = array(); foreach ($types as $type) { System::site()->DataAdd($user_types, $type[0], $type[1], $type[2]); } FormRow('Статус', System::site()->Select('status', $user_types)); } TAddSubTitle($title); AddCenterBox($title); AddForm('<form name="userform" action="' . ADMIN_FILE . '?exe=' . $save_link . '&id=' . $id . '" method="post" enctype="multipart/form-data">', System::site()->Button('Отмена', 'onclick="history.go(-1);"') . System::site()->Submit($caption)); }
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } $user_id = null; $avatar = ''; if (isset($_GET['user'])) { // Аватар из профиля пользователя $user_id = SafeEnv($_GET['user'], 11, int); $avatar = GetPersonalAvatar($user_id, true); } elseif (isset($_GET['aname'])) { // Передано имя файла аватара в папке с аватарами $avatar = GetGalleryAvatar($_GET['aname']); } else { System::log('Plugin::render_avatar Скрипт вызван без параметров.'); } if ($avatar == '' || !is_file($avatar)) { $avatar = GetGalleryAvatar('noavatar.gif'); } // Создаём уменьшенную копию аватара, если нужно и отправляем пользователю if (isset($_GET['size'])) { switch ($_GET['size']) { case 'small': $avatar_64 = System::config('general/personal_avatars_dir') . GetFileName($avatar, true) . '_64x64' . GetFileExt($avatar); if (is_file($avatar_64)) {
function IndexForumShowTopic($one_post = false) { global $forum_lang; $forums_tree = ForumTree::Instance(); // Вспомогательные переменные $user_auth = System::user()->Auth; $user_id = System::user()->Get('u_id'); $user_admin = System::user()->isAdmin(); $time = time(); $max_word_length = System::config('forum/max_word_length'); if (isset($_GET['topic'])) { $topic_id = SafeEnv($_GET['topic'], 11, int); } else { System::site()->AddTextBox($forum_lang['error'], $forum_lang['error_no_topic']); return; } // Берём тему и проверяем на доступ System::database()->Select('forum_topics', "`id`='" . $topic_id . "'"); if (System::database()->NumRows() == 0) { System::site()->AddTextBox($forum_lang['error'], $forum_lang['error_no_topic']); return; } $topic = System::database()->FetchRow(); if (!$user_admin && $topic['starter_id'] == $user_id && $topic['delete'] == '1') { // Тема удалена в корзину (только админы видят корзину и автор темы) System::site()->AddTextBox($forum_lang['topic_basket_current_post'], '<p align="center">' . $forum_lang['topic_basket_post'] . '.<br><input type="button" value="' . $forum_lang['back'] . '"onclick="history.back();"></p>'); return; } // Проверяем доступ к форуму $forum_id = SafeEnv($topic['forum_id'], 11, int); $forum_config = $forums_tree->GetForumConfigRecursive($forum_id); // Параметры доступа на форум if (!$forum_config['access']) { System::site()->AddTextBox($forum_lang['error'], $forum_config['access_reason']); // Нет доступа в этот форум return; } // $forum_config['add_post'] - право добавлять сообщения // $forum_config['add_post_reason'] - причина запрета добавления сообщений // $forum_config['no_link_guest'] - скрывать ссылки от гостей // $forum_config['new_message_email'] - разрешить подписку на новые сообщения // Определяем следующую и предыдущую темы $topics_data = ForumCacheGetTopics(); $topics_data = $topics_data[$forum_id]; $prev_topic = null; $next_topic = null; $find = false; foreach ($topics_data as $topic_row) { if ($topic_row['id'] == $topic_id) { $find = true; continue; } if ($find) { $next_topic = $topic_row; break; } $prev_topic = $topic_row; } // Параметры постраничной навигации if (isset($_GET['page'])) { $page = SafeEnv($_GET['page'], 11, int); } else { $page = 1; } if (isset($_GET['view']) && $_GET['view'] == 'lastpost') { $lastpost = true; } else { $lastpost = false; } $posts_on_page = System::config('forum/posts_on_page'); // Обновляем метку о прочтении темы, если пользователь авторизован if ($user_auth) { System::database()->Delete('forum_topics_read', "`tid`='{$topic_id}' and `mid`='{$user_id}'"); System::database()->Insert('forum_topics_read', "'{$user_id}','{$topic_id}','{$time}'"); } // Объект онлайн $online = ForumOnline::Instance($forum_id, $topic_id); // Устанавливаем заголовок страницы $topic_title = SafeDB($topic['title'], 255, str); System::site()->SetTitle($topic_title . ($page > 1 ? ' - Страница ' . $page : '')); // Хлебные крошки $forums_tree->BreadCrumbsF($forum_id); System::site()->BreadCrumbAdd(SafeDB($topic['title'], 255, str)); // Добавляем корзину (если тема удалена в корзину) if ($topic['delete'] == '1') { $basket_topics = ForumBasketGetData('forum_basket_topics'); if (isset($basket_topics[$topic['id']])) { System::site()->AddTextBox($forum_lang['topic_basket_red'], ForumBasketRender($topic['id'], $topic['title'], $basket_topics, true)); } } // Увеличиваем счётчик просмотров System::database()->Update('forum_topics', "`hits`='" . (SafeDB($topic['hits'], 11, int) + 1) . "'", "`id`='" . $topic_id . "'"); // Инициализируем постраничную навигацию $navigation = new Navigation($page); $navigation->FrendlyUrl = System::config('general/ufu'); // Загружаем сообщения из базы данных $basket_where = ''; // Администратор (подготавливаем запрос выборки т.к. нужно знать сколько всего сообщений для постр. навигации) if ($user_auth) { if (!$user_admin) { $basket_where = " and (`delete`='0' or `user_id`='{$user_id}')"; // Пользователь } } else { $basket_where = " and `delete`='0'"; // Гость } $posts = System::database()->Select('forum_posts', ($one_post !== false ? "`id`='{$one_post}'" : "`object`='{$topic_id}'") . $basket_where); SortArray($posts, 'public', false); //Сортируем по дате // Вывод постраничной навигации if (count($posts) > $posts_on_page) { if ($lastpost) { $page = ceil(count($posts) / $posts_on_page); } $navigation->GenNavigationMenu($posts, $posts_on_page, Ufu('index.php?name=forum&op=showtopic&topic=' . $topic_id, 'forum/topic' . $topic_id . '-{page}.html', true), $page); } else { $navigation->DisableNavigation(); } // Загружаем корзину для сообщений $basket = ForumBasketGetData('forum_basket_post'); // Блок с информацией о теме System::site()->AddBlock('topic', true, false); System::site()->SetVars('topic', ForumTopicFilterData($topic)); // Блок шаблонизатора для вывода сообщений System::site()->AddBlock('forum_posts', true, true, 'post'); $is_forum_member = AccessIsResolved(2); // Для определения первого и последнего сообщения $i = 1; // Выводим сообщения в шаблонизатор foreach ($posts as $post) { $post_user_id = SafeDB($post['user_id'], 11, int); if ($post_user_id == 0) { continue; } $vars = array(); // Обрабатываем текст сообщения if ($post['delete'] == '1') { // Сообщение удалено в корзину $vars['text'] = ForumBasketRender($post['id'], $post['message'], $basket); } else { $vars['text'] = HtmlChars($post['message']); if ($forum_config['no_link_guest']) { // Скрываем ссылки от гостей $replace = '<p class="notice">' . $forum_lang['hide_links_for_guests'] . '</p>'; $vars['text'] = preg_replace('/\\<a[^\\>]*?(http|https|ftp|www)(.*?)\\<\\/a\\>/is', $replace, $vars['text']); $vars['text'] = preg_replace('/(http:\\/\\/|https:\\/\\/|ftp:\\/\\/|www\\.)?([a-zA-Z0-9]+)\\.(ru|su|com|org|net|info|name|ws|cc|tv|tel|kz|biz|mobi|asia|me|tw|ua)+([а-яА-Яa-zA-Z0-9\'~;,@#%&_\\!\\$\\^\\*\\(\\)\\-\\=\\+\\?\\.\\:\\/\\\\]*)?/is', $replace, $vars['text']); } SmiliesReplace($vars['text']); $vars['text'] = nl2br($vars['text']); $vars['text'] = BbCodePrepare($vars['text']); if ($max_word_length > 0) { $vars['text'] = word_wrapped_string($vars['text'], $max_word_length); } } // Обрабатываем данные сообщения // Пользователь $user_info = GetUserInfo($post_user_id); $vars['usertopics'] = '<a href="' . Ufu('index.php?name=forum&op=usertopics&user='******'forum/usertopics/{user}/') . '">' . $forum_lang['allusertopics'] . '</a>'; if ($user_info['rank_name'] != '') { $vars['author'] = '<a href="' . Ufu('index.php?name=user&op=userinfo&user='******'user/{user}/info/') . '">' . $user_info['name'] . '</a>'; $vars['author_name'] = $user_info['name']; } else { $vars['author'] = $post['name']; $vars['author_name'] = $post['name']; } if ($user_info['hideemail'] == '0') { $vars['email'] = AntispamEmail($user_info['email']); } else { $vars['email'] = ' '; } if ($user_info['url'] != '') { $vars['homepage'] = '<a href="http://' . $user_info['url'] . '" target="_blank">' . $user_info['url'] . '</a>'; } else { $vars['homepage'] = ' '; } $vars['icq'] = $user_info['icq']; if ($user_info['online']) { $vars['status'] = $forum_lang['user_online']; } else { $vars['status'] = ''; } $vars['rank_image'] = $user_info['rank_image'] != '' ? $user_info['rank_image'] : ''; $vars['rank_name'] = $user_info['rank_name'] != '' ? $user_info['rank_name'] : ''; $vars['avatar'] = $user_info['avatar_file'] != '' ? $user_info['avatar_file'] : GetPersonalAvatar(0); $vars['regdate'] = TimeRender($user_info['regdate'], false, true); if (isset($user_info['data']['forum_counters'])) { $vars['user_posts_count'] = $user_info['data']['forum_counters']['posts']; $vars['user_topics_count'] = $user_info['data']['forum_counters']['topics']; } else { $vars['user_posts_count'] = '0'; $vars['user_topics_count'] = '0'; } // Сообщение $vars['public'] = $forum_lang['added'] . TimeRender($post['public']); $vars['public_date'] = TimeRender($post['public']); $vars['ip'] = SafeDB($post['user_ip'], 19, str); $vars['topic_id'] = $topic_id; $vars['id'] = SafeDB($post['id'], 11, int); $vars['nodelete'] = SafeDB($post['delete'], 1, int) == 1 ? false : true; $vars['is_admin_and_nodelete'] = $vars['nodelete'] && $user_admin; $vars['page'] = $page; // is_current_user Пользователь является владельцем сообщения (кнопки редактировать и удалить) if ($post['delete'] == '0') { $vars['is_current_user'] = $user_id == $post['user_id'] && $topic['close_topics'] == '0' || $user_admin; } else { $vars['is_current_user'] = false; } if ($one_post === false) { $vars['num'] = $page > 1 ? $page * $posts_on_page - $posts_on_page + $i : $i; $vars['url'] = "javascript:link_post('" . GetSiteUrl() . Ufu("index.php?name=forum&op=post&topic=" . $topic_id . "&post=" . $post['id'], 'forum/t{topic}/post{post}.html') . "')"; } else { $vars['num'] = ''; $vars['url'] = 'javascript:history.go(-1)'; } $vars['is_forum_member'] = $is_forum_member; System::site()->AddSubBlock('forum_posts', true, $vars, array(), 'module/forum_post.html'); $i++; } // Форма добавления сообщений System::site()->AddBlock('post_form', $forum_config['add_post'], false); ForumRenderPostForm(false, $forum_id, $topic_id, 0, '', '', $is_forum_member); // Подписка на тему System::site()->AddBlock('subscription', $forum_config['new_message_email'], false, 'subs'); $vars_subs = array(); $vars_subs['topic'] = $topic_id; $vars_subs['sub_status'] = Forum_Subscription_Status($topic_id); $vars_subs['status'] = $vars_subs['sub_status'] ? 'Отписаться от этой темы' : 'Подписаться на эту тему'; System::site()->SetVars('subscription', $vars_subs); System::site()->AddBlock('is_forum_member', $is_forum_member, false, 'marker'); System::site()->SetVars('is_forum_member', array('id' => $topic_id)); // Подключаем шаблон System::site()->AddTemplatedBox('', 'module/forum_showtopic.html'); // Выводим блок онлайн $online->Render($forum_id, $topic_id, $forum_lang['current_online'], 'forum_online'); // Предыдущая и следующая тема System::site()->AddBlock('forum_prev_topic', isset($prev_topic), false, 'topic'); if (isset($prev_topic)) { System::site()->SetVars('forum_prev_topic', array('url' => Ufu('index.php?name=forum&op=showtopic&topic=' . SafeDB($prev_topic['id'], 11, int), 'forum/topic{topic}.html'), 'title' => SafeDB($prev_topic['title'], 255, str), 'lang_prev_topic' => $forum_lang['prev_topic'])); } System::site()->AddBlock('forum_next_topic', isset($next_topic), false, 'topic'); if (isset($next_topic)) { System::site()->SetVars('forum_next_topic', array('url' => Ufu('index.php?name=forum&op=showtopic&topic=' . SafeDB($next_topic['id'], 11, int), 'forum/topic{topic}.html'), 'title' => SafeDB($next_topic['title'], 255, str), 'lang_next_topic' => $forum_lang['next_topic'])); } // Быстрый переход по форумам ForumQuickTransitionBox($forum_id, $forum_lang['quick_transition']); }
function AdminCommentsMain() { System::admin()->AddCenterBox('Глобальная модерация комментариев'); if (isset($_GET['page'])) { $page = SafeEnv($_GET['page'], 10, int); } else { $page = 1; } System::admin()->AddJS(' UpdateSelectComment = function(){ $(".comment_check").each(function(){ $("#comment"+$(this).val()).removeClass("commtable_selected"); }); $(".comment_check:checked").each(function(){ $("#comment"+$(this).val()).addClass("commtable_selected"); }); }; SelectAllComments = function(){ $(".comment_check").each(function(){ $(this).attr("checked", true); }); UpdateSelectComment(); }; DeleteComments = function(){ var del = ""; $(".comment_check:checked").each(function(){ del += "#"+$(this).val(); }); Admin.LoadPagePost("' . ADMIN_FILE . '?exe=comments&a=delete&page=' . $page . '", {delcomments: del}, "Удаление..."); }; '); $commentsOnPage = 50; // Выбираем комментарии из всех таблиц $where = ''; $posts = array(); $comments_tables = System::database()->Select('comments'); foreach ($comments_tables as $table) { $temp_posts = System::database()->Select($table['table'], $where); AdminConfigMarkPosts($temp_posts, $table); $posts = array_merge($posts, $temp_posts); } // Сортируем комментарии по дате(Новые сверху) SortArray($posts, 'post_date', true); // Добавляем постраничную навигацию if (count($posts) > $commentsOnPage) { $navigator = new Navigation($page); $navigator->GenNavigationMenu($posts, $commentsOnPage, ADMIN_FILE . '?exe=comments'); $nav = true; } else { $nav = false; AddText('<br />'); } // Шапка if (count($posts) == 0) { System::admin()->Highlight('На сайте нет комментариев.'); return; } else { $text = ''; } $text .= '<table cellspacing="0" cellpadding="0" width="90%" align="center" class="commtable_header"> <tr> <th style="width: 160px;">Пользователь</th> <th style="width: 260px;">E-mail</th> <th style="width: 260px;">Сайт</th> <th style="width: 260px;">Дата и время</th> <th style="width: 70px;">IP</th> <th>Функции</th> </tr></table>'; // Выводим комментарии foreach ($posts as $post) { $post_id = SafeDB($post['id'], 11, int); $object_id = SafeDB($post['object_id'], 11, int); $user_id = SafeDB($post['user_id'], 11, int); $user_name = SafeDB($post['user_name'], 255, str); $user_homepage = SafeDB($post['user_homepage'], 255, str); $user_email = SafeDB($post['user_email'], 255, str); $user_ip = SafeDB($post['user_ip'], 19, str); $post_date = TimeRender($post['post_date']); $post_message = SafeDB($post['post_message'], 0, str, false); $post_message = nl2br($post_message); $edit = ADMIN_FILE . '?exe=comments&a=edit&id=' . $post_id . '&table=' . $post['_table'] . '&page=' . $page; if ($user_id != 0) { $userinfo = GetUserInfo($user_id); $user_name = $userinfo['name']; $user_homepage = $userinfo['url']; $user_email = PrintEmail($userinfo['email']); if ($userinfo['online']) { $online = '<b>Сейчас на сайте.</b>'; } else { $online = ''; } $avatar = '<img src="' . $userinfo['avatar_file'] . '" />'; $rank_image = '<img src="' . $userinfo['rank_image'] . '" />'; $rank_name = $userinfo['rank_name']; $regdate = 'Зарегистрирован: ' . TimeRender($userinfo['regdate'], false); $ruser = true; } else { $user_email = PrintEmail($user_email); $online = ''; $avatar = '<img src="' . GetPersonalAvatar(0) . '" />'; $rank_image = ''; $rank_name = ''; $regdate = ''; $ruser = false; } if ($user_homepage != '') { $user_homepage = '<a href="http://' . $user_homepage . '" target="_blank">' . $user_homepage . '</a>'; } else { $user_homepage = ' '; } if ($ruser) { $user_name = '<a href="' . Ufu("index.php?name=user&op=userinfo&user={$user_id}", 'user/{user}/info/') . '" target="_blank">' . $user_name . '</a>'; } $link_go = ADMIN_FILE . '?exe=comments&a=find&table=' . SafeDB($post['_id'], 11, int) . '&post_id=' . $post_id; $func = ''; if ($post['_url'] != '') { $func .= System::admin()->SpeedButton('Найти комментарий', $link_go, 'images/search.png', false, false, 'target="_blank"'); } $func .= SpeedButton('Редактировать', $edit, 'images/admin/edit.png'); $text .= Indent(' <table cellspacing="0" cellpadding="0" width="90%" align="center" class="commtable" id="comment' . $post_id . '--' . $post['_table'] . '--' . $object_id . '"> <tr> <th style="width: 160px;"><b>' . $user_name . '</b></th> <th style="width: 260px;">' . $user_email . '</th> <th style="width: 260px;">' . $user_homepage . '</th> <th style="width: 260px;">' . $post_date . '</th> <th style="width: 70px;">' . $user_ip . '</th> <th>' . $func . '</th> <th>' . System::admin()->Check('delcomments[]', $post_id . '--' . $post['_table'] . '--' . $object_id, false, 'class="comment_check" onchange="UpdateSelectComment();"') . '</th> </tr> <tr> <td valign="top" width="140">' . $avatar . '<br>' . $rank_image . '<br>' . $rank_name . '</td> <td colspan="6" class="commtable_text">' . $post_message . '</td> </tr> </table> '); } // Подвал AddText($text); if ($nav) { AddNavigation(); } $text = ''; if (count($posts) > 0) { $text .= '<div style="text-align: right;">' . System::admin()->SpeedConfirmJs('Выделить все', 'SelectAllComments();', '', '', true) . ' ' . System::admin()->SpeedConfirmJs('Удалить выделенные', 'DeleteComments();', 'images/admin/delete.png', 'Удалить выделенные комментарии?', true) . '</div>'; } AddText($text); }
function IndexUserRegistration($acceptPost = false, $edit = false) { if (!$edit) { System::user()->UnLogin(false); } else { if (!System::user()->Auth) { System::site()->Login(); return; } } System::site()->AddJS(Indent(' function checkData(f){ if(f.login.value = \'\'){ alert("Логин должен быть не менее ' . System::config('user/login_min_length') . ' и не более 15 символов."); f.login.focus(); return false; } } ')); if (!$edit && System::config('user/registration') == 'off') { System::site()->AddTextBox('Ошибка', '<p align="center">Извините, регистрация приостановлена.</p>'); return; } if ($acceptPost) { AcceptPost($login, $pass, $rpass, $email, $hideemail, $nikname, $realname, $age, $homepage, $icq, $city, $avatar, $apersonal, $gmt, $about, $snews); } elseif ($edit) { GetEditUserData($login, $email, $hideemail, $nikname, $realname, $age, $homepage, $icq, $city, $avatar, $apersonal, $gmt, $about, $snews); $pass = ''; $rpass = ''; } else { $login = ''; $pass = ''; $rpass = ''; $email = ''; $hideemail = false; $nikname = ''; $realname = ''; $age = ''; $homepage = ''; $icq = ''; $city = ''; $avatar = 'noavatar.gif'; $apersonal = '0'; $gmt = System::config('general/default_timezone'); $about = ''; $snews = false; } //Генерируем текст формы System::site()->AddBlock('user_form', true, false, 'form'); $vars = array(); if ($edit) { $vars['action'] = 'update'; $vars['laction'] = 'Сохранить'; $topcaption = 'Данные пользователя'; } else { $vars['action'] = 'create'; $vars['laction'] = 'Зарегистрироваться'; $topcaption = 'Регистрация'; } $fields = explode(',', System::config('user/register_call_data')); //email,snews,realname,age,city,icq,gmt,about $activate = System::config('user/activate_type'); //auto, mail, manual $vars['form_name'] = 'userform'; $vars['url'] = Ufu('index.php?name=user&op=registration', 'user/{op}/'); $vars['enctype'] = 'multipart/form-data'; $vars['llogin'] = '******'; $vars['login'] = $login; $vars['lpass'] = '******'; $vars['pass'] = $pass; $vars['lrpass'] = '******'; $vars['rpass'] = $rpass; $vars['lnikname'] = 'Ваше имя на сайте <font color="#FF0000">*</font>'; $vars['nikname'] = $nikname; $vars['lrealname'] = 'Настоящее имя(Ф.И.О.)'; $vars['realname'] = $realname; $vars['use_realname'] = in_array('realname', $fields) || $edit; $vars['lemail'] = 'E-mail <font color="#FF0000">*</font>'; $vars['email'] = $email; $vars['lhideemail'] = 'Скрыть e-mail'; $vars['hideemail'] = $hideemail ? ' checked="checked"' : ''; $vars['use_email'] = in_array('email', $fields) || $activate == 'mail' || $edit; $vars['lage'] = 'Возраст'; $vars['age'] = $age; $vars['use_age'] = in_array('age', $fields) || $edit; $vars['lhomepage'] = 'Сайт'; $vars['homepage'] = $homepage; $vars['use_homepage'] = in_array('homepage', $fields) || $edit; $vars['licq'] = 'Номер ICQ'; $vars['icq'] = $icq; $vars['use_icq'] = in_array('icq', $fields) || $edit; $vars['lcity'] = 'Город'; $vars['city'] = $city; $vars['use_city'] = in_array('city', $fields) || $edit; $vars['lavatar'] = 'Аватар'; $vars['lload_avatar'] = 'Загрузить аватар<br>(Размеры картинки могут быть автоматически уменьшены. Допустимые форматы: gif, jpeg, png.)'; $vars['avatar_onchange_func'] = 'ShowAvatar()'; $vars['avatar_filename'] = $avatar; $vars['use_avatar'] = in_array('avatar', $fields) || $edit; if ($vars['use_avatar']) { System::site()->AddBlock('avatars', true, true, 'avatar'); $avatars = GetFiles(System::config('general/avatars_dir'), false, true, '.gif.jpg.jpeg.png'); if ($apersonal == '1') { $selected = GetPersonalAvatar(System::user()->Get('u_id')); } elseif ($edit) { $selected = GetGalleryAvatar($avatar); } else { $selected = GetGalleryAvatar($avatars[1]); } if ($apersonal == '1') { System::site()->AddSubBlock('avatars', true, array('name' => '', 'caption' => 'Персональный', 'selected' => true)); } for ($i = 0, $c = count($avatars); $i < $c; $i++) { $avars = array(); $sel = $avatar == $avatars[$i]; $avars['name'] = $avatars[$i]; $avars['selected'] = $sel; $avars['caption'] = $avatars[$i]; System::site()->AddSubBlock('avatars', true, $avars); } $vars['av_selected'] = $selected; System::site()->AddJS(' function ShowAvatar(){ if(document.userform.avatar.value==\'\'){ document.userform.avatarview.src = \'' . (System::config('user/secure_avatar_upload') ? 'index.php?name=plugins&p=avatars_render&user='******'u_id') : System::config('general/personal_avatars_dir') . $avatar) . '\'; }else{ document.userform.avatarview.src = \'' . (System::config('user/secure_avatar_upload') ? 'index.php?name=plugins&p=avatars_render&aname=' : System::config('general/avatars_dir')) . '\'+document.userform.avatar.value; } }'); } $vars['lgmt'] = 'Часовой пояс'; $vars['use_gmt'] = in_array('gmt', $fields) || $edit; if ($vars['use_gmt']) { $gmtd = GetGmtArray(); System::site()->AddBlock('gmt_data', true, true, 'gmt'); for ($i = 0, $c = count($gmtd); $i < $c; $i++) { $gvars['name'] = $gmtd[$i][1]; $gvars['caption'] = $gmtd[$i][0]; $gvars['selected'] = $gmt == $gmtd[$i][1]; System::site()->AddSubBlock('gmt_data', true, $gvars); } } $vars['labout'] = 'Немного о себе'; $vars['about'] = $about; $vars['use_about'] = in_array('about', $fields) || $edit; $vars['kaptcha_url'] = 'index.php?name=plugins&p=antibot'; $vars['kaptcha_width'] = '120'; $vars['kaptcha_height'] = '40'; $vars['lsnews'] = 'Разрешить администраторам сайта присылать Вам уведомления по электронной почте'; $vars['snews'] = $snews ? ' checked="checked"' : ''; $vars['use_snews'] = in_array('snews', $fields) || $edit; System::site()->AddTemplatedBox($topcaption, 'module/user_form.html'); System::site()->SetTitle($topcaption); System::site()->Blocks['user_form']['vars'] = $vars; }