Привет))). У меня ещё пара функций для работы с наградами. Причём кроме функций добавления наград пользователю и показа окошек, есть также функции получения, плюс функции администрирования.
(function(window){
window.showAwards = function(user){
return new _uWnd('AwL','Список наград',380,200,{autosize:1,maxh:300,minh:100,closeonesc:1},{url:'/index/54-' + user});
};
window.showAward = function(user,id){
return new _uWnd('AwL','Список наград',380,200,{autosize:1,maxh:300,minh:100,closeonesc:1},{url:'/index/54-' + user + '-' + id});
};
window.changeAwards = function(user){
return new _uWnd('AwD','Вручить награду',380,200,{autosize:1,maxh:300,minh:100,closeonesc:1},{url:'/index/55-' + user});
};
window.addAward = function(user,obj,fn){
$.post('/index/', {
a:55,
c:obj.id,
comment:obj.comment,
s:user,
t:1
}, fn);
};
window.getAllAwards = function(user,fn){
$.get('/index/54-' + user, function(data){
var arr = [];
var code = $('cmd[p=content]', data).text();
code = $(code);
$('fieldset', code).each(function(){
var header = $('legend', this).text();
$('td', this).each(function(){
var obj = {};
obj.group = header;
obj.id = parseInt($(this).attr('onclick').split('url:\'/index/54-' + user + '-')[1].split('\'')[0]);
obj.img = $('img', this).attr('src');
obj.count = parseInt($('img', this).next().text());
obj.getInfo = function(func){
$.get('/index/54-' + user + '-' + obj.id, function(data){
var code = $('cmd[p=content]', data).text();
code = $(code);
var predmets = [];
$('fieldset', code).each(function(){
var info = {};
info.username = $('legend b',this).text();
info.usergroup = $('legend',this).text();
info.usergroup = info.usergroup.substring(info.username.length+2, info.usergroup.length-1);
info.userpage = $('legend a',this).attr('href');
info.user = info.userpage.split('-');
info.user = info.user[info.user.length-1];
info.comment = $('legend',this).next().text();
info.date = $('legend',this).next().next().text();
info.identifier = $('legend',this).next().attr('id').substring(3);
info.change = function(text){
$.post('/index/', {
a:56,
c:info.identifier,
comment:text,
p:2,
s:2,
ssid:$('cmd[p=js]',data).text().split(' name="ssid" value="')[1].split('"')[0]
});
}
info.delete = function(){
$.get('/index/56-' + user + '-' + info.identifier + '-1');
}
predmets.push(info);
});
func(predmets);
});
}
arr.push(obj);
});
});
fn(arr);
});
}
};
})(window);
Итак, показываем окошко наград пользователя с id = 2:
showAwards(2);
Окошко награды. Id юзера = 2. Id награды = 10:
showAward(2, 10);
Показываем окошко добавления юзеру награды. Id юзера:
changeAwards(2);
Добавляем юзеру награду:
addAward(2, {id:10, comment:'Вот тебе награда...'}, function(){
// функция исполнится после
});
Id юзера - 2. Id награды - 10 (смотреть в панели управления). Ну и комментарий.
Ну и функция getAllAwards. Про неё надо поподробнее.
getAllAwards(2,function(awards){
// awards - массив наград
});
Первый параметр - id юзера. Второй - функция. Она принимает параметром массив awards - это награды. Каждая награда имеет след. параметры: - group - группа (например "Знаки отличия").
- id - id награды.
- img - адрес картинки.
- count - количество наград.
- getInfo - получение более подробной информации + функций администрирования.
Теперь чуть поподробнее про функцию award.getInfo. Мы можем её вызвать для получения более подробной информации. Передаём функцию:
getAllAwards(2,function(awards){
awards[0].getInfo(function(info){
// используем объект info
});
});
Ну а теперь последнее - про объект info. Следующие свойства: - username - имя пользователя, подарившего подарок. Пардон, награду.
- usergroup - его группа.
- userpage - его персональная страница.
- user - его id.
- comment - комментарий.
- date - дата (в формате uCoz).
- identifier - другой идентификатор.
Кроме того, у объекта info есть две функции для администрирования: - change(text) - изменяет комментарий награды на text.
- delete() - удаляет награду.
|