Gemorroj » 2011.06.24 18:33

https://code.google.com/p/wapinet-forum … vn%2Ftrunk
В процессе разработки расширение для браузеров (на данный момент только Google Chrome) позволяющее с большим удобством пользоваться форумом wapinet.ru

TLENS » 2011.06.24 19:56

Паша надо бы залить его в https://chrome.google.com/webstore
У меня все готово вот только не могу выложить в публику так как просит 5$
Про мучился не могу про платить его. Не получается.

Gemorroj » 2011.06.25 18:27

пока не надо никуда заливать.

TLENS » 2011.06.26 05:14

Ой паша чет ты там такого на куралесил.
Зачем было убирать автозакрытие и кнопк? Удобно ведь было.
Также выравнивал его чтобы красота была а это что?
А вообще сделал ты его намного быстрее.
Даже если и убрал кнопку надо было же выровнять иконку reload на 20px в право.
Утром займусь оформлением сегодня спать уже буду идти.
Добавлено спустя   1 минуту  23 секунды:
Да кстати изменений много позитивных. И уведомление радует, Аккуратное.

Gemorroj » 2011.06.26 08:45

я же писал в прошлой теме зачем.
автозакрытие ИМХО неудобно, курсор не обязательно будет находиться в фокусе на попапе. а закрыть можно просто кликнув в сторону.
reload и отступы нужно поправить, да.

TLENS » 2011.06.26 08:45

Мне чет не спится. Слушай пока ты здесь обьясни аочему убрал margin с тела. Какие то трудности были?
Что бы я знал
Добавлено спустя   4 минуты  48 секунд:
Слушай а правда процессор практически не видит это расширение оптимизировал супер ))
Кстати ты меня учил что в селекторах желательно прописывать имя тегов. А у тебя вижу айдишки без тегов.
Я так понимаю по ид оно отбирается в доме прямо без поиска чем как например по option[value=""] или .class

TLENS » 2011.06.26 09:15

Внес пару изменений смотри

Gemorroj » 2011.06.26 09:17

ну есть 3 метода для поиска по дому: getElementById, getElementsByTagName, getElementsByClassName.
Из них однозначно самый быстрый - это getElementById. При чем намного.
getElementsByTagName и getElementsByClassName примерно одинаковы по скорости, НО в IE до 8 включительно нету этого метода и jQuery реализует его самостоятельно, что, само собой, намного медленнее по сравнению с нативным методом.
Отсюда вывод - для кроссбраузерных скриптов лучше искать через getElementsByTagName, а не getElementsByClassName.
Есть еще момент с querySelector - оно работает очень быстро, намного быстрее чем jQuery. Но пока что только новые версии браузеров это понимают.
Добавлено спустя   8 минут  23 секунды:
я бы еще на это обратил внимание.

TLENS » 2011.06.26 09:27

Предложения:
1) Кстати хром же понимает. Можно и воспользоватся.
2) Пошарюсь как делать толковый порт. А то мой самодельный ну никуда не годится.
3) Да и мигалку наверное убрать надо. И вместо этого добавить код который будет подсчитывать количество новых. И выводить на иконку.
На первое можешь не отвечать ;)
Добавлено спустя   3 минуты  16 секунд:
Первое обращение смотрел но не довел до конца.
Посмотрю еще раз.
Второе сейчас сделаю

TLENS » 2011.06.26 09:58

Сделал фрейм. А в настройках что именно просто там несколько стрелок надо рисовать

Gemorroj » 2011.06.26 10:10

пустое место, в которое нужно уместить выбор временной зоны.

TLENS » 2011.06.26 10:40

Не вариант все равно будет не красиво.
Сейчас что то придумаю

TLENS » 2011.06.26 11:12

Как тебе такой вариант?
Мне нравится
Добавлено спустя   1 минуту :
Чуть кривовато но это исправимо

Gemorroj » 2011.06.26 11:23

отлично, отступ сверху пару пикселей только надо бы)

TLENS » 2011.06.26 19:17

Слушай еще вариант раз уже делать то делать.
Предложения:
Сервисы которые постоянно нужны под рукой.
Например:
Валидатор, тыц и прочее.
Ну можно подумать.
А вообще надо сначала это до конца довести, ну потом думать об обновлении.

Gemorroj » 2011.06.26 19:26

валидатор в опере в менюшке всегда под рукой))

TLENS » 2011.06.26 19:38

А кстати помнишь еще дектора гугловского пробовал совместить с расширением.
Крутяк был. Но только ники чудно читала. А кстати мой правильно говорит не через Э как все знакомые а через Е
Добавлено спустя   1 минуту  1 секунду:
После переустановки винды нет того кода но в голове остался вариант.

TLENS » 2011.06.27 12:04

Идея сделать показ статусов кто онлайн кто офлайн.
То есть показ уведомлением на 3 сек. кто зашел на форум а кто перешел в оф.
Надо апи в informer добавь переменную с массивом кто онлайн.

Gemorroj » 2011.06.27 12:43

а на счет личных сообщений что скажешь?

TLENS » 2011.06.27 16:40

Ну мы с тобой говорили.
Если кука сработает тогда можно сделать.
А авторизацию делать не охота.
Сейчас кстати проверю возможность этой затеи.
Да и пользователей надо будет предупредить что бы не качали со сторонних источников, стоит в манифесте указать доступ к еще одному сайту и можно и сам думаю понимаешь получается троян.

TLENS » 2011.06.27 17:33

Корочь все работает куку отдает.
Делай вместе с постом.
private_status = 0/1;
Да и хватит

TLENS » 2011.06.27 19:31

Бета версия что на данный момент.

TLENS » 2011.07.12 18:30

Надо исправить dblclick не удобно так как сразу попа начинает сворачивается и иногда второй раз не успеваю сделать клик.
Какие идеи?
Использовать ролик?

TLENS » 2011.07.16 04:18

Паша ну как там ты делаешь апи привата?

Gemorroj » 2011.07.18 15:09

да, сейчас займусь... сорь за мудозвонство, совсем что-то плохой стал)

Gemorroj » 2011.07.18 15:29

Есть проблемка с приватными сообщениями. у нас сверяется последнее сообщение по его ID. Но у приватных сообщений и постов на форуме свои идентификаторы, которые в теории могут пересекаться.
Нужно для приватных сообщений делать отдельно запросы на сервер, либо в ответе на наши стандартные запросы посылать отдельно информацию по приватным и отдельно по постам на форуме.
Предлагаю остановиться на 2 варианте.
Добавлено спустя   2 минуты  1 секунду:
Вобщем, нужно изменить API. От расширение должно передаваться 2 идентификатора - ID приватного сообщения и ID поста на форуме.
Ответ будет содержать 2 массива с данными по последнему приватному сообщению и данными по последнему посту на форуме.
Добавлено спустя   2 минуты  50 секунд:
Пока подожду что ты скажешь.)

TLENS » 2011.07.19 06:57

Слушай я понял но не могу сосредоточится чтобы обмозговать как все будет реализовано в расширении, и как я хотел тогда.
Я вчера ножки обмывал сейчас не соберу себя до кучи.
Кстати пока не забыл надо нотификатион открывать вместе с search в адресе и уже внутри регулировать location.search и взать какой id светить. А то когда например видео смотришь через флеш, то окна блокируются, и как только закрыл видео появляется куча уведомлений с последним сообщением.

Gemorroj » 2011.07.20 10:28

TLENS, так какой вариант делаем?

TLENS » 2011.07.20 12:27

В общем да делай еще наверное два правильных апи скриптами подстроимся под них.

Gemorroj » 2011.07.22 16:35

Код:

1
span style="color: #0000BB"><?php} else if (isset($_GET['informer'])) { 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, $pun_config); if (isset($_GET['getMessage']) && isset($_GET['getPrivatMessage'])) { echo json_encode(array('status' => true, 'forum' => $obj->getMessage($_GET['getMessage']), 'privat' => $obj->getPrivateMessage($_GET['getPrivatMessage']))); } else if (isset($_GET['getPrivatMessage'])) { echo json_encode(array('status' => true, 'privat' => $obj->getPrivateMessage($_GET['getPrivatMessage']))); } else if (isset($_GET['getMessage'])) { echo json_encode(array('status' => true, 'forum' => $obj->getMessage($_GET['getMessage']))); } else if (isset($_GET['getPrivatMessages'])) { echo json_encode(array('status' => true, 'privat' => $obj->getPrivateMessages($_GET['getPrivatMessages']))); } else if (isset($_GET['getConfig'])) { echo json_encode(array('status' => true, 'config' => $obj->getConfig())); } else { echo json_encode(array('status' => true, 'forum' => $obj->getForums())); } } catch (Exception $e) { echo json_encode(array('status' => false, 'forum' => $e->getMessage())); }}

Код:

1
span style="color: #0000BB"><?phpclass Informer{ private $_db; private $_pun_user; private $_lang; private $_pun_config; /** * Constructor * * @param resource $db * @param array $pun_user * @param array $lang * @param array $pun_config */ public function __construct ($db, $pun_user, $lang, $pun_config) { $this->_db = $db; $this->_pun_user = $pun_user; $this->_lang = $lang; $this->_pun_config = $pun_config; } /** * getConfig * * @return array * @throws Exception */ public function getConfig () { return array( 'timezone' => $this->_pun_user['timezone'], 'username' => $this->_pun_user['username'], 'is_guest' => $this->_pun_user['is_guest'] ); } /** * 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 = ' . $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' => $data['posted'] ); } /** * getPrivateMessage * * @param int $id * @return array * @throws Exception */ public function getPrivateMessage ($id) { if ($this->_pun_user['is_guest'] || !$this->_pun_user['g_pm'] || !$this->_pun_user['messages_enable'] || !$this->_pun_config['o_pms_enabled']) { 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 m.subject, m.message, m.smileys, m.posted, m.sender FROM ' . $this->_db->prefix . 'messages AS m WHERE m.owner = ' . $this->_pun_user['id'] . ' AND m.id = ' . $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 ( 'subject' => $data['subject'], 'message' => $this->_parseMessage($data['message'], $data['smileys']), 'poster' => $data['sender'], 'posted' => $data['posted'] ); } /** * getPrivateMessages * * @param int $limit * @return array * @throws Exception */ public function getPrivateMessages ($limit) { if ($this->_pun_user['is_guest'] || !$this->_pun_user['g_pm'] || !$this->_pun_user['messages_enable'] || !$this->_pun_config['o_pms_enabled']) { throw new Exception ($this->_lang['No view']); } if (!$limit || $limit < 1 || !is_numeric($limit)) { throw new Exception ($this->_lang['Bad request']); } $r = $this->_db->query(' SELECT m.id, m.subject, m.message, m.smileys, m.posted, m.sender FROM ' . $this->_db->prefix . 'messages AS m WHERE m.owner = ' . $this->_pun_user['id'] . ' ORDER BY m.id DESC LIMIT ' . $limit , false); if (!$r) { throw new Exception ($this->_db->error()); } if (!$this->_db->num_rows($r)) { return array(); } $out = array(); while ($data = $this->_db->fetch_assoc($r)) { $out[$data['id']] = array ( 'subject' => $data['subject'], 'message' => $this->_parseMessage($data['message'], $data['smileys']), 'poster' => $data['sender'], 'posted' => $data['posted'] ); } return $out; } /** * _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); }}?>

из кода понятно что требуется?)

TLENS » 2011.07.23 13:21

Ок.

TLENS » 2011.07.24 20:36

Паша а как на счет того чтобы скрипты положить на сервере?
И обновление будет сразу же отображатся

Gemorroj » 2011.07.24 20:53

??? какие скрипты? на каком сервере?

TLENS » 2011.07.24 20:55

Внутренние js сделать внешними
Добавлено спустя   1 минуту  14 секунд:
Чтобы расширение при запуске хрома подгружало с сервера.

Gemorroj » 2011.07.24 21:05

нет. расширение должно развиваться отдельно. все что связывает форум и расширение - это API и все.

TLENS » 2011.07.24 21:11

Понятно. Раз уже будем работать через куку тогда можно убрать два поля с настроек, это "ваш ник" и "Часовой пояс" как на это смотришь?

Gemorroj » 2011.07.24 21:16

вперед. я вообще не совсем понимаю нафига эти настройки)

TLENS » 2011.07.24 21:22

Не ну настройка ника нужна была чтобы расширение не реагировало на свои посты.
Интервал обновления можно убрать и сделать стандарт например 1мин.
А вот что делать со звуком я ведь хотел еще сделать загрузку собственной мелодии на звук.
Да и настройку громкости глупо убирать.
Ты как думаешь?

Gemorroj » 2011.07.24 22:46

а вот интервал я бы оставил, так же как и громкость.
собственную мелодию оставь на потом имхо

TLENS » 2011.08.09 11:17

Паша нужно еще апи, если решили очистить лишнее с настроек.

Код:

1
2
3
4
5
6
7
config = array(2) {
["status_auth"] = true,
["set"] = array(2) {
["nick_name"] = "TLENS",
["time_zone"] = "+2"
}
}

На счет time_zone можно и выбросить просто отдавать не в +2 а в тайме с настроек.
Добавлено спустя   2 минуты  24 секунды:
Но лучше тиме зоне передавать по конфигу

Gemorroj » 2011.08.09 11:20

а зачем в расширении ник?

TLENS » 2011.08.09 11:24

Я же говорю что бы расширение не реагировало на свои посты.
Как оно работает:
Оно проверяет новое сообщение если оно новое тогда проверяет автора этого сообщения если я например не автор тогда выдаю сообщение, а если же а сам автор тогда зачем уведомлять и он блокирует notification.html
Добавлено спустя   2 минуты  4 секунды:

Код:

1
2
3
if (arr.forum[i]['last_poster'] === setting.nick) { // Если автор юзер не мигаем иконкой возле форума
db[i]['icon'] = '';
}
Gemorroj » 2011.08.09 12:34

ясно.. т.е. у нас будет еще 1 запрос при запуске браузера. может тогда сразу не 2 параметра в конфиге отдавать, а еще чего-нибудь полезного?

Gemorroj » 2011.08.09 13:48

http://wapinet.ru/forum/ajax.server.php?informer&getConfig
названия, надеюсь, говорят сами за себя.
если is_guest = true, то проверять на ник не нужно.
Добавлено спустя   1 минуту  54 секунды:
у нас, в принципе, конфиг большой,

`id` int(10) unsigned NOT NULL auto_increment,
`group_id` int(10) unsigned NOT NULL default '4',
`username` varchar(200) NOT NULL default '',
`password` varchar(40) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`title` varchar(50) default NULL,
`realname` varchar(40) default NULL,
`url` varchar(100) default NULL,
`sex` enum('0','1') NOT NULL default '1',
`birthday` varchar(10) NOT NULL,
`jabber` varchar(75) default NULL,
`icq` varchar(12) default NULL,
`msn` varchar(50) default NULL,
`aim` varchar(30) default NULL,
`yahoo` varchar(30) default NULL,
`location` varchar(30) default NULL,
`use_avatar` tinyint(1) NOT NULL default '0',
`signature` text,
`disp_topics` tinyint(3) unsigned default NULL,
`disp_posts` tinyint(3) unsigned default NULL,
`email_setting` tinyint(1) NOT NULL default '1',
`save_pass` tinyint(1) NOT NULL default '1',
`notify_with_post` tinyint(1) NOT NULL default '0',
`show_smilies` tinyint(1) NOT NULL default '1',
`show_img` tinyint(1) NOT NULL default '1',
`show_img_sig` tinyint(1) NOT NULL default '1',
`show_avatars` tinyint(1) NOT NULL default '1',
`show_sig` tinyint(1) NOT NULL default '1',
`timezone` float NOT NULL default '0',
`language` varchar(25) NOT NULL default 'Russian',
`style` varchar(25) NOT NULL default 'VbStyle-Black',
`style_wap` varchar(25) NOT NULL default 'wap',
`num_posts` int(10) unsigned NOT NULL default '0',
`last_post` int(10) unsigned default NULL,
`registered` int(10) unsigned NOT NULL default '0',
`registration_ip` varchar(15) NOT NULL default '0.0.0.0',
`last_visit` int(10) unsigned NOT NULL default '0',
`admin_note` varchar(30) default NULL,
`activate_string` varchar(50) default NULL,
`activate_key` varchar(8) default NULL,
`num_files` int(10) NOT NULL default '0',
`file_bonus` int(10) NOT NULL default '0',
`show_bbpanel_qpost` tinyint(1) NOT NULL default '0',
`popup_enable` tinyint(4) default '1',
`messages_enable` tinyint(4) default '1',
`mark_after` int(10) NOT NULL default '1296000'

можно еще какой-нить инфы полезной брать.

TLENS » 2011.08.09 18:37

Если в будущем будем постоянно его расширять то понадобится многовато. например пол, аватар, реал. имя, язык.
Знаешь что еще можно сделать: Кто в онлайне.
И уведомления показывать кто зашел а кто вышел.
Добавлено спустя   9 минут  40 секунд:
Слушай мы немножко неправильно сделали.
Надо было делать проверку по количеству сообщений, и если больше тогда начинаем проверку подключатся к апи.
Я несколько не понимаю спецификацию json. Я слыхал что его можно получать с другого хоста. Это так?

Gemorroj » 2011.08.09 19:37

да. http://ru.wikipedia.org/wiki/JSON#JSONP_.26_JSONPP

TLENS » 2011.08.09 21:22

Слушай тогда нельзя нивкоем случае передавать приват через json.
Так как могут выложить на каком то сайте JS код который примет json привата с твоего сайта и передаст его себе на сервер.
Добавлено спустя   1 минуту  39 секунд:
Или я чего то не досмотрел?

TLENS » 2011.08.09 21:47

А не прочитал еще статью там про jsonpp/
В общем сейчас бежать надо. подойду почитаю.
А как там у нас все безопасно?

Gemorroj » 2011.08.09 21:54

забей) все ок

TLENS » 2011.08.23 19:58

Паша я не пойму как получать приват
http://wapinet.ru/forum/viewtopic.php?pid=18797#p18797

Gemorroj » 2011.08.23 22:59

какой такой приват??

TLENS » 2011.08.23 23:05

Ну вообще в апи getPrivatMessage но он дает ошибку и как с ним работать я не понял где брать id для передачи тебе в апи.

Gemorroj » 2011.08.23 23:26

ааа, на название темы не посмотрел)
чето я и сам уже не помню, а как ID в обычный getMessage получается?

TLENS » 2011.08.23 23:30

Gemorroj написал:

ааа, на название темы не посмотрел)
чето я и сам уже не помню, а как ID в обычный getMessage получается?

Ну ты мне вместе с инфой даешь id каждого поста https://code.google.com/p/wapinet-forum … ion.js#115

Gemorroj » 2011.08.23 23:32

мм, добавить метод getLastPrivatMessage(void); ?

TLENS » 2011.08.23 23:41

Сейчас я подумаю

TLENS » 2011.08.24 00:05

Если id привата растут, давай вместе с форумами id последнего привата.
потом если больше сохраненного я тебе даю пустой getPrivatMesage в ответ давай массив не прочитанных также как форумы.
В месте с информацией ЛС еще давай id что бы потом можно было в уведомлениях вызывать по одиночке.
В мыслях вроде все норм.

Gemorroj » 2011.08.24 00:20

название метода должно отличаться.
geAllPrivateMessages будет. завтра сделаю.

TLENS » 2011.08.24 00:23

Ок)
Добавлено спустя   4 минуты  13 секунд:
Слушай почему http://wapinet.ru/forum/ajax.server.php?informer&getPrivatMessage=(id взял с лс) status = false?

Gemorroj » 2011.08.25 12:08

была ошибка при передаче конфига в конструктор(
сделал метод getPrivateMessages(int $limit)
возвращает массив приватных сообщений для пользователя отсортированных по ID в обратном порядке.
limit - это какое кол-во сообщений нужно вернуть.
Добавлено спустя    44 секунды:
код тут http://wapinet.ru/forum/viewtopic.php?pid=18572#p18572

TLENS » 2011.08.25 12:13

О норм придумал. Через пару дней займусь.

TLENS » 2011.08.25 12:51

В ячейках 'poster' вставляй логин отправителя. Не знаю какая у тебя структура но вот получи api например getPrivatMessages=100 И везде будет в poster = Gemorroj переправь на логин с кем идет общение и добавь ячейку исходящее или входящее box = 0/1
Что бы можно было вести чат

TLENS » 2011.08.25 14:16

Я даже не правильно объяснился

TLENS написал:

ячейках 'poster' вставляй логин отправителя.

Вставляй по возможности с кем общаюсь.
Или передавай отправителя и получателя так будет проще

TLENS » 2011.08.26 16:11

Ну так как, ты сделаешь?

TLENS » 2011.08.29 23:00

Слушай а как ты несколько изменений вставляешь в один комментарий в svn

Gemorroj » 2011.09.01 11:38

да, сори, проблемки в голове, кодить не могу..)
не понял про svn. наговнокодил, закомитил, наговнокодил, закомитил... больше ниче не делаю)

Gemorroj » 2011.09.01 13:06

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

TLENS » 2011.09.02 18:01

А я просто так понял что ты передавал все сообщения входящие и исходящие

Gemorroj » 2011.09.02 18:11

нет, только входящие.

Gemorroj » 2011.09.02 19:51

нужно вынести адрес форума в переменную... т.е. http://wapinet.ru/forum/

TLENS » 2011.09.02 19:52

Не понял. Ты на счет чего?
Добавлено спустя   2 минуты  46 секунд:
В смысле для каких целей?

Gemorroj » 2011.09.02 20:05

не нужно затачивать расширение под wapinet. код форума открыт в принципе (ну я не сразу выкладываю код, но выкладываю) так что желательно чтобы в итоге расширением могли пользоваться все, кто поставит себе форум PunBB Mod Gemorroj

TLENS » 2011.09.02 21:13

Аа

Gemorroj » 2011.09.17 00:03

блин, в опере сейчас нет доступа к Notifications API
у виджетов есть доступ, а у расширений нет. печаль.

TLENS » 2011.09.17 00:08

Проверь частые window.open('notification.html','Уведомление','width=300,height=400'); Блокирует?
Просто хром не блокирует можно хоть тысячу создать с расширения
Добавлено спустя   8 минут  3 секунды:
Кстати смотри что еще придумал ::thumb808::

Gemorroj » 2011.09.17 00:31

круто придумал) жду код в свн ;)
ай, когда запилят поддержу в расширениях, тогда и буду смотреть

TLENS » 2011.09.17 00:35

Паш я вот не знаю что делать с форумом. ЯНе правильно мы все таки получаем.
Раз уже работаем с авторизацией то надо сделать так как на http://wapinet.ru/forum/search.php?action=show_new
Как ты думаешь?

Gemorroj » 2011.09.17 00:42

а сейчас разве не так?

TLENS » 2011.09.17 00:48

Gemorroj написал:

ай, когда запилят поддержу в расширениях, тогда и буду смотреть

И правильно давай для хрома закончим а потом уже будем подгонять по возможностям для других браузеров.

Gemorroj написал:

а сейчас разве не так?

Сейчас прослеживается только 5 сообщений, по одному для каждого подфорума.
Я думал сделать место мигающей new количество новых. А хотя это только что чет в голову стрельнуло. Просто мне не нравится функция connect стыдно смотреть.
Добавлено спустя   1 минуту  36 секунд:
Но в принципе это обдумать надо пока месть наверное оставим эту затею. Я понаблюдаю на минусы сообщу

TLENS » 2011.09.17 01:00

Кстати давно уже жду апи онлайнера! ты сделаешь?
Показывает список авторизованых.
Будет выпадать уведомление кто зашел а кто вышел

Gemorroj » 2011.09.17 09:14

в смысле онлайнера? onliner.by чтоли?)

TLENS » 2011.09.17 12:54

)) Ну в смысле апи передающее пользователей которые в онлайне.

Gemorroj » 2011.09.17 14:17

по-моему это уже свистелки-переделки. давай на потом это оставим

Gemorroj » 2011.11.06 18:26

TLENS, чего с расширением там?)

TLENS » 2011.11.07 04:51

Сейчас в ассемблер и Си загруз.
Короче и на свой сайт забил. Не переделываю.
От ассемблера голова уже кипит, вот еще Си надоесть тогда возьму расширение по ковыряю.

Gemorroj » 2011.11.07 10:06

прост у тебя же уже на крине была отправка сообщений из всплывающих окон.

TLENS » 2011.11.07 15:01

Gemorroj написал:

прост у тебя же уже на крине была отправка сообщений из всплывающих окон.

Да его даработать надо правда там наверное на 5 мин. Через часик где то возьмусь.

Gemorroj » 2011.11.13 20:30

(

TLENS » 2011.11.13 20:32

Блин Паша извини забегался. Все запускаю десигнер

TLENS » 2011.11.13 20:55

может через апи сделаем, дабы ответ было проще получить?

Gemorroj » 2011.11.13 21:36

что именно через апи?

TLENS » 2011.11.13 21:46

Голова чет не варит, отошел немного от JS Уже начинаю голову чесать.
На счет апи. В общем я тебе даю пост ты принимаешь и даешь статус и ответ (Все отлично, Авторизуйтесь, темы нет ну и тому подобное.

Gemorroj » 2011.11.13 21:49

ок. сейчас попробую по быстрому сделать.

TLENS » 2011.11.13 23:24

??? Это новый метод?
Добавлено спустя    45 секунд:
Или что это было?
Добавлено спустя   2 минуты  12 секунд:
Я решил не затрагивать notification.js а подключить новый скрипт как тебе такой поход?

Gemorroj » 2011.11.13 23:28

тестирую.
вобщем код смотри в свн (последний коммит).
нужно передать setMessage = текст сообщения и setMessageThemeId = id темы в которую пуляем сообщение.
есть проблема с тем, что данные через GET передаются.
и вообще нужно будет переделать API в плане того, что выделить отдельную переменную под имя используемого метода.
т.е. что-то типа method=setMessage

TLENS » 2011.11.13 23:28

Просто я мало информирован о JS и весь мой опыт это расширение для форума wapinet.ru

Gemorroj » 2011.11.13 23:28

не понял на счет notification.js

TLENS » 2011.11.13 23:33

Ну я решил создать файл sender.js и в нем содержимое

Код:

1
2
3
4
5
6
7
8
9
10
var sender;
function Sender()
{
// и здесь все что относится к отправке ответов
}
 
$(document).ready(function () {
sender = new Sender();
});

И подключать в notification.html

если что потом можно будет просто конструктор перенести и все.
Ведь я уже запутался что к чему и где ты редачил где я.

TLENS » 2011.11.13 23:45

Gemorroj написал:

есть проблема с тем, что данные через GET передаются.

А что с постом?

Gemorroj написал:

и вообще нужно будет переделать API в плане того, что выделить отдельную переменную под имя используемого метода.

И расширение надо переделывать. Идей много по оптимизации и упрощении кода. Но реализовать ...

Да кстати я 10 мин. Искал твой коммит чета не нашел. Потом дошло что не авторизован (все равно не нашел)

Gemorroj » 2011.11.13 23:48

большие данные из сообщений просто лучше передавать постом.
делай файл sender.js и начинай его так

Код:

1
2
3
4
5
6
7
8
9
var Sender = function () {
method: function () {
alert(1);
},
 
_privateMethod: function () {
alert(2);
}
};

весь код должен быть внутри этой переменной Sender раскиданный по методам и переменным.
причем переменные  и методы которые не должны быть использованы вне этого класса начинай с _

TLENS » 2011.11.13 23:51

Все понял

TLENS » 2011.11.14 02:09

вот набросал начало

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
var Sender = {
//------------public_var---------//
//------------public_method------//
init: function () {
if (this.is_active) {
this._lincMessage = $('div#sender textarea#message');
this._event();
}
else {
// Для гостей
}
},
paste: function (user) { // вставка тега при нажатии на ник
this.textArea += "[b]" + user + "[/b], ";
},
get textArea () { // извлечение с текстового поля
return this._lincMessage.val();
},
set textArea (v) { // запись в текстовое поле
this._lincMessage.val(v);
},
get is_active () { // Проверка на авторизацию, не надежно но во многих случаях укажет (Каждый раз просить в сайта это жирно)
if (!localStorage['nick']) // надо в будущем добавить в память localStorage['auth'] и регулировать при запуске в background.js
return false;
else return true;
},
//---------private_method----------//
_event: function () {
$("a#user").click(function () {
Sender.paste($("a#user").text());
});
$("#send").click(function () {
//Sender.Send();
});
},
//---------private_var------------//
_lincMessage: "",
//-------end------//
m: 1
};
 
$(document).ready(function () {
Sender.init();
});
 
 
<body>
<div id="subject"><img src="ajax-loader-on.gif" alt="" /> Загружаю</div><div id="timer">300</div><br />
<div><b></b><a href="#message" id="user"></a></b> - <span id="time"></span></div>
<div id="postmsg"></div>
<div id="sender">
<button id="send">Быстрый ответ</button>
<textarea id="message" rows="2" tabindex="1"></textarea>
</div>
</body>

немного почитать пришлось

Gemorroj » 2011.11.14 11:10

ну, продолжай) только не _lincMessage, а _linkMessage
Добавлено спустя   1 минуту  15 секунд:
и с синтаксисом что-то в get textArea, set textArea, get is_active
is_active лучше переименуй в isActive

TLENS » 2011.11.14 14:24

Gemorroj написал:

ну, продолжай) только не _lincMessage, а _linkMessage

А ну да linck

Gemorroj написал:

и с синтаксисом что-то в get textArea, set textArea, get is_active

ну это я взял с низкоуровневого языка удобная штука, но десигнер об этом не научен. Правда в JS изуродована хорошо. Сам синтаксис getter-ов и setter-ов раздуплял вчера они так называются.

Gemorroj написал:

is_active лучше переименуй в isActive

Попутал языки, в JS так же принято.

Gemorroj » 2011.11.14 15:14

TLENS написал:

А ну да linck

link

TLENS написал:

ну это я взял с низкоуровневого языка удобная штука, но десигнер об этом не научен. Правда в JS изуродована хорошо. Сам синтаксис getter-ов и setter-ов раздуплял вчера они так называются.

да, посмотрел в WebStorm, синтаксически верно. Будет клево если кинешь ссылку на доки.

TLENS » 2011.11.14 15:38

Gemorroj написал:

link

Опять промах))

Gemorroj написал:

Будет клево если кинешь ссылку на доки.

Ну я сам по блогам собирал. Вообще мне они извесны как аксессоры и мутаторы ну в js все просто seter and getter))
http://habrahabr.ru/blogs/crazydev/126804/
http://ejohn.org/blog/javascript-getters-and-setters/

TLENS » 2011.11.14 15:57

только что почитал про аксессоры и мутаторы это не то.
Я просто помню слушал одного учителя по Cи то там упоминалось про  аксессоры. Сейчас толком почитать не получается. В автобусе еду трясет очень.

TLENS » 2011.11.14 21:31

Кстати на счет апи: раз уж собрался переделывать под методы. Надо будет исправить один метод он мне с самого начала не нравится. Это получение новых сообщений на форуме, т.е. работать с не прочитаными как здесь http://wapinet.ru/forum/search.php?action=show_new
Да я еще интегрирую один js код в твой сайт для общения с расширением через порт. Тестировал все получалось.

TLENS » 2011.11.19 16:08

Паша чуть погоди у меня проблема с сайтом. Надо срочно скрипт писать. Кстати у тебя есть знакомые хорошие программисты на Cи?
Вчера в гугле просидел, и сегодня с час лазил не могу найти норм программиста!
У меня там проэкт в 500 строк надо просто устранить утечку.

Gemorroj » 2011.11.19 19:20

на форумах поспрашивай, думаю быстрее будет

TLENS » 2011.11.20 17:29

Что тестишь?

TLENS » 2011.11.20 17:41

Решил антиспам заделать?

Gemorroj » 2011.11.20 18:28

да, правлю баги о которых LEXIN писал. В SVN результаты)

TLENS » 2011.11.20 18:36

Gemorroj написал:

вобщем код смотри в свн (последний коммит).

Дошло мне где ты писал.
Ты писал в punbb-mod а я искал в wapinet-forum
Просто на punbb-mod ни разу не заходил.

Gemorroj » 2011.11.20 18:38

ну, мне кажется логично разделить браузерное расширение и сам форум на 2 разных проекта.

Ну понятное дело. Надо бы и расширение в конце переименовать на punbbMod-extension.
А как там в планах на будущее опера что то планирует?
Просто надо будет альтернативу искать!

TLENS » 2011.11.20 22:12

Что это за прикол ведь предыдущее сообщение я писал.
Баг или случайно удалил?

Gemorroj » 2011.11.20 22:34

не понял..)

TLENS » 2011.11.20 22:39

Браузерное расширение для форума этот пост я писал

Gemorroj » 2011.11.20 23:29

ах) фак) чудеса)
я не знаю как так могло получиться)
Добавлено спустя   1 минуту  3 секунды:
Gemorroj, а так да, опера планирует) жду когда будет Notifications API.

TLENS » 2011.11.20 23:35

Gemorroj написал:

ах) фак) чудеса)
я не знаю как так могло получиться)

А я смотрю чет похожее думаю мож я не отправил, уже даж начал думать что ты тип меня опередил. Потом причитался чет не то))

Gemorroj » 2011.12.03 13:09

все по прежнему..?)

TLENS » 2011.12.03 13:51

С сайтом решил проблему но такой впадляк. Сегодня на природу еду за город. Мозги прочищу с топором в руках.

POFIGISST » 2011.12.03 16:03

TLENS написал:

Сегодня на природу еду за город.

приятно провести время:))

TLENS » 2011.12.04 12:30

POFIGISST написал:

TLENS написал:

Сегодня на природу еду за город.

приятно провести время:))

Я не гулять, сегодня поминки в отца два года. Как только так и сразу беру машину и валю от сюда. Не нравится мне холодная природа.

POFIGISST » 2011.12.04 12:44

TLENS
соррь,я не знал:(

TLENS » 2011.12.06 01:29

В getMessage нужно добавить ThemeId. А то скрипт не понимает куда слать.

TLENS » 2011.12.06 08:17

Немного дизайн подправил на уведомлениях.
::thumb923::
::thumb924::
Добавлено спустя   4 минуты  10 секунд:
::thumb925::

Gemorroj » 2011.12.06 11:46

сделал. смотри SVN punbb-mod. так же в setMessage setMessageThemeId переименована в setMessageTopicId

TLENS » 2011.12.07 04:24

} else if (isset($_GET['setMessage']) && isset($_GET['setMessageThemeId'])) {
Исправь

TLENS » 2011.12.07 05:41

Смотри.
Пока добавил в адрес setMessageThemeId=1
Напиши погрешности мои. Я спал на ходу уверен их там очень много.
ps. Как крепить к одному коментарию несколько изменений? Как ты делаешь что изменил два файла прокоментировал раз?

Gemorroj » 2011.12.07 11:33

комить не файл, а всю папку.
ок, расширение посмотрю.
спс за замечание в сервисе - исправил )

TLENS » 2011.12.07 14:54

Как то у меня глючит он.
атрибуты title не показывает cursor не меняет, теряет фокус. Не знаю даже чего делать с этим уведомлением.

TLENS » 2011.12.10 21:22

Паша ну че ты смотрел? я видел пару недостатков таких как нет сдвига курсора в конец текста при нажатии на ник, Я просто хз как оно делается. так же надо остановить счетчик (закрытия) при ответе.
Что там еще надо?

Gemorroj » 2011.12.11 00:00

да я смотрел, я может не совсем чего понимаю, но там часть функциолнала не работает. клик по тебе сообщения, например, или кнопка ответить не совсем понятно как работает - она же и textarea показывает, она же и сообщение отправляет. еще че-то было, завтра постараюсь заняться. сегодня другое делал.

TLENS » 2011.12.11 00:04

Хм. ::thumb928::

Gemorroj » 2011.12.11 00:10

ну как минимум я в хроме без кукисов фоумных.

TLENS » 2011.12.11 00:11

Вот наверное и вся проблема.
Я как то не подумал на счет этого

TLENS » 2011.12.11 00:34

Когда будешь свободен? надо переделать полностью апи. Как ты говорил методами. Мне многое не нравится

Gemorroj » 2011.12.11 00:54

пиши что не нравится

TLENS » 2011.12.11 01:08

Получение форумов как здесь http://wapinet.ru/forum/search.php?action=show_new
1) метод не принимает аргументов возвращает int количество новых.
2) метод принимает int n возвращает массив n не прочитанных  array[2] {"status": true, "pid": array[n] {все то же что на getMessage}} сообщений.

Gemorroj » 2011.12.11 01:10

т.е. новый метод на непрочитанные темы нужен?

TLENS » 2011.12.11 01:11

PS/ второй метод должен работать как LIMIT в mysql например с 10, 10
Добавлено спустя   1 минуту  25 секунд:
Кстати пока месть я прохожу курсы машинописи и мне запрещается что то писать пока не закончу. Так что прийдется пару недель подождать.

Gemorroj » 2011.12.11 01:13

какой второй метод?

TLENS » 2011.12.11 01:14

Браузерное расширение для форума

Gemorroj » 2011.12.11 01:20

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

TLENS » 2011.12.11 01:26

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

Gemorroj » 2011.12.11 01:35

брать 10 последних, например. и все.

TLENS » 2011.12.11 01:36

Ну можно и так.

Gemorroj » 2011.12.11 15:03

Меня очень напрягают функции  connect и сопутствующие getForum и saveForum.
connect нужно переписывать.

TLENS » 2011.12.11 15:07

Да не только тебя.
Просто когда писал функции, не имел понятия об ооп. Да и сейчас не очень. У меня практики по js нет вообще. Да и знаний мало - гуглом пишу.

Gemorroj » 2011.12.11 16:13

код закомитил в свн по новому API.
не работает окрытие новых окон из вспывающих оповещений. хз в чем дело.
еще некорректно откывает ссылки, если путь относительный.

TLENS » 2011.12.12 01:12

Gemorroj написал:

еще некорректно откывает ссылки, если путь относительный.

В опере переходи в расширения пока показывается уведомление, далее нажимаешь на notifikation.html и вкладка консоль. кликнешь по ссылке и оно тебе покажет ошибку если такова есть.

Gemor » 2011.12.12 01:20

нет ошибок. такое ощущение что сам клик не перехватывается.

TLENS » 2011.12.12 16:10

Именно по тексту может надо?

TLENS » 2011.12.12 16:51

оно все глючное я думаю, надо переделать

Gemorroj » 2011.12.12 19:35

ну можно отрефакторить. все переделывать-то заманаешься)

IMPEXINVINE » 2012.03.03 13:35

Я это описал в теме "Страницы для новестей" этого раздела.
Я когда писал свою СMS и форум к ней легко справился с этой задачей. эсли найду этот форум то могу выложить. Могу помочь с написаним, если нужно обращайтесь

Gemorroj » 2012.03.03 14:09

IMPEXINVINE, помогай)

Gemorroj » 2012.03.03 21:34

TLENS? ниче нового не накодил..?)

TLENS » 2012.03.04 19:11

Сегодня доделаю вот только не пойму почему апи возвращает пустую страницу.
Посмотри
Добавлено спустя   5 минут  24 секунды:
Напиши мне в аську

Gemorroj » 2012.03.04 19:42

у меня сломалась аська и не работает)
а какой конерктно метод в апи проблемный?
вызвал getConfig все ок

TLENS » 2012.03.04 20:14

Странно так как я его вызывал у меня пусто
Сек посмотрю внимательно
Добавлено спустя   2 минуты  36 секунд:
Дай адрес (Пример) как звонишь?

Gemorroj » 2012.03.04 20:28

https://code.google.com/p/wapinet-forum/source/browse/trunk/chrome/background.js#7
перешел по адресу http://wapinet.ru/forum/ajax.server.php?informer&method=getConfig
получил конфиг

TLENS » 2012.03.04 20:35

Ай блин ты же через методы все зделал
Добавлено спустя   1 минуту  58 секунд:
А что тогда с этим делать? https://code.google.com/p/punbb-mod/sou … mp;r=14#51
А я долбу параметр GET['getConfig']

Gemorroj » 2012.03.04 20:53

https://code.google.com/p/punbb-mod/sou … ver.php#51
теперь 51 строчка выглядит так.
Добавлено спустя    31 секунду:
ты свн обновлял вообще? я же подогнал расширение под новый апи

TLENS » 2012.03.04 23:04

А нет
Добавлено спустя    37 секунд:
Я решил его отрефакторить

IMPEXINVINE » 2012.03.05 20:37

Я это описал в теме "Страницы для новестей" этого раздела.
Я когда писал свою СMS и форум к ней легко справился с этой задачей. эсли найду этот форум то могу выложить. Могу помочь с написаним, если нужно обращайтесь

Gemorroj » 2012.03.05 21:07

IMPEXINVINE, выкладывай, помогай.

tipsun » 2012.03.05 21:38

IMPEXINVINE == БОТ

TLENS » 2012.03.06 02:53

Блин сегодня ничего не сделал пару методов отрефачил за 15 мин
Добавлено спустя   3 минуты  19 секунд:
Проблемы были в голове))

IMPEXINVINE » 2012.03.26 12:41

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

Половину могу убрать

TLENS » 2012.03.27 12:26

Время мало сейчас заннялся делом и за своим сайтром не успеваю следить. На этих выходных попробую закончить релиз.
Что я испривил:
Сделал один главный файл background.html и с ним настроил все порты. Тоесть чтобы подключится к апи с popup надо позвонить в бекгроунд потом с бакгроунда при ответе звоню назад в popup и отправляю результаты. Собственно данные все тоже лежат в бекгроунде и получаются с через порт.
Вот пару методов для в вода в курс блин десигнер 8 истек. Щас лиценцзию возьму

TLENS » 2012.03.27 12:43

Усовершенствована база форумов.

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
forums = {
get array () {
var arr = {3:{},4:{},5:{},6:{},7:{}};
for (var i = 3; i <= 7; i++) {
arr[i].last_post_time = this[i].last_post_time;
arr[i].last_post_id = this[i].last_post_id;
arr[i].last_poster = this[i].last_poster;
arr[i].subject = this[i].subject;
arr[i].icon = this[i].icon;
}
return arr;
}
};
for (var i = 3; i <= 7; i++) {
forums[i] = prototype = {
i: i,
get last_post_time () {
return localStorage['forum[' + this.i + '][last_post_time]'] ?
parseInt(localStorage['forum[' + this.i + '][last_post_time]']) :
0;
},
set last_post_time (v) {
localStorage['forum[' + this.i + '][last_post_time]'] = v;
},
get last_post_id () {
return localStorage['forum[' + this.i + '][last_post_id]'] ?
parseInt(localStorage['forum[' + this.i + '][last_post_id]']) :
0;
},
set last_post_id (v) {
localStorage['forum[' + this.i + '][last_post_id]'] = v;
},
get last_poster () {
return localStorage['forum[' + this.i + '][last_poster]'];
},
set last_poster (v) {
localStorage['forum[' + this.i + '][last_poster]'] = v;
},
get subject () {
return localStorage['forum[' + this.i + '][subject]'];
},
set subject (v) {
localStorage['forum[' + this.i + '][subject]'] = v;
},
get icon () {
return (localStorage['forum[' + this.i + '][icon]']) ? true : false;
},
set icon (v) {
localStorage['forum[' + this.i + '][icon]'] = v;
}
}
}

Метод для упрощение работы с апи

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var api = {
call: function (method, value, callback, error) {
var variable = '';
if (typeof value === 'object') {
for (v in value) {
variable += '' + v + '=' + value[v] + '&';
}
}
switch (method) {
case 'getMessage':
case 'getPrivateMessage':
case 'getPrivateMessages':
case 'getConfig':
case 'setMessage':
case 'getForums':
return $.getJSON('http://' + configs.host + '' + configs.patch_api + 'method=' + method + '&' + variable)
.success(callback)
.error(error);
break;
default:
return null;
}
}
};

Ну и собственно пример работы с портами

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
ports = {
popup: null,
notification: null,
contentscript: null
};
 
 
 
 
 
chrome.extension.onConnect.addListener(function(port) {
if (port.sender.id === window.location.hostname) {
if (port.name === 'popup')
ports.popup = port;
else if (port.name === 'notification')
ports.notification = port;
else if (port.name === 'contentscript')
ports.contentscript = port;
else return;
port.onMessage.addListener(function (msg) {
// Проверка на соединение портов. Чет умнее не придумал.
if (typeof msg.connected !== 'undefined')
port.postMessage({connected: true});
// Получение и изминение настроек см. method.settingInPort
else if (typeof msg.setting !== 'undefined')
port.postMessage({setting: method.settingInPort(msg.setting)});
// Получение данных. А также их изменение (например отмерка как прочитаное)
else if (typeof msg.forum !== 'undefined')
port.postMessage({forum: method.forumInPort(msg.forum)});
// Прямой доступ к апи.
else if (typeof msg.api !== 'undefined')
api.call(msg.method, msg.value, function (data) {
if (data.status === true)
port.postMessage({api: true, data: data.data});
else
port.postMessage({api: true, error: data.data});
},
function (data) {
port.postMessage({api: true, error: data});
});
else if (typeof msg.reload !== 'undefined')
api.call('getForums', null, method.updateData);
});
// Событие на разрыв соединения.
port.onDisconnect.addListener(function () {
ports[port.name] = null;
});
}
});
 
 
 
 
api.call('getConfig', null, settings.update);
method.startUpdateData();
Gemorroj » 2012.03.27 14:49

так комить в свн