#71 2011.05.16 19:02

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Переезд сервера

Ок можно и без Api дале будет видно
Добавлено спустя   4 минуты  45 секунд:
Да еще одно на пост запрос $_POST['forum]=='get_forum' отдай JSON
Это я хотел дописать еще один запрос на api но передумал незнаю как оно отправилось случайно отправил.
А вообще зделай только то что просил перед этим ведь трафика будет много ганять

Отредактировано TLENS (2011.05.16 19:08)

Неактивен

#72 2011.05.16 19:25

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Переезд сервера

sad((
я не знаю как тебе еще сказать что у меня нет четкой задачи чтобы начать ее выполнять...

Неактивен

#73 2011.05.16 19:29

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Переезд сервера

Окей.
Добавлено спустя   5 минут  31 секунду:
Щас я за сигаретами сганяю и опишу

Отредактировано TLENS (2011.05.16 19:34)

Неактивен

#74 2011.05.16 20:28

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Переезд сервера

Слушай вообщем план такой первый раз при запуске плагина откроется новое окно с форумом.
Плагин и плагин извлечет данные со страницы о последних сообщениях и сохранит их в память.
Потом с указанным в настройках интервалом отдает тебе на api post с данными.
$_POST['forum'] = array(5){
    [0] => 'id последнего сообщения в первом форуме (PHP and MySQL)'
    [1] => 'id последнего сообщения в втором форуме (xHTML/CSS/JavaScript)'
    [2] => 'id последнего сообщения в третем форуме (Компьютеры/Софт)'
    [3] => 'id последнего сообщения в третем форуме (Юмор)'
    [4] => 'id последнего сообщения в третем форуме (Общение)'
}
твоя задача вернуть такой массив json-ном

если id последнего сообщения в первом форуме (PHP and MySQL) больше чем получил от плагина
    делаешь массив
    $forum[0] = array('id поста', 'время', 'автор', 'имя темы');
если нет новых сообщений
    $forum[0] = 0;

если id последнего сообщения во втором форуме (xHTML/CSS/JavaScrip) больше чем получил от плагина
    делаешь массив последнего сообщения в этом форуме
    $forum[1] = array('id поста', 'время', 'автор', 'имя темы');
если нет новых сообщений
    $forum[1] = 0;

если id последнего сообщения в третем форуме (Компьютеры/Софт) больше чем получил от плагина
    делаешь массив последнего сообщения в этом форуме
    $forum[2] = array('id поста', 'время', 'автор', 'имя темы');
если нет новых сообщений
    $forum[2] = 0;

если id последнего сообщения в четвертом форуме (Юмор) больше чем получил от плагина
    делаешь массив последнего сообщения в этом форуме
    $forum[3] = array('id поста', 'время', 'автор', 'имя темы');
если нет новых сообщений
    $forum[3] = 0;

если id последнего сообщения в пятом форуме (Юмор) больше чем получил от плагина
    делаешь массив последнего сообщения в этом форуме
    $forum[4] = array('id поста', 'время', 'автор', 'имя темы');
если нет новых сообщений
    $forum[4] = 0;


если все переменные массива $forum ровняются нулю то делаешь переменную $forum не массив а просто $forum = 0;

и показываешь плагину
echo json_encode('forum' => $forum);
Что не ясно?
Добавлено спустя   3 минуты  36 секунд:
время можно отдавать уже переведенное.
если я смогу общася с тобой с куками тоесть авторизованым буду.
а если не получится тогда надо будет в секундах по гринвичу
Просто я еще не знаю как работают гугловские методы например такие как getUrl

Неактивен

#75 2011.05.17 12:52

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Переезд сервера

Нет, доступа к кукам форума не будет.
http://wapinet.ru/forum/ajax.server.php?informer
давай попроще. по этому URI форум всегда выдает последние сообщения. на этом и основывайся.
фактически там сейчас код

Код:

1
span style="color: #0000BB"><?php include PUN_ROOT . 'include/informer/Informer.inc.php'; header('Content-Type: application/json; charset=UTF-8'); try { $obj = new Informer($db, $pun_user, $lang_common); if (isset($_GET['getMessage'])) { $res = $obj->getMessage($_GET['getMessage']); } else { $res = $obj->getForums(); } echo json_encode(array('status' => true, 'forum' => $res)); } catch (Exception $e) { echo json_encode(array('status' => false, 'forum' => $e->getMessage())); }

Informer.inc.php

Код:

1
span style="color: #0000BB"><?phpclass Informer{ private $_db; private $_pun_user; private $_lang; /** * Constructor * * @param resource $db * @param array $pun_user * @param array $lang */ public function __construct ($db, $pun_user, $lang) { $this->_db = $db; $this->_pun_user = $pun_user; $this->_lang = $lang; } /** * getForums * * @return array * @throws Exception */ public function getForums () { if (!$this->_pun_user['g_read_board']) { throw new Exception ($this->_lang['No view']); } $r = $this->_db->query(' SELECT f.id AS fid, f.last_post, f.last_post_id, f.last_poster, t.subject FROM ' . $this->_db->prefix . 'categories AS c INNER JOIN ' . $this->_db->prefix . 'forums AS f ON c.id=f.cat_id LEFT JOIN ' . $this->_db->prefix . 'topics AS t ON f.last_post_id=t.last_post_id LEFT JOIN ' . $this->_db->prefix . 'forum_perms AS fp ON ( fp.forum_id=f.id AND fp.group_id=' . $this->_pun_user['g_id'] . ' AND (fp.read_forum IS NULL OR fp.read_forum=1) ) WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY NULL ', false); if (!$r) { throw new Exception ($this->_db->error()); } if (!$this->_db->num_rows($r)) { throw new Exception ($this->_lang['Bad request']); } $data = array(); while ($forum = $this->_db->fetch_assoc($r)) { $data[$forum['fid']] = array( 'last_post_id' => $forum['last_post_id'], 'subject' => $forum['subject'], 'last_post_time' => $forum['last_post'], 'last_poster' => $forum['last_poster'] ); } return $data; } /** * getMessage * * @param int $id * @return array * @throws Exception */ public function getMessage ($id) { if (!$this->_pun_user['g_read_board']) { throw new Exception ($this->_lang['No view']); } if (!$id || $id < 1 || !is_numeric($id)) { throw new Exception ($this->_lang['Bad request']); } $r = $this->_db->query(' SELECT p.poster, p.message, p.hide_smilies, p.posted FROM ' . $this->_db->prefix . 'posts AS p INNER JOIN ' . $this->_db->prefix . 'topics AS t ON t.id = p.topic_id LEFT JOIN ' . $this->_db->prefix . 'forum_perms AS fp ON ( fp.forum_id=t.forum_id AND fp.group_id=' . $this->_pun_user['g_id'] . ' AND (fp.read_forum IS NULL OR fp.read_forum=1) ) WHERE p.id = ' . intval($id) , false); if (!$r) { throw new Exception ($this->_db->error()); } if (!$this->_db->num_rows($r)) { throw new Exception ($this->_lang['Bad request']); } $data = $this->_db->fetch_assoc($r); return array ( 'message' => $this->_parseMessage($data['message'], $data['hide_smilies']), 'poster' => $data['poster'], 'posted' => $this->_getTime($data['posted']) ); } /** * _getTime * * @param int $time * @return string */ private function _getTime ($time) { require_once __DIR__ . '/../functions.php'; return format_time($time); } /** * _parseMessage * * @param string $message * @param bool $hide_smilies * @return string */ private function _parseMessage ($message, $hide_smilies = false) { require_once __DIR__ . '/../parser.php'; return parse_message($message, $hide_smilies); }}?>

Отредактировано Gemorroj (2011.06.11 12:11)

Неактивен

#76 2011.05.17 15:43

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Переезд сервера

Ок давай и так. Щас приду посмотрю че там.
А так вообщем я думал чтобы трафа меньше жрало но хотя так это в принципе не много.
Ток позвонили с банка 800 грн говорят штрафа наложили офигели просто над идти разбиратся

Неактивен

#77 2011.05.17 20:43

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Переезд сервера

какой разрыв во времени от гринвича, +3?

Неактивен

#78 2011.05.17 21:51

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Переезд сервера

вот кстати хз) наверное да, +3

Неактивен

#79 2011.05.17 22:49

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Переезд сервера

Gemorroj написал:

вот кстати хз) наверное да, +3

Ну вообщем юзыре не будут авторизовуватся по апи?

Неактивен

#80 2011.05.18 10:37

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Переезд сервера

эм, зачем такая авторизация? у пользователя есть куки, он как бы и так должен быть авторизован.
возможно, следует еще сделать добавление постов через api. тогда из плагина практически не нужно было бы выходить вообще.

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.013 s