Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Andy123

Как отправить пост в СУЩЕСТВУЮЩУЮ тему через API (3.4.6)?

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

01/10/18 19:45 (изменено)

Здравствуйте!

 

Возникла потребность отправки только сообщений в существующую тему через 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

Поделиться сообщением


Ссылка на сообщение

Попробовал использовать addTopic():

Этот метод добавляет (создает) тему. Вам нужно addReply

В поиске про это ничего не нашел....

http://ipbskins.ru/forum/topic8466.html#entry84784

Поделиться сообщением


Ссылка на сообщение

Да, спасибо огромное, помогло.

Просто я невнимательно просмотрел класс и не увидел 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 ((((((

 

Спасибо!

 

 

ЗЫ: офтопик: мне не удалось изначально зарегиться здесь на форуме (капча не показывалась ни в какую), поэтому вошел через Твиттер. При входе на форум меня попросили создать новую учетку. Создал. Сегодня опять зашел сюда через Твиттер. И снова форум сказал мне, что в первый раз меня видит и снова просил создать учетку. Это нормально?

Поделиться сообщением


Ссылка на сообщение

Ошибка перестала проявляться, но вместе с этим и перестал работать индикатор, сигнализирующий о том что есть новые сообщения в теме (изменение пиктограммы, выделение шрифта в названии форума/темы.

 

А раньше было?

Не думаю. Если Вы тестируете скрипт и запускаете его под пользователем "Админ", а после под этим юзером проверяете "индикатор", то для него тема будет прочитанной.

Поделиться сообщением


Ссылка на сообщение
01/11/18 16:06 (изменено)

Я только приступил к задаче.

И вот на этом этапе поступаю так:

Открыто два окна браузера.

 

А. В одном окне запускаю скрипт из под админа, отправляю пост в топик. При этом скрипт выдает указанную выше ошибку и я не вижу "окончания" его работы (типа, надпись "все ОК"). Понятно, что скрипт в этом месте остановился.

Б. В другом окне открыт сеанс этого же админа на форуме. Форум свернут полностью (до родителя).

 

Делаю так:

1. запускаю скрипт, получаю вышеозначенную ошибку, смотрю через ПМА в таблице мускуля - пост появился.

2. Иду в другое окно на форум, делаю "обновить страницу" и вижу, что "индикатор" сообщает о наличии непросмотренных сообщений. Разворачиваю форум - название темы тоже написано боллдом, что свидетельствует о наличии в ней непросмотренных этим админом постов. Разворачиваю тему, просматриваю посты, сворачиваю форум.

3. Вношу изменения в publicOutput.php.

4. Выполняю пп.1 и 2. Вижу, что пост в БД появился, мой скрипт отработал до конца, но в п.2 при обновлении страницы уже нет никаких внешних признаков того, что есть непросмотренные темы - ни пиктограммы, ни выделения болдом названия темы. Если зайти в тему, то пост там есть.

 

Наверное, пока обойдусь собакой (подавление вывода ошибок) в этом месте

Осознаю, что мой скрипт постинга отрабатывает не до конца, но он самый последний в цепи. Свою задачу он при этом выполняет - постит результаты работы другого скрипта в топик.

 

Спасибо за помощь.

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

Поделиться сообщением


Ссылка на сообщение
01/11/18 20:46 (изменено)

Хм... перепробовал разные варианты. Вроде, как все работает и с исправленным publicOutput.php без этой пресловутой ошибки.

Т.е., если послать пост от имени одного юзера, а на форуме выйти и снова авторизоваться другим юзером, то отметка о непрочитанных устанавливается нормально.

 

Еще раз огромное спасибо всем!!!

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

Поделиться сообщением


Ссылка на сообщение

Много полезной информации касательно api можно найти по тегу api.

 

ЗЫ: офтопик: мне не удалось изначально зарегиться здесь на форуме (капча не показывалась ни в какую)

Спасибо за репорт. Будем разбираться с капчей.

 

SweetCaptcha кажись сдулась.

Это пи*дец, похоже она весь последний год у нас не работала и никто не мог регистрироваться.

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...