22:20
Поиск пользователей
Привет :). Предлагаю вашему вниманию новую функцию - поиск пользователей на сайте. Учитывая, что для неё нет API, а расположение полей может быть произвольным, пришлось заморочиться - но в итоге всё прекрасно получилось.
user
{

поиск

}

Итак, код:
(function(window){ 
var names = {
'День рождения':'birth',
'ICQ':'icq',
'Пол':'gender',
'Город':'city',
'Дата входа':'logintime',
'Имя (не ник!)':'name',
'Аватар':'ava',
'Ранг':'rank',
'Группа':'group',
'Дата регистрации':'regtime',
'Сообщения':'messages',
'Страна':'country',
'Никнейм':'nickname',
'MSN идентификатор':'msn',
'Штат':'state',
'Yahoo идентификатор':'yahoo',
'AOL идентификатор':'aol'
};
window.search_user = function(name, params, fn){
var url = '/index/';
if(typeof name === 'number') params.page = name, name = '';
if(!fn && typeof params === 'function') fn = params, params = name, name = '';
else if(!fn) fn = params;
if(params.res != undefined){
params.res = parseInt(params.res);
if(params.res > 9){
params.res = (params.res - 10) / 10;
}
}
var obj = {
a:15,
gender:params.gender || 0,
group:params.group || 0,
res:params.res || 0,
s:params.page || 1,
sort:params.sort || 1,
user:name,
w:params.w || 0
};
if(params.ban) obj.ban = 1;
$.post('/index/', obj, function(data){
data = $(data);
var users = [], user;
var params = [];
$('.uTable tr:eq(0) td', data).each(function(i){
params[i] = names[this.textContent] || this.textContent.split('\n').join(' ');
});
$('.uTable tr', data).each(function(i){
if(!i) return;
var user = {};
$('td', this).each(function(i){
user[params[i]] = this.textContent;
});
users.push(user);
});
fn(users);
});
}
})(window);

Есть такой момент: если вы переименовали названия полей в замене стандартных надписей, и они есть на странице со списком пользователей - лучше их заменить в объекте names.

Используем:
search_user('username', function(users){ 
// users - массив пользователей
});


Каждый элемент массива - объект с разными свойствами: birth, icq, gender, city, logintime, name, ava, rank, group, regtime, messages, country, nickname, msn, state, yahoo, aol. Если назначение какого-либо непонятно - смотрим в код функции, в самое начало, массив names.

Также мы можем просто получить всех юзеров:
search_user(function(users){});


Но все на странице не помещаются, потому смотрим вторую страницу:
search_user(2, function(users){});


Можно передать дополнительные параметры:
search_user('nick', { 
group:1, // ищем только из группы пользователей
page: 2 // сразу грузим вторую страницу вместо первой
}, function(users){});


Все параметры:

  • gender - пол (1 - только мужчины, 2 - только женщины, 0 - без разницы).

  • group - id группы пользователей.

  • res - забыл уже :(

  • page - страница

  • sort - как сортировать

  • w - сам, честно говоря, не понял

891, 4, Кейтен, 19.05.2024, 06:39, 4.1
3 h_  
smile классно, ждем! Оставил сайт в закладках)

1 h_  
нового ничего не будет? sad

2 Кейтен  
Сейчас, к сожалению, времени очень не хватает. Как только появится - сразу займусь. Кстати говоря, модуль пользователей уже почти закончен, пара функций осталась.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Скачать
Партнёры
Комментарии
(26.06.2012)
smile классно, ждем! Оставил сайт в закладках)
Кейтен (13.05.2012)
Если вы знаете JavaScript, то эти функции могут помочь вам писать скрипты для uCoz
Кейтен (12.05.2012)
Сейчас, к сожалению, времени очень не хватает. Как только появится - сразу займусь. Кстати говоря, модуль пользователей уже почти закончен, пара функций осталась.
(19.04.2012)
нового ничего не будет? sad
Статистика