да, и всё таки надо подгрузить на сервис свежую версию стабильную версию jQuery, поскольку расширенные функции по работе с ajax запросами появились начиная с версии jQuery 1.5, а мы до сих пор на 1.4.4, стабильная на данный момент 1.7.1 и даже если некоторые методы изменились и отличаются от версии 1.4.4, я думаю мы оперативно исправим свои скрипты, с которыми возможны конфликты при переходе на старшую версию библиотеки
API MyBB
Сообщений 41 страница 60 из 282
Поделиться42Чт, 15 Мар 2012 16:26:18
ignition, очень желательны, кроме пяти копеек, ещё и предложения по API
я в своё время пытался через ajax запросы прошерстить все темы на наличие в них блока #poll-special
DDoS нервно курит в сторонке
А вообще действительно только так можно определить есть ли опрос в теме
Для защит от чреватостей, - данному боту достаточно присвоить некую группу,
Какой бот, какая группа?
С IE (любых версий) есть проблемы при аяксе - кэширует беспощадно
да, и всё таки надо подгрузить на сервис свежую версию стабильную версию jQuery
Romych, это верно.
Надо бы обновить jQ на последнюю стаб. версию; но при этом некоторые скрипты придётся переписать...
Зато в более новых версиях jQ (в сравнении с 1.4.4) быстродействие выше и возможностей больше.
Поделиться43Чт, 15 Мар 2012 16:53:44
Какой бот, какая группа?
Deff написал(а):было бы интересным решения Post аякс запроса на запись.
Средствами API или аякс - была бы занчительно интересней как для оценки постов(можно было бы дописать и "за что" как у DUKI, так и
данное новведение позволило бы реализовать
а) Нормальный магазин форум - принадлежностей
b) Расширенную статистику
с) Наградную страницу пользователя
В Противном случае - даннные востребования пользователей будут удовлетворяцо треёхфреймовым псевдоаяксом, либо партнёрскими PHP скриптами, что не создаёт дружественной почвы равного старта для партнера.
Отредактировано Deff (Чт, 15 Мар 2012 17:15:50)
Поделиться44Чт, 15 Мар 2012 17:32:43
Не наю про серверные ухищрения - но при аякс запросах, в ИЕ мне пришлось менять адрес на левый - перезапрашивать ненужную страницу - ток потом восстанавливать старый - дабы прочесть очередной раз последнее сообщение, последней страницы
<script type="text/javascript"> var idTopic='30034', idPage='3'; $.ajax({ type: 'GET', url: '/viewtopic.php?id='+idTopic+'&p='+idPage+'#random=' + Math.random(), success: function (data) { var content = $(data).find('div.post-content:last').html() alert(content); // и делай всё что хошь :-) но сервера МуВВ не насилуй многомерными фреймами и аяксами =) } }); </script>
Средствами API или аякс - была бы занчительно интересней как для оценки постов(можно было бы дописать и "за что" как у DUKI, так и...
В Противном случае - даннные востребования пользователей будут удовлетворяцо треёхфреймовым псевдоаяксом, либо партнёрскими PHP скриптами, что не создаёт дружественной почвы равного старта для партнера.
Посмотрим.
Всё решает Admin. Не забывай.
Поделиться45Чт, 15 Мар 2012 17:40:56
RUSSIAN_GOBLIN
Дык мну про то - что мне влезать в твое уже ни к чему, просто попробуй расписать Вид пост запроса... ксать оно и тобой будет весьма востребовано...
Ксать - ,будет весьма прохладен ток Duka - посколь у него достаточно развитое API на запись
Собственно при открытии темы - очевидно - id форума , добавки сообщений - id темы, правки сообщения - id поста
Отредактировано Deff (Чт, 15 Мар 2012 17:45:42)
Поделиться46Чт, 15 Мар 2012 18:11:15
Всё решает Admin. Не забывай.
Не думаю, что судя по развитию расширений для mybb Максим тож не видит, что изготовление куков(*утрирую) только на чтение, чревато нарастающей потребностью и в их записи. Развитие любых привлекательных проектов упрётся именно в запись... причем ведется она от общего Forum_bota c собственой группой, (для которой текущей администрацией открывается лишь нужный форум), поскольку есть правка(и не писать же в новом посте для правки 1 на 2)
Отредактировано Deff (Пт, 16 Мар 2012 10:24:11)
Поделиться47Чт, 15 Мар 2012 19:23:46
Дык мну про то - что мне влезать в твое уже ни к чему, просто попробуй расписать Вид пост запроса... ксать оно и тобой будет весьма востребовано...
???
Это всего лишь мои предложения, а ты естественно можешь своё предложить. И не только ты, но и любой заинтересованный.
Сразу скажу, я подумал и решил -- в моих предложениях по API не будет методов записи в сообщения (т.е. создание тем/опросов, новых сообщений и их редактирования).
Но не унывай, моё предложение по API, которое я опубликую последним, перекроет собой отсутствие записи в сообщения.
Осталось -- доступ к:
спискам юзеров (там же рейтинг поста),
нтмл-контенту,
ЛС,
опросам,
серверному хранилищу.
Не думаю, что судя по развитию расширений для mybb Максим тож не видит, что изготовление куков только на чтение, чревато нарастающей потребностью и в их записи.
А я считаю, что из-за того что куки хранятся на стороне клиента, т.е. браузеров пользователей, Admin'у до лампочки на кукисы.
Ему, пожалуй, важно чтобы "печенюжки", которые создаются движком форумов, нормально работали - читались, писались и сохранялись.
Поделиться48Чт, 15 Мар 2012 19:30:16
RUSSIAN_GOBLIN
Отсутствием поддержки - ти просто толкаешь на реализацию аякс фреймом - уже сейчас - возвращацо после создания достаточно мощного фреймо-АPI к урезанному - смысл ?
Отредактировано Deff (Пт, 16 Мар 2012 08:47:53)
Поделиться49Чт, 15 Мар 2012 19:33:55
Отсутствием поддержки - ти просто толкаешь на реализацию аякс фреймом - уже сейчас - возвращацо после создания достаточно мощного фреймо АPI к урезанному - смысл ?
Не понял.
Отредактировано RUSSIAN_GOBLIN (Чт, 15 Мар 2012 19:34:08)
Поделиться50Чт, 15 Мар 2012 19:54:04
А я считаю, что из-за того что куки хранятся на стороне клиента, т.е. браузеров пользователей, Admin'у до лампочки на кукисы.
Причем тут куки - Они спецом выделены для аналогии - кому они нужны - коли все основные прибамбасы - уже реализованы то ли аякс - то ли фреймом - тем паче думаю что и более быстрее чем через API...
Следующие востребованые реализации для юзеров(не для партнерок) Магазин, расширенная статистика, наградные страницы...
Всё это пока не привязывается в твоей идеалогии
Для сервиса
1.Необходимы функции позволяющие предложить более удобные и простые варианты АPI для реализации предыдущих скриптов, снижающие запросную нагрузку на сервер сейчас и впоследствии.
Для Скриптов 'Первого Сообщения', 'Вывод Опросов на главную', 'ИНфо-Панель - Кто-где';
2.Предотвратить создание новых нагрузок новыми востребованными скриптами требующих Аякса и фреймов
(Было перечислено Выше
Пока понимания ситуации не обнаружено
Отредактировано Deff (Чт, 15 Мар 2012 23:20:59)
Поделиться51Пт, 16 Мар 2012 11:26:01
Продолжаем-с
3. Доступ к спискам юзеров
а) доступ к списку участников форума
Аргумент -> data
Значение -> userList
Возвращает массив с инфой об участниках форума.
По сути, это доступ к данным что отображаются здесь: /userlist.php
но всё-таки с большим количеством доступных данных.
Пример:
Запрос:
http://forum.mybb.ru/api.php?data=userList
Ответ:
[{"id":"2","login":"Admin","groupId":"1","groupTitle":"Администраторы","status":"без бороды и бубна","avatar":"/img/avatars/0000/14/1c/2-1248194534.gif","posts":"2555","registered":"1330839545","lastVizit":"1331839545"}, {"ключ":"значение","ключ":"значение" и т.д.}, {"ключ":"значение","ключ":"значение" и т.д.}, {"ключ":"значение","ключ":"значение" и т.д.}, и т.д. ]
Доп. параметры запроса:
Аргумент -> groupId
Значение -> id-шник группы
При не нулевом значении ограничивает массив ответа участниками какой-либо одной группы
0 или явное отсутствие в запросе - все группы
1 - админы, 2 - модеры, 3 гости, 4 юзеры и т.п.
Аргумент -> sort_by
Значение -> номер признака сортировки юзеров в массиве ответа
Указывает порядок расположения инфы в массиве ответа
0 или явно не указано в запросе - по UserID
1 - по алфавитному расположению логинов
2 - по времени регистрации в формате кол-ва сек с начала эпохи UNIX
4 - по времени последнего визита в формате кол-ва сек с начала эпохи UNIX
5 - по количеству сообщений
Аргумент -> sort_dir
Значение -> номер признака упорядочивания юзеров в массиве ответа
Указывает принцип упорядочивания инфы в массиве ответа
0 или явно не указано - по возрастанию
1 - по убыванию
Аргумент -> timeVizit
Значение -> число секунд
Ограничивает массив ответа участниками что были последних раз на форуме не позднее заданного (значением в запросе) числа секунд назад.
Пример:
Запрос:
http://forum.mybb.ru/api.php?data=userList&timeVizit=3600
Ответом будет массив с инфой об участниках, которые были на форуме в течении одного часа до момента запроса.
Т.е.:
if(( текущее время в сек от нач. эп. UNIX — время последнего визита юзера )< timeVizit )
Массив будет иметь сортировку по UserID, упорядочивание по возрастанию, т.к. значения сортировки и упорядочивания явно не указаны.
Аргумент -> max
Значение -> максимальное кол-во юзеров выводимых в массиве
Ограничивает в массиве ответа количество данных об участниках, по кол-ву участников
Используемые ключи:
id - UserID
login - логин
groupId - идентификационный номер группы
groupTitle - название группы
status - статус участника
avatar - относительный путь к аватару "/img/avatars/0000/*********.jpg", если не установлен - пустая текст. строка
posts - число постов данного юзера
registered - дата регистрации на форуме (для гл. админа момент создания форума) в секундах от начала эпохи UNIX
lastVizit - дата последнего визита в секундах от начала эпохи UNIX
Получение только нужных данных в массиве
Это возможно при использовании доп. аргументов со значением 1.
Примеры:
Запрос:
http://forum.mybb.ru/api.php?data=userList&login=1
Ответ:
[{"login":"Admin"}, {"login":"Dron"}, {"login":"Priest"}, и т.д. ]
В ответе массив логинов всех зарегистрированных участников форума, сортировка по умолчанию (UserID), упорядочивание по умолчанию (возрастание).
Запрос:
http://forum.mybb.ru/api.php?data=userList&groupId=2&login=1
Ответ:
[{"login":"Le$vEr"}, {"login":".Slip"}, {"login":"prizrak"}, {"login":"Bendernative"}, {"login":"[M.@.t.r.i.x]"}, {"login":"mkusher"}, {"login":"Impuls 101"}, {"login":"Romul"}]
В ответе массив логинов членов группы Модераторы, сортировка по умолчанию т.е. по UserID, упорядочивание по умолчанию, т.е. по возрастанию.
----------------------
б) доступ к списку посетителей форума, находящихся онлайн
Т.е. доступ к инфе отсюда: /online.php
Аргумент -> data
Значение -> userOnline
Возвращает массив со доступной информацией о посетителях форума, находящихся онлайн.
Сортировка в массиве осуществляется по времени последнего действия, упорядочивание по убыванию.
Пример:
Запрос:
http://forum.mybb.ru/api.php?data=userOnline
Ответ:
[{"id":"2", "login":"Admin","groupId":"2","ip":"","avatar":"/img/avatars/0000/14/1c/2-1248194534.gif","lastAction":"<a href="http://forum.mybb.ru/">Админит с форумами</a>","time":"1331839553"}, {"id":"11", "login":"Dron","groupId":"4","ip":"","avatar":"/img/avatars/0000/********.gif","lastAction":"Читает тему: <a href="http://forum.mybb.ru/viewtopic.php?id=30011">НескончаеМЫе общие вопросы от новичков (37)</a>","time":"1331839530"}, {"id":"12", "login":"Priest","groupId":"4","ip":"","avatar":"/img/avatars/0000/*******.gif","lastAction":"В форуме: <a href="http://forum.mybb.ru/viewforum.php?id=16">Новые возможности форумов</a>","time":"1331839510"}, и т.д. ]
Используемые ключи:
id - номер идентификатора участника, у Гостя - 1
login - логин участника, у гостя - Гость
status - статус участника; у гостя пустая текст. строка, если статус не установлен гостям в Администрирование / Группы
groupId - идентификационный номер группы
ip - айпи-адрес (ай-пи возвращается только членам гр. Админ., остальные получают пустую тект. строку.
Т.е. тут нужен учёт авторизованной сессии: если есть сессия участника форума и юзер гр. Админ - передавать айпи-адрес. Всем остальным - модераторам, простым юзерам и гостям - пустая текст. строка)
avatar - относительный путь к аватару "/img/avatars/0000/*********.jpg", у гостя и тех, у кого авик не установлен - пустая текст. строка
lastAction - описание действия + ссылка, т.е. "Действие <a href="http://*******">*******</a>"
timeAction - дата последнего действия в секундах от начала эпохи UNIX
Получение только нужных данных
Это возможно при использовании доп. аргументов со значением 1.
Примеры:
Запрос:
http://forum.mybb.ru/api.php?data=userOnline&login=1
Ответ:
[{"login":"Admin"}, {"login":"Dron"}, {"login":"Priest"}, и т.д. ]
Запрос:
http://forum.mybb.ru/api.php?data=userOnline&login=1&lastAction=1
Ответ:
[{"login":"Admin","lastAction":"<a href="http://forum.mybb.ru/">Админит с форумами</a>"}, {"login":"Dron","lastAction":"Читает тему: <a href="http://forum.mybb.ru/viewtopic.php?id=30011">НескончаеМЫе общие вопросы от новичков (37)</a>"}, {"login":"Priest","lastAction":"В форуме: <a href="http://forum.mybb.ru/viewforum.php?id=16">Новые возможности форумов</a>"}, и т.д. ]
-------------------------------
в) доступ к списку участников форума, давших оценку конкретному посту
Т.е. примерно эту инфу - http://forum.mybb.ru/respect.php?id=2 , но не для всех постов, а только для выбранного поста путём передачи в запросе обязательного аргумента postId со значением равным идентификационному номеру поста.
Аргумент -> data
Значение -> patingPost
Аргумент -> postId - обязательный аргумент в запросе
Значение -> идентификационный номер поста
Возвращает массив с информацией об участниках форума, давших оценку определённому посту.
Сортировка по дате оценки, упорядочивание по убыванию.
Пример:
Запрос:
http://forum.mybb.ru/api.php?data=ratingPost&postId=746501
Ответ:
[{"id":"20753", "login":"geka996", "avatar":"/img/avatars/0000/********.gif", "rating":"1", "time":"1331839553"}, {"id":"22787", "login":"Deff", "avatar":"/img/avatars/0000/********.gif", "rating":"1", "time":"1331839530"}]
Используемые ключи:
id - номер идентификатора участника
status - статус участника
avatar - относительный путь к аватару строкой, т.е. "/img/avatars/********.jpg"; если не установлен аватар, то пустая текст. строка
time - дата выставления оценки в секундах от начала эпохи UNIX
rating - оценка: "1" если положит., и "-1" если отриц.
Получение только нужных данных
Это возможно при использовании доп. аргументов со значением 1.
Примеры:
Запрос:
http://forum.mybb.ru/api.php?data=ratingPost&postId=746501&id=1&login=1&rating=1
Ответ:
[{"id":"20753", "login":"geka996", "rating":"1"}, {"id":"22787", "login":"Deff", "rating":"1"}]
Отредактировано RUSSIAN_GOBLIN (Пт, 16 Мар 2012 12:07:11)
Поделиться52Пт, 16 Мар 2012 12:02:04
Для сервиса
1.Необходимы функции позволяющие предложить более удобные и простые варианты АPI для реализации предыдущих скриптов, снижающие запросную нагрузку на сервер сейчас и впоследствии.
Для Скриптов 'Первого Сообщения', 'Вывод Опросов на главную', 'ИНфо-Панель - Кто-где';
Ух ты! У меня оказываеццо есть идеология
Доступ к посетителям, находящимся онлайн - решает задачу создания, с помощью API, аналога "Инфо-панели: кто - где".
А доступ к списку юзеров, давших оценку посту, даёт возможность сделать скрипт Ромычу.
Кроме этого доступ к списку юзеров, решает задачу создания скрипта статистики "Посетили за сутки" для партнёров.
В Настройщике "Недавние посетители форума" работают так: страница /userlist.php дёргается с сервера МуВВ скриптом на хостинге, парсится инфа и выдаётся список готовый (он кэшируется на сервере на 1 час), который принимает js-скрипт Настройщика
Попозже опубликую доступ к НТМL-контенту.
Deff, кстати, зачем через фрейм берёшь последнее сообщение темы? Чо скрипт-то с ним делает?
Поделиться53Пт, 16 Мар 2012 12:08:45
RUSSIAN_GOBLIN
Портал как то делал как на PUNBB
Нужна запись на форум .. иначе и тьву придецо к каждому форумы приделывать дополнительное BD на партнёрке - мы это уже прошли
Отредактировано Deff (Пт, 16 Мар 2012 12:09:11)
Поделиться54Пт, 16 Мар 2012 12:59:43
дополнительное BD
Шо за зверь?
Поделиться55Пт, 16 Мар 2012 13:01:53
Внимание - исправление!
Дополнение к: 2. Доступ к информации об участнике форума
Часть: доступ по UserLogin
Перед отправкой get-запросом логина, он должен быть кодирован с помощью метода Base64:
Код метода:
<script type="text/javascript"> var Base64 = { _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode : function (input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0 while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if( isNaN(chr2) ) { enc3 = enc4 = 64; }else if( isNaN(chr3) ){ enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; } } </script>
Пример вызова:
<script type="text/javascript"> var mylogin = 'Неадекватный адекват'; $.getJSON("api.php", { data: "user", login: Base64.encode(mylogin) }, function(json) { //тут получение инфы об юзере и манипуляции с инфой... }); </script>
На сервере, логин должен быть раскодирован функцией языка PHP - base64_decode();
Это всё из-за того что в логине могут быть пробелы, русские символы и спецсимволы
Хотя может Admin придумает другое решение, что-нибудь поудачней
Поделиться56Пт, 16 Мар 2012 13:03:49
RUSSIAN_GOBLIN
BD, - База Данных, простейший пример - напоминалка в Админке на Rusff (удобная весчь) - так считал из топика и вставил - а так - размещай на партнёрке... ксать и настройки твоих скриптов(загружаемых) можно воткнуть в топик - ты же кэширование заказал ...(Я уже не говорю об инфе, кто и за что поставил плюсы, наградной лист, магазин - кто и что купил...а так открыл тему с ником... там и награды и кто и за что и т.д
Ко всему прочему тема - может быть видна ток Forum_botu (в установках форума), посколь группа иная
Отредактировано Deff (Пт, 16 Мар 2012 13:18:07)
Поделиться57Пт, 16 Мар 2012 13:06:54
БД, простейший пример - напоминалка в Админке на Rusff (удобная весчь) - так считал из топика и вставил - а так - размещай на партнёрке...
Опиши что это поподробней в ЛС.
Поделиться58Пт, 16 Мар 2012 13:07:31
Это всё из-за того что в логине могут быть пробелы, русские символы и спецсимволы
Хотя может Admin придумает другое решение, что-нибудь поудачней
А чо не как обычно encodeURIComponent, вродь ники не слишком длинныя ? можно и отправлять сразу кодированное (или в кодирование вставить в саму функцию преобразования при отправке
Отредактировано Deff (Пт, 16 Мар 2012 13:09:07)
Поделиться59Пт, 16 Мар 2012 13:19:28
А чо не как обычно encodeURIComponent
Дык вроде бы нет в PHP функции для расшифровки этого.
Кажется: rawurldecode(); и urldecode(); не так расшифровывают, как расшифровывает в javascript функция decodeURIComponent();
Поделиться60Пт, 16 Мар 2012 13:31:20
Дык вроде бы нет в PHP функции для расшифровки этого.
http://mex.su/a5Q4i
rawurlencode
RawUrlEncode