BitTorrent Трекер RusTrek.ru http://5.45.70.241/ |
|
Ограничение доступа по количеству сообщений http://5.45.70.241/viewtopic.php?f=817&t=13589 |
Страница 1 из 1 |
Автор: | oartemka178 [ 2011-04-25 21:50 ] |
Заголовок сообщения: | Ограничение доступа по количеству сообщений |
Данный мод позволяет ограничить доступ пользователя по количеству сообщений. Например в админке в разделе форумы ставим количество сообщений которое нужно что бы закрыть доступ форум и радуемся. К модераторам и администраторам данное правило не относится [th]http://i20.fastpic.ru/big/2011/0425/9e/81c09f515baacd9b3bbc15d98c39c79e.png[/th] [th]http://i20.fastpic.ru/big/2011/0425/c7/6393f2c3d0306b9380ce9191749b09c7.png[/th] [th]http://i20.fastpic.ru/big/2011/0425/56/63e66e97b14ffea0a166e6b7e2daf556.png[/th] Установка. Делаем запрос Код: ALTER TABLE bb_forums ADD forum_enter_limit MEDIUMINT(8) unsigned default '0' Открываем Код: viewforum.php Находим Код: // Redirect to login page if not admin session $mod_redirect_url = ''; if ($is_auth['auth_mod']) { $redirect = isset($_POST['redirect']) ? $_POST['redirect'] : $_SERVER['REQUEST_URI']; $redirect = url_arg($redirect, 'mod', 1, '&'); $mod_redirect_url = "login.$phpEx?redirect=$redirect&admin=1"; if ($moderation && !$userdata['session_admin']) { redirect($mod_redirect_url); } } Ниже добавляем Код: // // Лимит по сообщениям // if (!($userdata['user_level'] == ADMIN OR $userdata['user_level'] == MOD)) { $sql = "SELECT f.forum_id, f.forum_enter_limit, u.user_posts FROM " . FORUMS_TABLE . " f, " . USERS_TABLE . " u WHERE user_id = " . $userdata['user_id']; if( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not query information', '', __LINE__, __FILE__, $sql); } while ($row = $db->sql_fetchrow($result)) { $forum_id_limit = $row['forum_id']; $forum_enter_limit = $row['forum_enter_limit']; $user_posts_limit = $row['user_posts']; $error_limit = sprintf($lang['Forum_enter_limit_error'], $forum_enter_limit); if ($forum_id == $forum_id_limit AND $user_posts_limit < $forum_enter_limit) { message_die(GENERAL_ERROR, $error_limit); } } } // // Лимит по сообщениям // Открываем viewtopic.php Находим Код: // // Go ahead and pull all data for this topic // Выше добавляем Код: // // Лимит по сообщениям // if (!($userdata['user_level'] == ADMIN OR $userdata['user_level'] == MOD)) { $sql = "SELECT f.forum_id, f.forum_enter_limit, u.user_posts FROM " . FORUMS_TABLE . " f, " . USERS_TABLE . " u WHERE user_id = " . $userdata['user_id']; if( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not query information', '', __LINE__, __FILE__, $sql); } while ($row = $db->sql_fetchrow($result)) { $forum_id_limit = $row['forum_id']; $forum_enter_limit = $row['forum_enter_limit']; $user_posts_limit = $row['user_posts']; $error_limit = sprintf($lang['Forum_enter_limit_error'], $forum_enter_limit); if ($forum_id == $forum_id_limit AND $user_posts_limit < $forum_enter_limit) { message_die(GENERAL_ERROR, $error_limit); } } } // // Лимит по сообщениям // Открываем admin/admin_forums.php Находим Код: $forumstatus = $row['forum_status']; Ниже добавляем Код: $forum_enter_limit = $row['forum_enter_limit']; Находим Код: $forumstatus = FORUM_UNLOCKED; Ниже добавляем Код: $forum_enter_limit = ''; Находим Код: 'FORUM_NAME' => htmlCHR($forumname), Ниже добавляем Код: 'FORUM_ENTER_LIMIT' => $forum_enter_limit, 'L_FORUM_ENTER_LIMIT' => $lang['Forum_enter_limit'], Находим Код: $forum_status = intval($HTTP_POST_VARS['forumstatus']); Ниже добавляем Код: $forum_enter_limit = intval($HTTP_POST_VARS['forum_enter_limit']); Находим Код: $forum_status = intval($HTTP_POST_VARS['forumstatus']); Ниже добавляем Код: $forum_enter_limit = intval($HTTP_POST_VARS['forum_enter_limit']); Находим Код: forum_status = $forum_status, forum_postcount = $forum_postcount, Ниже добавляем Код: forum_enter_limit = $forum_enter_limit, Открываем lang_main.php В самый низ добавляем Код: $lang['Forum_enter_limit'] = 'Ввести лимит сообщений для этого форума'; $lang['Forum_enter_limit_error'] = 'Вы не можете просматривать данный форум/топик, для просмотра вам нужно написать <b>%d</b> сообщений.'; Открываем admin_forums.tpl Находим Код: <tr> <td class="row1">{L_FORUM_STATUS}</td> <td class="row2"><select name="forumstatus">{S_STATUS_LIST}</select></td> </tr> Ниже добавляем Код: <tr> <td class="row1">{L_FORUM_ENTER_LIMIT}</td> <td class="row2"><input type="text" name="forum_enter_limit" value="{FORUM_ENTER_LIMIT}" size="10" maxlength="8" /></td> </tr> Все готово! |
Автор: | krumax [ 2011-04-25 23:22 ] |
Заголовок сообщения: | |
admin Я так понимаю, что этот мод добавляет по 3 запроса во viewforum и viewtopic ... |
Автор: | Sapphire33Rus [ 2011-07-14 14:31 ] |
Заголовок сообщения: | |
admin писал(а): ALTER TABLE bb_forums ADD forum_enter_limit MEDIUMINT(8) unsigned default '0' Правильный код Код: ALTER TABLE `bb_forums` ADD `forum_enter_limit` MEDIUMINT(8) unsigned default '0' AFTER `forum_topics` ;
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |