weiss 34 01/07/2013 06:33 PM Имя файла: WarnbotВладелец файла: weissФайл размещен: 08 Янв 2013Файл обновлен: 08 Янв 2013Категория файла: Mods/Моды Хук добавляет «бота», который оставляет сообщения в специальной теме с отчетами о предупреждениях, выданных пользователям. Эти сообщения могут отправляться от любого пользователя, ID которого вы укажете в настройках, либо от имени сделавшего предупреждение. Важно: после установки хука надо настроить ID темы, в которую будут добавляться сообщения, и выбрать форум, в котором лежит эта тема. Настройки находятся по адресу System settings -> вкладка Members -> Warning and Moderation. Нажмите сюда, чтобы скачать этот файл 6 Share this post Link to post
siv1987 2,628 01/07/2013 07:29 PM 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
Strategius 52 12/27/2016 08:24 PM Подскажите, пожалуйста, в чем моя ошибка. Хочу вывести примечание модератора пользователю (запрос отсюда 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
Strategius 52 12/27/2016 09:43 PM (edited) Понял, не тот запрос взял для $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 December 27, 2016 by Strategius Share this post Link to post
siv1987 2,628 12/27/2016 10:17 PM Нахрена там запрос, если сообщение создается перед сохранением предупреждения?.. $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' ); $editor = new $classToLoad(); $note = $editor->process( $_POST['note_member'] ); 1 Share this post Link to post
Strategius 52 12/27/2016 10:20 PM (edited) Спасибо огромное, то что нужно! сообщение создается перед сохранением предупрежденияЯ вот тоже подумал, почему данные берутся из предыдущей строки базы данных :) Edited December 27, 2016 by Strategius Share this post Link to post
t_reks 1 09/03/2019 07:12 PM на 3.4.6 ( дистрибутив лицензионный ) не захотел работать Share this post Link to post
newbie 1,722 09/05/2019 05:40 AM на 3.4.6 ( дистрибутив лицензионный ) не захотел работать А зачем Вы "теги" ({имя}, {причина}, {наказание}) перевели? Share this post Link to post