Вы не зашли.
Главная » Общение » Переезд сервера
#71. TLENS Off (14)
Moderator
2011.05.16 19:07
Ок можно и без Api дале будет видно
Добавлено спустя   4 минуты  45 секунд:
Да еще одно на пост запрос $_POST['forum]=='get_forum' отдай JSON
Это я хотел дописать еще один запрос на api но передумал незнаю как оно отправилось случайно отправил.
А вообще зделай только то что просил перед этим ведь трафика будет много ганять
Отредактировано TLENS (2011.05.16 19:07)
#72. Gemorroj Off (107)
Administrator
2011.05.16 19:07
sad((
я не знаю как тебе еще сказать что у меня нет четкой задачи чтобы начать ее выполнять...
#73. TLENS Off (14)
Moderator
2011.05.16 19:07
Окей.
Добавлено спустя   5 минут  31 секунду:
Щас я за сигаретами сганяю и опишу
Отредактировано TLENS (2011.05.16 19:07)
#74. TLENS Off (14)
Moderator
2011.05.16 20:08
Слушай вообщем план такой первый раз при запуске плагина откроется новое окно с форумом.
Плагин и плагин извлечет данные со страницы о последних сообщениях и сохранит их в память.
Потом с указанным в настройках интервалом отдает тебе на 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. Gemorroj Off (107)
Administrator
2011.05.17 12:12
Нет, доступа к кукам форума не будет.
http://wapinet.ru/forum/ajax.server.php?informer
давай попроще. по этому URI форум всегда выдает последние сообщения. на этом и основывайся.
фактически там сейчас код
Код:
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
Код:
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:12)
#76. TLENS Off (14)
Moderator
2011.05.17 15:03
Ок давай и так. Щас приду посмотрю че там.
А так вообщем я думал чтобы трафа меньше жрало но хотя так это в принципе не много.
Ток позвонили с банка 800 грн говорят штрафа наложили офигели просто над идти разбиратся
#77. TLENS Off (14)
Moderator
2011.05.17 20:08
какой разрыв во времени от гринвича, +3?
#78. Gemorroj Off (107)
Administrator
2011.05.17 21:09
вот кстати хз) наверное да, +3
#79. TLENS Off (14)
Moderator
2011.05.17 22:10
Gemorroj написал:
вот кстати хз) наверное да, +3
Ну вообщем юзыре не будут авторизовуватся по апи?
#80. Gemorroj Off (107)
Administrator
2011.05.18 10:10
эм, зачем такая авторизация? у пользователя есть куки, он как бы и так должен быть авторизован.
возможно, следует еще сделать добавление постов через api. тогда из плагина практически не нужно было бы выходить вообще.
Страниц: 16 7 8 9 1014 Все
Главная
WEB
PunBB Mod v0.6.2
0.015 s