Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 2011-04-25 21:50 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
Данный мод позволяет ограничить доступ пользователя по количеству сообщений.
Например в админке в разделе форумы ставим количество сообщений которое нужно что бы закрыть доступ форум и радуемся.
К модераторам и администраторам данное правило не относится

[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>


Все готово!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-04-25 23:22 
Не в сети
Аватара пользователя
Раздал: 142.12 ГБ
Скачал: 8.45 ГБ
Ратио: 16.822


Зарегистрирован: 2010-12-15 05:44
Сообщения: 116
Откуда: http://krumax.org/
admin
Я так понимаю, что этот мод добавляет по 3 запроса
во viewforum и viewtopic ...


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-07-14 14:31 
Не в сети
Раздал: 0 байт
Скачал: 0 байт
Ратио: Inf.


Зарегистрирован: 2011-07-14 13:30
Сообщения: 1
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` ;


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Переместиться наверх
 Главная |  Список форумов |   Time : 3.448s | 16 Queries | GZIP : Off |