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

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.

 

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

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

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

  • Автор

Да, 3.3 и 3.4.

       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

  • Автор

@siv1987, учту.

  • 2 года спустя...

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

Да, 3.3 и 3.4.
  • 1 год спустя...

Подскажите, пожалуйста, в чем моя ошибка. Хочу вывести примечание модератора пользователю (запрос отсюда 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}, но она не выводится... В чем проблема?

Понял, не тот запрос взял для $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'];
			}
	}

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

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

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

 

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

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

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

 

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

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

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

  • 2 года спустя...

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

 

Snymok.png

 

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

 

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

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

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

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

Аккаунт

Навигация

Поиск

Поиск

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

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