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

[2.1.x]Показ и автоматическое снятие предупреждений


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

Название: Показ и автоматическое снятие предупреждений

Добавил: rcdesign

Добавлен: 30 Ноя 2005

Обновлен: 30 Ноя 2005

Категория: IP.Board 2.1.x

 

Мод состоит из двух независимых частей:

 

1. Показ предупреждений, чтобы пользователь их не мог пропустить. Если уровень предупреждений меняется, то пользователь видит яркое уведомление, аналогичное уведомлению о новом сообщении в IPB 2.0. Со ссылкой на правила форума и на историю своих предупреждений.

 

Разница в том, что уведомление показывается не 1 раз, а до тех пор пока пользователь принудительно его не закроет.

 

2. Таск автоматического снятия предупреждений. Снимает по 1 предупреждению через заданный период. Если предупреждений не осталось, то можно через определенное время автоматически очистить историю предупреждений пользователя.

 

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

 

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

 

Нажмите здесь, чтобы скачать файл

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

А можно установку по подробнее?

 

После строки 248 вставить:

 

 

//---------------------------------------
// Reset pop-up message
//---------------------------------------
function reset_popup()
{
	$this->ipsclass->DB->cache_add_query( 'generic_get_all_member', array( 'mid' => $this->ipsclass->member['id'] ) );
	$this->ipsclass->DB->cache_exec_query();
	$member_extra = $this->ipsclass->DB->fetch_row();

	$this->ipsclass->DB->do_update( 'members', array(
						   'warn_level_prev' => $member_extra['warn_level'],
						  ), "id={$this->ipsclass->member['id']}"
						 );

	//-----------------------------------------
	// Redirect...
	//-----------------------------------------
	$url = "";		

	if ( $this->ipsclass->input['return'] != "" )
	{
		$url = urldecode($this->ipsclass->input['return']);
	}

	$this->ipsclass->print->redirect_screen( "", $url );

}

после чего вставлять если уже много модов и хаков?

аналогично и

 

После строки 225 вставить:

 

			case 'reset':
			$this->reset_popup();
			break;

 

укажи сами строки, а не их номера

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

Номера строк по оригинальному файлу 2.1.3. Собственно, добавляется еще одна команда и функция, ее обрабатывающая. Извините, не хватает времени чтобы все в деталях задокументировать. Если вам самостоятельно не разобраться, потерпите пару недель. Изменено пользователем rcdesign
Ссылка на комментарий
Поделиться на других сайтах

Поясните пожайлуста момент

4. Добавить в глобальный шаблон форума после строки <!--IBF.NEWPMBOX-->:

<!--exec.file="sources/action_public/misc/warn_popup.php"-->

Это где конкретно?

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

В менеждере скинов, там где глобальный HTML-шаблон редактируется. Это один из пунктов выпадающего меню.
Ссылка на комментарий
Поделиться на других сайтах

В "All Global HTML".

 

Буду править документацию - подкорректирую этот момент.

 

Отзовитесь пожалуйста, кто поставил, нет ли проблем.

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

У меня руский ИПБ, и вот тот пункт где про шаблоны мне не ясен, потому что я уж забыл когда у меня и инглиш был, расскажите кто разобрался.
Ссылка на комментарий
Поделиться на других сайтах

проблемы есть.

с русским ibp 2.1.3 не работает в плане отсылки РМ, если не отсылать gv а просто предупреждение делать то ничего а если ПМ слать то ошибку выкидывает

mySQL query error: INSERT INTO ibf_message_text (msg_date,msg_post,msg_cc_users,msg_sent_to_count,msg_post_key,msg_author_id,
msg_ip_address) VALUES(1134141370,'sdfafsdcsadfafsdfsd','',1,'',4950,'xxx.xxx.xx.xxx')

SQL error: Duplicate entry '4950' for key 2
SQL error code: 
Date: Friday 09th of December 2005 06:16:10 PM

на английской версии форума токого нет.

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

На русском к сожалению проверять не могу.

 

У меня такое подозрение, что дело не в моде, а просто у вас индексы в бале слетели и надо rapair запустить.

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

АГА, дело точно не в моде оказалось, ПМ сами по себе просто не отправляются :D значит и на руссой версии мод полностью рабочий;)буду разруливать индексы.
Ссылка на комментарий
Поделиться на других сайтах

У меня такое подозрение, что дело не в моде, а просто у вас индексы в бале слетели и надо rapair запустить.

 

да не... у меня такое ощущение что инсерт проиходит с одинаковым ключем автоинкримента(по крайней мере ошибка об этом говорит)

вручную при таком запросе что ли следущий id автоинкримента узнавайте...

SELECT MAX(msg_post_key) FROM ibf_message_text;

а потом к этому максимуму, прибавляйте единичку чтоли...

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

PhreakeR: На 2.0.х есть система предупреждений, нужен только "автоматический сниматель предупреждений" :D
Ссылка на комментарий
Поделиться на других сайтах

Поставил. Работает, но предупреждения вроде как не снимаются(Поставил на 1 день для проверки). Щаз буду изучать подробнее.
Ссылка на комментарий
Поделиться на других сайтах

Так и не понял, куда это кидать:

 

В Edit Data Variables создать параметр $url=""

 

В глобальный шаблон форума после строки <!--IBF.NEWPMBOX-->

Добавить <!--exec.file="sources/action_public/misc/warn_popup.php"-->

 

И тоже касяк со строками 225, 248 если моды стоят, после или перед чем их пихать!

Хух, с 225 и 248 строками разобрался:

1 про 225 строку находим:

if ( count($this->nav) < 1 )
	{
		$this->nav[] = $this->ipsclass->lang['w_title'];
	}

и

про 248 строке находим:

		//-----------------------------------------
	// Protected member? Really? o_O
	//-----------------------------------------

и добавляем код!

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

Все сделал по инструкции, непонятных моментов не было, однако, если пытаться поднять, снять варн или посмотреть историю варнов - белый экран.

 

Из-за чего это может быть?

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

Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Создать...

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

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