Вход Регистрация
Файл: ban_m.txt
Строк: 44
/// *** Автор: Sanek_OS9 *** /// /// *** ICQ: 441511772 *** /// ///
*** E-mail: Sanek_OS9@mail.ru *** /// /// *** R924686967739 *** /// ///
*** U150434321351 *** /// /// *** Z815724990373 *** /// /// *** DCMS
v.6.6.4 *** /// /// *** Офф.сайт: http://dcms.su *** /// /// ***
Бесплатные скрипты: http://for-dcms.ru *** /// /// ***
Пишу скрипты под заказ для DCMS v.6.6.4 ***
/// Бан по модулям v.1.0.0 (Ban on
Modules) Описание: скрипт позволяет
ограничить пользователя на определенное
действие на сайте. Теперь если
пользователь нарушил гдето на сайте не
нужно его полностью банить, а можно с
помощью этого скрипта ограничить его на
определенное действия. Имеем 8
ограничений: Оставлять посты в форуме,
Создавать темы в форуме, Оставлять посты
в чате, Выгрузка фото в альбоме, Создание
дневников, Личная почта, Писать в
гостевой, Комментирование новостей. По
желанию можно еще добавить. Сам бан
пользователя происходит через файл
/ban_m.php. Все довольно просто и
понятно. Возможности: - просмотр всего
списка нарушений; - просмотр списка
нарушений определенного пользователя; -
при просмотре выводит: ник забаненого,
время окончания бана, ник забаневшего,
причина бана, место бана. - при
добавлении в список забаненых нужно
ввести следующее: ID или Ник кого баним
(если смотреите спиок определенного
пользователя то это поле пропадет, а ID
нарушителя подставится автоматически),
причина бана, время бана и тип
ограничения; - опираясь от стандартной
привилегии в движке Пользователи - бан (max
1 сутки), эта привилегия также действует и
сдесь. Установка: 1. Скинуть ban_m.php в
корень сайта. 2. Залить таблицы с ban_m.sql 3.
Собствено ставим ограничения. Разберем
пример как поставить ограничение на
создание тем, для этого нужно всавить код
в файл /forum/inc/new_t.php (это в оригинальном dcms),
в то место где идут проверки на ошибки
при создании темы, например проверка на
то сколько символов в названии темы,
рядышком вставляем этот код:
####################################### if
(mysql_result(mysql_query("SELECT COUNT(*) FROM `ban_m` WHERE
`id_user` = '$user[id]' AND (`time_last` > '$time') AND `sel` = '1'
"), 0)!=0) { $ban = mysql_fetch_assoc(mysql_query("SELECT *
FROM `ban_m` WHERE `id_user` = '$user[id]' AND `time_last` > '$time' AND
`sel` = '1' ORDER BY `time` DESC LIMIT
1")); $ank=get_user($ban['id_ban']); $err[]='Извините но
Вам запрещено создавать темы до
'.vremja($ban['time_last']); } Обрати внимания на
поле `sel`, именно по нему опредиляется
какой тип ограничения стоит, как видешь в
теме `sel` = '1'. Вот пример на добавления
поста в теме, также само возле проверок
на ошибки (/forum/inc/them.php) вставляешь этот
код: ####################################### if
(mysql_result(mysql_query("SELECT COUNT(*) FROM `ban_m` WHERE
`id_user` = '$user[id]' AND (`time_last` > '$time') AND `sel` = '0'
"), 0)!=0) { $ban = mysql_fetch_assoc(mysql_query("SELECT *
FROM `ban_m` WHERE `id_user` = '$user[id]' AND `time_last` > '$time' AND
`sel` = '0' ORDER BY `time` DESC LIMIT
1")); $ank=get_user($ban['id_ban']); $err[]='Извините но
Вам запрещено оставлять сообщения до
'.vremja($ban['time_last']); } #######################################
Как видешь сдесь `sel` = '1'. Так же само
возле проверок вставляешь и на остальные
модули, меняешь только параметр `sel`. А
именно: - Оставлять посты в форуме: `sel` =
'0' - Создавать темы в форуме: `sel` = '1' -
Оставлять посты в чате: `sel` = '2' - Выгрузка
фото в альбоме: `sel` = '3' - Создание
дневников: `sel` = '4' - Личная почта: `sel` = '5'
- Писать в гостевой: `sel` = '6' -
Комментирование новостей: `sel` = '7'. Вот
еще покажу пример для новостей, в своем
файле возле проверок пишешь:
####################################### if
(mysql_result(mysql_query("SELECT COUNT(*) FROM `ban_m` WHERE
`id_user` = '$user[id]' AND (`time_last` > '$time') AND `sel` = '7'
"), 0)!=0) { $ban = mysql_fetch_assoc(mysql_query("SELECT *
FROM `ban_m` WHERE `id_user` = '$user[id]' AND `time_last` > '$time' AND
`sel` = '7' ORDER BY `time` DESC LIMIT
1")); $ank=get_user($ban['id_ban']); $err[]='Извините но
Вам запрещено комментировать новости до
'.vremja($ban['time_last']); } ####################################### --------------------- Хочу
еще сказать несколько моментов при бане
пользователя, вожно ID или Ник писать в
ручную, а можно сделать чтоб он
вставлялся автоматически, для этого в
анкете пользователя (в DCMS это /info.php)
пропишите: ####################################### if
(user_access('user_ban_m'))echo "&raquo;<a
href='/ban_m.php?user=$ank[id]'>Нарушения (бан по
модулям)</a><br
/>\n"; ####################################### 4.
Выполнить этот запрос: INSERT INTO `all_accesses`
(`type` , `name`) VALUES ('user_ban_m', 'Пользователи - бан
по модулю'); 5. Поставить эту привилегию
для необходимых груп. ------------- И так, при
переходе на файл http://ваш_сайт/ban_m.php вы
увидете весь список нарушений, есть
возможность просматривать нарушения
определенного пользователя. Для этого
нужно в анкете прописать: if
(user_access('user_ban_m'))echo "&raquo;<a
href='/ban_m.php?user=$ank[id]'>Нарушения (бан по
модулям)</a><br />\n"; При переходе
по такой ссылке вы увидите нарушения
только этого пользователя, при этом если
захотите выдать ему новое нарушение его
ID или Ник уже вводить не нужно, поле ввода
пропадет в этом случае. Вот и всё! ;-)
Онлайн: 2
Реклама