Привет :). Предлагаю вашему вниманию новую функцию - поиск пользователей на сайте. Учитывая, что для неё нет API, а расположение полей может быть произвольным, пришлось заморочиться - но в итоге всё прекрасно получилось. Итак, код: (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 - сам, честно говоря, не понял
|