Опубликовано: 10 января 20187 г Здравствуйте! Возникла потребность отправки только сообщений в существующую тему через 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 делали ))) Изменено 10 января 20187 г пользователем Andy123
Опубликовано: 11 января 20187 г Попробовал использовать addTopic():Этот метод добавляет (создает) тему. Вам нужно addReplyВ поиске про это ничего не нашел....http://ipbskins.ru/forum/topic8466.html#entry84784
Опубликовано: 11 января 20187 г Да, спасибо огромное, помогло.Просто я невнимательно просмотрел класс и не увидел 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 (((((( Спасибо! ЗЫ: офтопик: мне не удалось изначально зарегиться здесь на форуме (капча не показывалась ни в какую), поэтому вошел через Твиттер. При входе на форум меня попросили создать новую учетку. Создал. Сегодня опять зашел сюда через Твиттер. И снова форум сказал мне, что в первый раз меня видит и снова просил создать учетку. Это нормально?
Опубликовано: 11 января 20187 г Ошибка перестала проявляться, но вместе с этим и перестал работать индикатор, сигнализирующий о том что есть новые сообщения в теме (изменение пиктограммы, выделение шрифта в названии форума/темы. А раньше было?Не думаю. Если Вы тестируете скрипт и запускаете его под пользователем "Админ", а после под этим юзером проверяете "индикатор", то для него тема будет прочитанной.
Опубликовано: 11 января 20187 г Автор Я только приступил к задаче.И вот на этом этапе поступаю так:Открыто два окна браузера. А. В одном окне запускаю скрипт из под админа, отправляю пост в топик. При этом скрипт выдает указанную выше ошибку и я не вижу "окончания" его работы (типа, надпись "все ОК"). Понятно, что скрипт в этом месте остановился.Б. В другом окне открыт сеанс этого же админа на форуме. Форум свернут полностью (до родителя). Делаю так:1. запускаю скрипт, получаю вышеозначенную ошибку, смотрю через ПМА в таблице мускуля - пост появился.2. Иду в другое окно на форум, делаю "обновить страницу" и вижу, что "индикатор" сообщает о наличии непросмотренных сообщений. Разворачиваю форум - название темы тоже написано боллдом, что свидетельствует о наличии в ней непросмотренных этим админом постов. Разворачиваю тему, просматриваю посты, сворачиваю форум.3. Вношу изменения в publicOutput.php.4. Выполняю пп.1 и 2. Вижу, что пост в БД появился, мой скрипт отработал до конца, но в п.2 при обновлении страницы уже нет никаких внешних признаков того, что есть непросмотренные темы - ни пиктограммы, ни выделения болдом названия темы. Если зайти в тему, то пост там есть. Наверное, пока обойдусь собакой (подавление вывода ошибок) в этом месте Осознаю, что мой скрипт постинга отрабатывает не до конца, но он самый последний в цепи. Свою задачу он при этом выполняет - постит результаты работы другого скрипта в топик. Спасибо за помощь. Изменено 11 января 20187 г пользователем Andy123
Опубликовано: 11 января 20187 г Автор Хм... перепробовал разные варианты. Вроде, как все работает и с исправленным publicOutput.php без этой пресловутой ошибки.Т.е., если послать пост от имени одного юзера, а на форуме выйти и снова авторизоваться другим юзером, то отметка о непрочитанных устанавливается нормально. Еще раз огромное спасибо всем!!! Изменено 11 января 20187 г пользователем Andy123
Опубликовано: 15 января 20187 г Много полезной информации касательно api можно найти по тегу api. ЗЫ: офтопик: мне не удалось изначально зарегиться здесь на форуме (капча не показывалась ни в какую)Спасибо за репорт. Будем разбираться с капчей. SweetCaptcha кажись сдулась. Это пи*дец, похоже она весь последний год у нас не работала и никто не мог регистрироваться.
Здравствуйте!
Возникла потребность отправки только сообщений в существующую тему через 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 делали )))
Изменено пользователем Andy123