Перейти к содержимому
Русский язык для Invision Community 5

Система предупреждений

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

И где настраиваются санкции, в зависимости от количества набранных баллов?

Рекомендованные сообщения

Такая задача. Есть политический сабфорум. Люди там перекипетятся - надо наказать, совсем банить не охото. Придумал группу без доступа в этот сабфорум, наказываю политических переводом в эту группу. Зато пока дней 10 они туда доступа не имеют, они по другим веткам форума свободно ходят.

 

Как сделать,что бы через 10 допустим дней, они автоматом возвращались в зад?

Я сделал вид наказания который сразу дает 10 баллов.

 

За 10 баллов настроил, что бы юзера автоматом переводило в группу без политики.

 

Там же настроил, что бы 10 баллов автоматически снималось через 10 дней.

 

Но юзер остается в группе без политики, как сделать, что бы со снятием 10 баллов юзер вновь возвращался в группу исхода?

Если не переводит обратно, тогда придется допилить чтобы при выдаче предупреждения сохранялся real group id, а при истечение переносить обратно.

Да вот как и где7 )

По умолчанию функционал форума не предназначен для перемещения обратно в текущую группу пользователя.

При выдаче предупреждение в /admin/applications/members/modules_public/profile/warnings.php::save() нужно сохранить в кеше пользователя (как самый простой вариант) его текущую группу.

При снятие бана в /admin/sources/base/ipsRegistry.php проверить наличие группы и перенести его обратно в нее.

Да! Но вот как это прописать? )

Там же настроил, что бы 10 баллов автоматически снималось через 10 дней.

Баллы предупреждения автоматически снимаются задачей.

 

1. Добавить новое поле в таблице ibf_members_warn_logs куда будет сохранятся текущая группа пользователя:

 

ALTER TABLE ibf_members_warn_logs ADD COLUMN wl_member_group SMALLINT UNSIGNED NOT NULL DEFAULT '0'

 

2. Открыть \admin\applications\members\modules_public\profile\warnings.php

Найти

 

			'wl_ban_group'		=> $banGroup,

Ниже добавить

 

			'wl_member_group'	=> ( $banGroup ? $this->_member['member_group_id'] : 0 ),

 

3. Открыть задачу \admin\applications\members\tasks\warnings.php

Найти

 

			$this->DB->update( 'members_warn_logs', array( 'wl_expire_date' => 0 ), "wl_id={$r['wl_id']}" );

Ниже добавить

 

		if( $r['wl_member_group'] )
		{
			$this->DB->update( 'members', array( 'member_group_id' => $r['wl_member_group'] ), "member_id={$r['wl_member']}" );
		}

Ррработает!

 

Благодарю. +1

  • 11 месяцев спустя...

Сделал правку из поста #23, работает отлично, но нашел небольшой баг. При попытке авторизации под забаненной учетной записью выводится предупреждение, что мы забанены (это правильно), но выйти из этой учетки уже нельзя, чтобы перезайти в другую... Только если очистить куки браузера. Можно ли это пофиксить?

 

Нашел такое решение:

 

admin/sources/base/ipsRegistry.php

 

if ( ipsRegistry::$request['module'] != 'ajax' or ipsRegistry::$request['section'] != 'warnings' )

Заменить на

 

if( ( ipsRegistry::$request['module'] != 'ajax' or ipsRegistry::$request['section'] != 'warnings' ) && ( ipsRegistry::$request['section'] != 'login' && ipsRegistry::$request['do'] != 'logout' ) )

Оно правильное?

Изменено пользователем Strategius

Отключение выхода так и было задумано, чтобы пользователь не создавал новых аккаунтов. Естественно защита слабая, но тем не менее для неискушенных пользователей это может вызвать определенные затруднения, особенно для тех кто пользуются одним браузером, а о "куки" слышали только из кулинарных рецептов.

Создайте аккаунт или войдите в него для комментирования

Важная информация

При использовании данного сайта, вы согласаетесь с Условия использования и Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим..

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.