Санкции и штрафы + права для форума

+91
4.5K
Архив ОБНОВЛЁН 29 июня!

Иллюстрация
Так получилось, что я руковожу проектом с большим кол-вом школьников и прочих пионэров. И модераторы начали уставать от их проделок. Поэтому пришлось сделать им возможность управления правами юзера.

Возможности

Плагин добавляет вкладку и кнопку в профиле:
Иллюстрация

Модератор, нажав на кнопку и в зависимости от выбранного режима будет видеть следующее:

Режим 1
Иллюстрация
Режим 2
Иллюстрация
Режим 2 + Режим 1
Иллюстрация

Потом беззаботный юзер получает уведомление:
Иллюстрация

Думая, что это развод, пытается добавить сообщение на форум и видит:
Иллюстрация

Вот такие пироги smile

Режимы

Режим 1 — модератор вручную выбирает меру пресечения и время действия санкции.

Режим 2 — модератор повышает уровень нарушений юзера, каждый уровень наказывается, исходя из настроек. Достигнув последнего уровня, юзер всегда будет получать высшую меру пресечения.
Иллюстрация

Режим 2 + Режим 1 — это когда выбран "Режим 2" и модератор находится в группе, которым "Режим 1" доступен всегда.

Установка

Компонент и плагин только для версий движка начиная с 1.10!

1. Залить содержимое папки upload архива в корень сайта.

2. Для 1.10 и 1.10.1 (для более поздних версий системы можете пропустить этот пункт) в файле /core/classes/user.class.php
Заменить:
  1. 153 return $this->loads_users[$info['id']] = $info;
На:
  1. return $this->loads_users[$info['id']] = cmsCore::callEvent('LOAD_USER', $info);
3. Установить компонент и плагин, настроить.

4. Отредактировать все группы, разрешив добавлять посты на форум.

5. Ну и ввести проверку права на добавление постов и тем в файле /components/forum/frontend.php
После:
  1. 202 if (in_array($do, array('newthread','newpost','editpost'))){
  2.  
  3. if (!$inUser->id){ cmsUser::goToLogin(); }
Вставить:
  1. if(!cmsUser::isUserCan('forum/add')){
  2. cmsCore::addSessionMessage('У вас нет прав на добавление постов и тем. Обратитесь к администрации сайта.', 'error');
  3. cmsCore::redirectBack();
  4. }
+23
lokanaft lokanaft 11 лет назад #
Мне тут сказали, что я эгоист и это объясняет тягу к помощи окружающим из-за дефицита внимания. Так вот, не пользуйтесь этим, а лучше одалживайте мне побольше внимания))
+5
Anonim Anonim 11 лет назад #
Мы Вас ЛЮБИМ!
+5
Azura Azura 11 лет назад #
Ооооо... Не то слово как любим!!!! :))))) Спасибо вам огромное!!!! +++++++
+4
SpideR SpideR 11 лет назад #
Да чтоб меня. smile
Большое спасибо!!!
0
Майкл Майкл 11 лет назад #
Полезный хак, куда нибудь пристрою!
Спасибо!
0
lokanaft lokanaft 11 лет назад #
Это не хак, это компонент и плагин))
+2
Димитриус Димитриус 11 лет назад #
ну не скажите, файлы системы правятся, значить мини хак+плагин+компонент
+1
0
lokanaft lokanaft 11 лет назад #
okay, нанохак))
0
Zau4man Zau4man 11 лет назад #
Супер. У меня правда только 2 проказника.
И деактивации на сутки им хватает, чтобы поправиться)
0
reload reload 11 лет назад #
Красатища) +

lokanaft, прости, не могу понять
lokanaft:
2. Для 1.10 и 1.10.1 (потом это там уже будет) в файле
когда потом и что будет?))

Спасибо)
0
lokanaft lokanaft 11 лет назад #
В версии 1.10.2 и следующих эта строчка уже будет изменена.
0
Роман Роман 11 лет назад #
Отлично!
Может и компонент + плагин уже будет в системе присутствовать? Он явно будет к месту
0
lokanaft lokanaft 11 лет назад #
К сожалению, а мб и к счастью, то что публикуется сторонними разработчиками, добавляется в систему чуть реже, чем никогда.
0
reload reload 11 лет назад #
да такое даже здесь на сайте не грех поставить!)
+3
Роман Роман 11 лет назад #
Ваше дополнение логически необходимо любому более менее посещаемому форуму, так почему бы его не включить в "коробку". Это конечно решать разработчикам, просто некоторые дополнения столь логичны, что не включать их просто нельзя.
Удачи вам в ваших следующих работах!
0
nedoriko nedoriko 11 лет назад #
если я правильно понимаю, это для 1.9 а для 1.10 ручками поправлять придется?
0
Александр Александр 11 лет назад #
там же написанно, что это для 1.10 и для 1.10.1
0
nedoriko nedoriko 11 лет назад #
там написано
Установка 1. Залить содержимое папки upload архива в корень сайта.
можно предположить что все остальное делается как обычно. тоесть. залил, установил, настроил и пользуешься.
но там также написано
2. Для 1.10 и 1.10.1 (потом это там уже будет) в файле /core/classes/user.class.php Заменить:
что не исключает вариант того, что для этих версий придется ручками внести изменения в коде в нужных местах.
+2
lokanaft lokanaft 11 лет назад #
Изменил пост, теперь доходчивее)) написано?
+1
nedoriko nedoriko 11 лет назад #
теперь даже мне понятно)
0
picaboo picaboo 11 лет назад #
супер. почти уже нормальный форум с этой и предыдущей доработкой :)
+9
lokanaft lokanaft 11 лет назад #
Форум я буду делать снова с исходного. У меня просто такая тенденция - находить изъяны в чужом коде, а в своём сразу не могу. Поэтому сейчас я смотрю на него и думаю: вротмненоги. Так что ждите новый форум))
+1
AndroS AndroS 11 лет назад #
Зачем так с "ротом"? Очень полезная доработка, достойна внедрения в ядро ICMS!
0
mk727 mk727 11 лет назад #
Усилием таких вот замечательных людей форум постепенно превратится в полнофункциональный и не нужно будет ставить отдельный двиг для него и выполнять интеграции. Продолжайте в том же направлении.
0
Майкл Майкл 11 лет назад #
Самокритично, мы всё же не так не скажем.
Ждем новый форум, будем надеятся он будет ещё лучше)
+1
Надежда Надежда 11 лет назад #
Полезное дополнение жирный +
0
lesterkey lesterkey 11 лет назад #
+
0
SLOT 800 SLOT 800 11 лет назад #
Вот это красатища! Давно искал , что то подобное. +
0
SLOT 800 SLOT 800 11 лет назад #
Установил все как сказано, но почему то при выдачи санкции не появляется надпись вот что у меня выдает
""
0
lokanaft lokanaft 11 лет назад #
Посмотрите ответ сервера в фаербаге - я перепробовал все варианты во время теста, проблем не должно быть и на рабочем сайте всё ровно работает.
0
SLOT 800 SLOT 800 11 лет назад #
Я не очень понимаю , но вот, что фаербаг выдает.
""
0
SLOT 800 SLOT 800 11 лет назад #
""
0
SLOT 800 SLOT 800 11 лет назад #
<div class="sess_messages" style="display: block;">
<div class="message_info" id="error_mess"/>
</div>
</div>
<div id="popup_panel">
</td>
<td class="b"/>
вот что пишет в общем
0
lokanaft lokanaft 11 лет назад #
Вы не ту вкладку смотрите, смотрите вкладку сеть, конкретно запрос, который идёт после нажатия кнопки ОК.
0
SLOT 800 SLOT 800 11 лет назад #
скажите а файлы папка patches в какую вкладывать? может я не туда положил их?
0
lokanaft lokanaft 11 лет назад #
Вообще их не надо трогать))
0
SLOT 800 SLOT 800 11 лет назад #
Я знаю, просто попробывал может вдруг проблема уйдет. А в файлбаге не вижу проблемы
0
SLOT 800 SLOT 800 11 лет назад #
Прикол. главное модератор может раздавать санкции а у админа вот так как на скрине вверху.
0
lokanaft lokanaft 11 лет назад #
Теперь совсем интересно стало)) Даже не могу предположить причину, админу вообще всё можно)
0
SLOT 800 SLOT 800 11 лет назад #
В том то и дело. Я пробывал по новой переустановить все равно так же модер рулит, админ при выдаче санкции вот что видит
""
0
lokanaft lokanaft 11 лет назад #
Здесь вам не виндовс программа - переустановка ничего не изменит никогда. Вероятно, что не верно что-то настроили, например администратору не доступен режим 1 всегда.
0
picaboo picaboo 11 лет назад #
может он группу переименовал или айди сменил?
0
lokanaft lokanaft 11 лет назад #
Единственная группа, которая определяется только так - Гости, их псевдоним "guest" ну никак нельзя изменять - остальное никак не завязано на ид и псевдонимах)
0
picaboo picaboo 11 лет назад #
ну тогда SLOT 800 надо звонить и вызывать телепата, только он поможет понять в чем там подвох:(
0
SLOT 800 SLOT 800 11 лет назад #
Режим 1 доступен
+1
lesterkey lesterkey 11 лет назад #
странное дело перекрывает все? то есть если выдан запрет на коментарии то закрывает и подачу обьявлений.
0
lokanaft lokanaft 11 лет назад #
Не может быть такого просто физически)
+1
lesterkey lesterkey 11 лет назад #
я понимаю.. еще раз проверил.. (пользователю запретил удалять свои статьи)на 1 минуту. Итог: закрылось меню пользователя (статьи и написать) коменты и подача обьявлений.. после все включилось и работает..
0
lokanaft lokanaft 11 лет назад #
Действительно, нашёл свой косяк. =(
Как ни странно, на тесте всё нормально работало.
В файле /plugins/p_sanction/plugin.php:
Поменяйте:
Код PHP:
  1. if($sanctions)$info['access'] = array_diff($sanctions, $info['access']);
На:
Код PHP:
  1. if($sanctions)$info['access'] = array_diff($info['access'], $sanctions);
Архив ща обновлю.
0
lesterkey lesterkey 11 лет назад #
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
0
lokanaft lokanaft 11 лет назад #
Вспомнил, а тогда из нетбинса неудачно просто попытался все изменённые файлы достать и всё откатилось до предыдущего сохранения. Видимо до этого файла не дошёл.
0
lesterkey lesterkey 11 лет назад #
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
0
Евгений Евгений 10 лет назад #
При сохранении настроек компонента пишет:
Код PHP:
  1. Fatal error: Call to undefined method cmsUser::clearCsrfToken() in .../admin/components/sanction/backend.php on line 185
0
Петр Петр 10 лет назад #
Будет ли форум? Обещал ведь
0
AlexeyNN AlexeyNN 7 лет назад #
Может, я туплю, конечно... но...
Блин, а как ссыль "Наказать" в профиль добавить?
Вкладка, как я понял, добавляется кодом <li><a href="/sanction"><span>Санкции</span></a></li> (или нет?..)
А вот ссылку для админа "Наказать" никак сообразить не могу...
0
AlexeyNN AlexeyNN 7 лет назад #
Точно, туплю... Плагин забыл включить...
НО!
Плагин включил - вкладка "Санкции" появилась, а ссылки "Наказать" нет... Как, все-таки, ее добавить?
P.S. Шаблон не дефолтный
+1
AlexeyNN AlexeyNN 7 лет назад #
Автор мне так и не помог, в ЛС написал:"Не могу сейчас помочь"
Пришлось копаться в файлах, но решение-таки было найдено.
Возможно, что кому-то пригодится.
В общем, вот эта ссылка "Наказать":
Код PHP:
  1. <a href="javascript:void(0)" class="list-group-item del_friend_ajax" onclick="sanction.addSanction('{$usr.id}');return false;">НАКАЗАТЬ</a>
Прописывается в файле com_users_profile.tpl
P.S. Естественно, заключаем эту ссылку в {if $is_admin}{/if} или {if $usr.id != 1}{/if} - кому как нужно.

Еще от автора

Ajax подгрузка контента для двойки
Ну что, товарищи, сегодня вы своими руками сможете сделать ajax подгрузку записей контента.
AJAX подгрузка комментов для двойки
Как следует из названия, дополнение ограничивает полный вывод всех комментов записи и позволяет пользователю при необходимости посмотреть следующие.
ContentWatch - проверка уникальности добавляемого контента для icms2
Компонент позволяет проверять уникальность текста с помощью сервиса Content-Watch.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.