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

Достать topicID и forumID в коде parser.php

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

Всем привет. Ковыряюсь в коде форума. Нужно достать ID топика и форума куда пользователь отправляет сообщение. Встраиваю функцию в parser.php. Функции нужны эти два идентификатора что бы слать сообщение через api в ту же тему, в которую пользователь шлёт своё. А в идеальном варианте ещё и ID пользователя, который шлёт сообщение может пригодиться.

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


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

parser.php - это парсер ббкодов. Встраивать там какие-то ид чисто идеологически не правильно, так как парсер может подключатся где угодно и обработать любые сущности не только сообщения. Ид темы еще можно, а вот ид сообщения узнать можно только после его создания. То есть во время обработки это чисто физически не возможно, ибо сообщение еще не существует. Вы либо не там капаете, либо не правильно формулируете задачу.

ID текущего пользователя легко можно получить через $this->memberData['member_id'] или $this->registry->member()->getProperty('member_id')

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


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

Изначально была задача бросить кубик если в сообщении есть определённый код. Что то вроде :gd6: :gd6: :gd8: :bd6: :bd6: должно кинуть два шестигранника одного типа, два шестигранника другого типа и один восьмигранник. Самый простой вариант что я нашёл - выбирать эти коды парсером.пхп из сообщения и высылать через API результаты от юзера Cube, а коды удалять из поста. Для этого нужно ID форума и темы + имя пользователя для вставки в сообщение. Ну и если встраивать сообщения прямо между кусками сообщения пользователя то и id пользователя пригодится.

Тоесть грубо говоря если пользователь шлёт в посте :gd6: :gd6: :gd8: :bd6: :bd6: то получает в топике просто сообщение от юзера Cube с броском кубов.

Если шлёт:

 

текст текст текст

:gd6: :gd6: :gd8: :bd6: :bd6:

текст2 текст2 текст2

 

то получет кусок своего сообщения "тест тест тест" от своего имени, кубы от пользователя Cube и остатки сообщения "текст2 текст2 текст2" снова от своего имени.

Может я пытаюсь запихнуть код не в ту часть конечно.

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


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

Парсер ббкодов отрабатывает перед вставкой сообщения в бд. Как минимум получится так, что сообщение бота будет идти перед сообщением пользователя. Поэтому логически сделать это после сохранения поста, но перед этим спарсить "кубик".

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


Ссылка на сообщение
09/29/14 05:57 (изменено)

Тут всё дело в том что одно сообщение пользователя придётся дробить на 2 и больше а в промежутках вставлять посты от кубика. Так что думаю без костылей всё равно не обойдётся.Как тогда лучше всего реализовать такие мультипосты? Я планировал резать текст в парсере и через апи выдавать сначала первую часть топика от юзера, потом кубы от куба и остатки передавать из парсера как текст сообщения. Это конечно явные костыли, но где лучше сделать такую обработку я придумать не смог. Да и как потом передавать данные о кубах из парсера куда то ещё?

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

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


Ссылка на сообщение
Тут всё дело в том что одно сообщение пользователя придётся дробить на 2 и больше а в промежутках вставлять посты от кубика.

Это уже какое-то извращение, лично я не вижу в этом смысла.

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


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

ОК. Подскажите хотя бы куда парсер выдает текс и какая фукция постит сообщения на форум.

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


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

Спасибо. Уже читал. Вопрос был не про апи функцию а про вполне форумную функцию. Куда форма передает текст через парсер? Есть какая то функция поста сообщения?

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


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

Как это все работает вообще? Вот есть текст. Он вводится в форму. И что потом? Как он попадает в парсер? Куда идет дальше? Если не трудно напишите что то вроде: форма -> функция1 -> парсер -> функция2 -> ДБ

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


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

Спасибо. Уже читал. Вопрос был не про апи функцию а про вполне форумную функцию.

Форумные функции используют одни и те же функции. Разница лишь в том, что в форуме они вызываются внутри модулей.

/admin/applications/forums/modules_public/post/post.php

/admin/applications/forums/sources/classes/post/classPostForms.php

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


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

хм... ковырял я ковырял... видимо слепой. Не нашёл куда воткнуть вызов функции, что бы передать ей IDфорума и IDтемы. Подскажите, если не трудно.

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


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

Какой функции? Ид форума и темы можно получить из массива $this->request

t - тема

f - форум

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


Ссылка на сообщение
10/02/14 19:06 (изменено)

То есть я могу откуда то из post.php вызвать некий самопальный файл cube.php если в посте есть нужные BBкоды где бросается кубик и постится форум, передав туда $this->request['t'] $this->request['f']? Плохо я пока это всё понимаю. =(

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

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


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

Всё. Разобрался. Большое спасибо за подсказки. Пойду ковырять код. Как закончу, выложу дайсомёт сюда. А то единственный существующий под 3.2.х и это печально.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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