Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
reaktor

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

Recommended Posts

В списке групп, в которые можно перевести отображаются на все группы форума, как можно в этот список внести остальные группы?

Так там нет групп, имеющих доступ в АЦ, супермодераторов и группы, установленной для гостей, что и прописано в условии:

                            <if test="canUseAsBanGroup:|:!$data['g_access_cp'] && !$data['g_is_supmod'] && ($id != $this->settings['guest_group'])">

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Там же настроил, что бы 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']}" );
		}

  • Upvote 3

Share this post


Link to post
Share on other sites

Ррработает!

 

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

Share this post


Link to post
Share on other sites

Сделал правку из поста #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' ) )

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

Edited by Strategius

Share this post


Link to post
Share on other sites

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

  • Upvote 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...