Вы не зашли.
Главная » PHP » Браузерное расширение для форума
#171. IMPEXINVINE Off (0)
Участник
2012.03.26 12:12
не ну согласен. но скрипты ведь еще и не идеал. их нужно дорабатыва. я ведь не выкладывал полые сценарии. эти скрипты еще дописывать и дописывать. но для начала вполне хватит, даже больше чем надо. Ну надоже подтолкнуть, помочь человеку  или вы не согласны?

Половину могу убрать
#172. TLENS Off (14)
Moderator
2012.03.27 12:12
Время мало сейчас заннялся делом и за своим сайтром не успеваю следить. На этих выходных попробую закончить релиз.
Что я испривил:
Сделал один главный файл background.html и с ним настроил все порты. Тоесть чтобы подключится к апи с popup надо позвонить в бекгроунд потом с бакгроунда при ответе звоню назад в popup и отправляю результаты. Собственно данные все тоже лежат в бекгроунде и получаются с через порт.
Вот пару методов для в вода в курс блин десигнер 8 истек. Щас лиценцзию возьму
#173. TLENS Off (14)
Moderator
2012.03.27 12:12
Усовершенствована база форумов.
Код:
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;
}
}
}
Метод для упрощение работы с апи
Код:
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;
}
}
};
Ну и собственно пример работы с портами
Код:
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();
#174. Gemorroj Off (107)
Administrator
2012.03.27 14:02
так комить в свн
Страниц: 116 17 18 Все
Главная
WEB
PunBB Mod v0.6.2
0.015 s