Перейти к контенту
  • 0

При достижении 100% пользователь автоматом попадает в баню


Stas11

Вопрос

Помню этот вопрос поднимался не раз, но толкового решения так и не смогли найти, порыл сейчас поиском, но поиск молчит наглухо!

Решил пошарить по гуглу и нашол на одном из форумов кто то из программистов предложил такой вариант решения.

Суть проста, когда модераторы ставят предупреждения, то по достижении 100% он так и остаётся мембером со своей иконкой, если зайти в админку и оттуда перекинуть пользователя в баню, то иконка меняется в соответствии с группой. Но вот как реализовать такую фишку не через админку, а чтоб модераторы могли ставить Пошки и когда будет последнее предупреждение 100%, то этот пользователь автоматом переместился бы в баню.

По гуглу нашол такое решение:

Найти:
Цитата (warn.php)
    if ( $warn_level > $ibforums->vars['warn_max'] )
    {
         $warn_level == $ibforums->vars['warn_max']; 


Добавить после:
          $DB->query("UPDATE ibf_members SET mgroup=номер_группы_бана WHERE id='".$this->warn_member['id']."'");


номер группы бана - это обычно 5

 

У меня в этом файле немного другая структура, но тем не менее я нашол функцию максимального количества предов.

 

//-----------------------------------------
	// Update member
	//-----------------------------------------

	$warn_level = intval($this->warn_member['warn_level']);

	if ( $this->ipsclass->input['level'] == 'add' )
	{
		$warn_level++;
	}
	else
	{
		$warn_level--;
	}

	if ( $warn_level > $this->ipsclass->vars['warn_max'] )
	{
		$warn_level = $this->ipsclass->vars['warn_max'];
	}

	if ( $warn_level < intval($this->ipsclass->vars['warn_min']) )
	{
		$warn_level = 0;
	}

	$this->ipsclass->DB->do_update( 'members', array (
									  'mod_posts'     => $mod_queue,
									  'restrict_post' => $restrict_post,
									  'temp_ban'      => $susp,
									  'warn_level'    => $warn_level,
									  'warn_lastwarn' => time(),
				  ) , "id={$this->warn_member['id']}"  );

 

Вставлял код и так и этак, но никак не работает :(

 

if ( $warn_level > $this->ipsclass->vars['warn_max'] )
	{
		$warn_level = $this->ipsclass->vars['warn_max'];
                   $DB->query("UPDATE ibf_members SET mgroup=8 WHERE id='".$this->warn_member['id']."'");
	}

 

И никак не работает функция. Если сделать запрос к БД через админку

UPDATE ibf_members SET mgroup=8 WHERE id=2

То меммбер переводится в восьмую группу, а вот в варне эта функция почему то не срабатывает. :(

 

Подскажите плиз что и где не так, и как сделать чтобы было так :)

Заранее премного благодарен за помощь.

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0

Спасибо большое за ответ, но пока ждал ответа, это решение предлагает автоматом переносить пользователя в баню, и не более, а разбан уже админом. Я решил не сидеть и тупо ждать пока подскажут, а разобраться сам и в ходе этих разборок нагуглил на каком то сайте модификацию которая добавляет блок настроек в админку и там можно настроить параметры для модераторов. Я всё сделал по инструкции, теперь всё заработало, пользователю можно дать как по 20%, так и поставив галочку сразу с нуля довести до 100% одним предом, при этом пользователь автоматом перемещается в группу 8 (бан) так же есть возможность понизить пред, при этом поставив галочку перевести его обратно в прежнюю группу, то есть мембер, но есть одна маленькая проблема файл настроек который я экспортировал через админку добавил в меню варнов ещё 1 блок настроек, но только он не коректно отображается, то есть там есть пункт в какую группу перемещать юзера по достижении 100% и по идее должен быть выпадающий список всех групп, но у меня нету этого списка, а по дефолту стоит "Ничего не делать при достижении 100%" поэтому я открыл сам файл настроек в редакторе и сам ввёл номер группы по дефолту <conf_default>8</conf_default> до этого стояло none.

По сути модификация работает, но в админке нет полноценного меню настроек, и если нужно будет что то изменить, нужно будет менять путём редактирования файла настроек. В первом посту забыл указать что у меня форум 2.2.2 и 2.3.6 (но они по сути идентичны) :)

Модификация предназначена для версии 2.1.* и при этом для английской версии, я во всех файлах всё поправил с учётом моей версии и языка, но вот с файлом настроек проблема, так как не дружу с xml.

Помогите кто чем может правильно составить файл (язык не важен, я сам потом поправлю) главное где то неправильно стоит параметр таблицы, а вот где я вроди не нашол. Вот весь код настроек:

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<settingexport exported="1140886831">
<settinggroup>
	<setting>
		<conf_id>348</conf_id>
		<conf_title><![CDATA[Choose 'Don't Demote' to disable demotions.]]></conf_title>
		<conf_description><![CDATA[When your members reach 100% warning level, they will be 'demoted' to the specified group.]]></conf_description>
		<conf_group>28</conf_group>
		<conf_type>dropdown</conf_type>
		<conf_key>warn_demotion</conf_key>
		<conf_value></conf_value>
		<conf_default>8</conf_default>
		<conf_extra></conf_extra>
		<conf_evalphp><![CDATA[if( $show == 1 )
{
if( is_array($this->ipsclass->cache['group_cache']) )
{
	foreach( $this->ipsclass->cache['group_cache'] as $k => $v )
	{
		$dropdown[] = array( $v['g_id'], $v['g_title'] );
	}
}
else
{
	$this->ipsclass->DB->simple_construct( array( 'select' => 'g_id, g_title', 'from' => 'groups' ) );
	$this->ipsclass->DB->simple_exec();

	while( $r = $this->ipsclass->DB->fetch_row() )
	{
		$dropdown[] = array( $r['g_id'], $r['g_title'] );
	}
}
array_unshift($dropdown, array('none', "Don't Demote"));
}]]></conf_evalphp>
		<conf_protected>1</conf_protected>
		<conf_position>16</conf_position>
		<conf_start_group>Group Demotion</conf_start_group>
		<conf_end_group>1</conf_end_group>
		<conf_help_key></conf_help_key>
		<conf_add_cache>1</conf_add_cache>
		<conf_title_keyword>warnsetup</conf_title_keyword>
	</setting>

	<setting>
		<conf_is_title>1</conf_is_title>
		<conf_title_keyword>warnsetup</conf_title_keyword>
		<conf_title_title>Warn Set-up</conf_title_title>
		<conf_title_desc>This section will allow you to set up the warning system.</conf_title_desc>
		<conf_title_noshow>0</conf_title_noshow>
	</setting>
</settinggroup>

</settingexport>

 

Что на что поправить нужно чтобы в админке настройка отображалсь коректно?

Заранее ещё раз спасибо за помощь. Если что, то потом могу выложить этот мод для всех желающих.

В админке из всего этого видно только текст title и описание к нему из description, и кнопка для выпадающего меню, но в меню ничего нет и кнопка не выпадает :)

Изменено пользователем Stas11
Ссылка на комментарий
Поделиться на других сайтах

  • 0

При импорте такого xml файла настроек в админке при входе в настройки предупреждений сверху появляется сообщение:

Сообщение Invision Power Board

 

 

Setting PHP code not evaluated. EVAL code contains PHP command keywords.

 

Уже все параметры перекопал, вроди всё правильно и всё в порядке, однако выбор группы через админку не выводится :( Я уже и кодировку поменял, и английский текст поменял на Русский и всё равно никак.

 

http://www.imget.ru//images/2010/09/08/small_RfaQzn0fXO.jpg

 

Помогите кто нибудь с этой настройкой пожалуйста.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Подскажите плиз кто нибудь, всё работает как положено, только вот единственная загвоздка в импорте настройки, нет выпадающего списка с группами для выбора куда будет помещён юзер после набора 100% (вернее как видно на скане выпадающее меню есть, но оно пустое, туда не интегрируется список групп.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

И тишинааааааа.. :) Неужели никто не знает где косяк в коде для 2.2.2 чтобы настройка импортировалсь полноценно?

Товарищи программисты, не проходите мимо :))

Ссылка на комментарий
Поделиться на других сайтах

  • 0

заменить на..

<?xml version="1.0" encoding="ISO-8859-1"?>
<settingexport exported="1140886831">
       <settinggroup>
               <setting>
                       <conf_id>348</conf_id>
                       <conf_title><![CDATA[Choose 'Don't Demote' to disable demotions.]]></conf_title>
                       <conf_description><![CDATA[When your members reach 100% warning level, they will be 'demoted' to the specified group.]]></conf_description>
                       <conf_group>28</conf_group>
                       <conf_type>dropdown</conf_type>
                       <conf_key>warn_demotion</conf_key>
                       <conf_value></conf_value>
                       <conf_default>8</conf_default>
                       <conf_extra>#show_groups#</conf_extra>
                       <conf_evalphp></conf_evalphp>
                       <conf_protected>1</conf_protected>
                       <conf_position>16</conf_position>
                       <conf_start_group>Group Demotion</conf_start_group>
                       <conf_end_group>1</conf_end_group>
                       <conf_help_key></conf_help_key>
                       <conf_add_cache>1</conf_add_cache>
                       <conf_title_keyword>warnsetup</conf_title_keyword>
               </setting>

               <setting>
                       <conf_is_title>1</conf_is_title>
                       <conf_title_keyword>warnsetup</conf_title_keyword>
                       <conf_title_title>Warn Set-up</conf_title_title>
                       <conf_title_desc>This section will allow you to set up the warning system.</conf_title_desc>
                       <conf_title_noshow>0</conf_title_noshow>
               </setting>
       </settinggroup>

</settingexport>

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Огромное спасибо! Всё получилось и настройка корректно отображается :)

Если надо, то могу выложить инструкцию по установке этой модификации на форумы 2.2.2 или 2.3.6 (ставил только на эти, возможно и для других версий 2.2.*, 2.3.* работает)

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

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

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.