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