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

Warnbot

Recommended Posts

index.php?app=downloads&module=display&section=screenshot&id=273

Имя файла: Warnbot

Владелец файла: weiss

Файл размещен: 08 Янв 2013

Файл обновлен: 08 Янв 2013

Категория файла: Mods/Моды

 

Хук добавляет «бота», который оставляет сообщения в специальной теме с отчетами о предупреждениях, выданных пользователям. Эти сообщения могут отправляться от любого пользователя, ID которого вы укажете в настройках, либо от имени сделавшего предупреждение.

 

Важно: после установки хука надо настроить ID темы, в которую будут добавляться сообщения, и выбрать форум, в котором лежит эта тема. Настройки находятся по адресу System settings -> вкладка Members -> Warning and Moderation.

 

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

  • Upvote 6

Share this post


Link to post

Класненько. IPB 3.3+ работает?

Share this post


Link to post

Да, 3.3 и 3.4.

Share this post


Link to post

       define('IPS_ENFORCE_ACCESS', true);
       require_once('initdata.php');
       require_once(IPS_ROOT_PATH . 'sources/base/ipsRegistry.php');
       require_once(IPS_ROOT_PATH . 'sources/base/ipsController.php');

       $registry = ipsRegistry::instance();
       $registry->init();

 

Это лишнее, имхо. http://ipbskins.ru/forum/topic10582.html

А в данном контексте доступен $this->registry и $this->settings

Share this post


Link to post

На 3.2 не поставился...

Share this post


Link to post

Подскажите, пожалуйста, в чем моя ошибка. Хочу вывести примечание модератора пользователю (запрос отсюда http://ipbskins.ru/forum/topic13614.html/page__view__findpost__p__90403).

 

После

 

// reason
       if (intval($this->request['reason']) === 0) {
           $reason = $this->lang->words['warnings_reasons_other'];
       } else {
           $reason = $this->reasons[intval($this->request['reason'])]['wr_name'];
       }

Добавляю:

 

// note
       $note = array(
           'select' => 'wr.wr_name',
        'from'   => array( 'members_warn_reasons' => 'wr' ),
        'where'  => 'w.wl_reason=wr.wr_id',
		'type'   => 'left',
       );

Перед

 

$postContent = $this->settings['warnbot_post'];

Добавляю

 

$note    = $warn['wl_note_member'];
$note    = $note ? $note : $warn['wr_name'];

И после

 

$postContent = str_replace('{move_to_ban_group}', $ban_group, $postContent);

Добавляю

 

$postContent = str_replace('{note}', $note, $postContent);

В сообщение по идее должна выводиться заметка модератора по ключу {note}, но она не выводится... В чем проблема?

Share this post


Link to post

Понял, не тот запрос взял для $note...

 

С такой конструкцией тоже работает некорректно, берет примечание с предыдущего предупреждения почему-то :(

 

// note
	if( ! empty( $wl_id ) )
	{
       $this->DB->build( array( 'select' => 'w.*',
								'from'   => array( 'members_warn_logs' => 'w' ),
								'where'  => 'wl_id IN ('.implode(',', $wl_id).')',
							) );
	$this->DB->execute();

	while( $warn = $this->DB->fetch() )
			{
			$note = $warn['wl_note_member'];
	        $note = $note ? $note : $warn['wr_name'];
			}
	}

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

Edited by Strategius

Share this post


Link to post

Нахрена там запрос, если сообщение создается перед сохранением предупреждения?..

 

$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );
$editor = new $classToLoad();

$note = $editor->process( $_POST['note_member'] );

  • Upvote 1

Share this post


Link to post

Спасибо огромное, то что нужно!

 

сообщение создается перед сохранением предупреждения

Я вот тоже подумал, почему данные берутся из предыдущей строки базы данных :)

Edited by Strategius

Share this post


Link to post

на 3.4.6 ( дистрибутив лицензионный ) не захотел работать

 

Snymok.png

 

Share this post


Link to post

на 3.4.6 ( дистрибутив лицензионный ) не захотел работать

 

А зачем Вы "теги" ({имя}, {причина}, {наказание}) перевели?

Share this post


Link to post

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...