Andy123 Posted January 10, 2018 Share Posted January 10, 2018 (edited) Здравствуйте! Возникла потребность отправки только сообщений в существующую тему через API (именно одна конкретная тема с результатами работы стороннего скрипта).Версия IPB 3.4.6, показать не могу, ибо - в закрытой частной сети.В поиске про это ничего не нашел.... Попробовал использовать addTopic(): $member_id = 1;$member = IPSMember::Load($member_id, 'members');$member['member_group_id'] = 4;$member['g_post_new_topics'] = 0;$postClass = new classPost($registry);$postClass->setForumID($forumID);$postClass->setTopicTitle($mytitle);$postClass->setPostContent($mytext);$postClass->setAuthor($member); $postClass->addTopic() Все работает, НО... создается новая тема, а мне это не нужно.Подскажите пожалуйста, как отправлять ТОЛЬКО сами посты и без создания темы, ибо она уже есть. Огромное спасибо! За любой ответ.... ЗЫ: конечно, возможно тупо сторонним скриптом писать напрямую в БД... Но не хотелось бы - не зря же API для IPB делали ))) Edited January 10, 2018 by Andy123 Link to comment Share on other sites More sharing options...
newbie Posted January 11, 2018 Share Posted January 11, 2018 Попробовал использовать addTopic():Этот метод добавляет (создает) тему. Вам нужно addReplyВ поиске про это ничего не нашел....http://ipbskins.ru/forum/topic8466.html#entry84784 Link to comment Share on other sites More sharing options...
Andy1234 Posted January 11, 2018 Share Posted January 11, 2018 Да, спасибо огромное, помогло.Просто я невнимательно просмотрел класс и не увидел Reply(). Приношу свои извинения. Все работает, но при этом возникает ошибка. "Fatal error: Class 'darkLAE' not found in W:\home\localhost\www\my\forum346\admin\sources\classes\output\publicOutput.php on line 2052" сделал как рекомендовано здесь http://ipbskins.ru/forum/topic13669.html (if(!class_exists('darkLAE')){require_once IPS_ROOT_PATH . 'sources/base/darkLAE.php';}) Ошибка перестала проявляться, но вместе с этим и перестал работать индикатор, сигнализирующий о том что есть новые сообщения в теме (изменение пиктограммы, выделение шрифта в названии форума/темы.Можно вернуть индикацию о наличии непросмотренных сообщений и убрать ошибку?Или же придется выбирать между нуленной версией и наличием индикации? Кстати, эта ошибка возникает при любом обращении через API (((((( Спасибо! ЗЫ: офтопик: мне не удалось изначально зарегиться здесь на форуме (капча не показывалась ни в какую), поэтому вошел через Твиттер. При входе на форум меня попросили создать новую учетку. Создал. Сегодня опять зашел сюда через Твиттер. И снова форум сказал мне, что в первый раз меня видит и снова просил создать учетку. Это нормально? Link to comment Share on other sites More sharing options...
newbie Posted January 11, 2018 Share Posted January 11, 2018 Ошибка перестала проявляться, но вместе с этим и перестал работать индикатор, сигнализирующий о том что есть новые сообщения в теме (изменение пиктограммы, выделение шрифта в названии форума/темы. А раньше было?Не думаю. Если Вы тестируете скрипт и запускаете его под пользователем "Админ", а после под этим юзером проверяете "индикатор", то для него тема будет прочитанной. Link to comment Share on other sites More sharing options...
Andy123 Posted January 11, 2018 Author Share Posted January 11, 2018 (edited) Я только приступил к задаче.И вот на этом этапе поступаю так:Открыто два окна браузера. А. В одном окне запускаю скрипт из под админа, отправляю пост в топик. При этом скрипт выдает указанную выше ошибку и я не вижу "окончания" его работы (типа, надпись "все ОК"). Понятно, что скрипт в этом месте остановился.Б. В другом окне открыт сеанс этого же админа на форуме. Форум свернут полностью (до родителя). Делаю так:1. запускаю скрипт, получаю вышеозначенную ошибку, смотрю через ПМА в таблице мускуля - пост появился.2. Иду в другое окно на форум, делаю "обновить страницу" и вижу, что "индикатор" сообщает о наличии непросмотренных сообщений. Разворачиваю форум - название темы тоже написано боллдом, что свидетельствует о наличии в ней непросмотренных этим админом постов. Разворачиваю тему, просматриваю посты, сворачиваю форум.3. Вношу изменения в publicOutput.php.4. Выполняю пп.1 и 2. Вижу, что пост в БД появился, мой скрипт отработал до конца, но в п.2 при обновлении страницы уже нет никаких внешних признаков того, что есть непросмотренные темы - ни пиктограммы, ни выделения болдом названия темы. Если зайти в тему, то пост там есть. Наверное, пока обойдусь собакой (подавление вывода ошибок) в этом месте Осознаю, что мой скрипт постинга отрабатывает не до конца, но он самый последний в цепи. Свою задачу он при этом выполняет - постит результаты работы другого скрипта в топик. Спасибо за помощь. Edited January 11, 2018 by Andy123 Link to comment Share on other sites More sharing options...
Andy123 Posted January 11, 2018 Author Share Posted January 11, 2018 (edited) Хм... перепробовал разные варианты. Вроде, как все работает и с исправленным publicOutput.php без этой пресловутой ошибки.Т.е., если послать пост от имени одного юзера, а на форуме выйти и снова авторизоваться другим юзером, то отметка о непрочитанных устанавливается нормально. Еще раз огромное спасибо всем!!! Edited January 11, 2018 by Andy123 Link to comment Share on other sites More sharing options...
siv1987 Posted January 15, 2018 Share Posted January 15, 2018 Много полезной информации касательно api можно найти по тегу api. ЗЫ: офтопик: мне не удалось изначально зарегиться здесь на форуме (капча не показывалась ни в какую)Спасибо за репорт. Будем разбираться с капчей. SweetCaptcha кажись сдулась. Это пи*дец, похоже она весь последний год у нас не работала и никто не мог регистрироваться. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now