Статистика друзей: девушки, парни

Готовые уроки IFrame + ВКонтакте API
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Статистика друзей: девушки, парни

Сообщение Александр »

Статистика друзей: девушки, парни
JavaScript

Этот урок создан на основе урока Вывод аватарок друзей, списки Online и Offline, но деление на списки будет происходить не по онлайн/оффлайн, а по указанному в анкете полу.

В этом уроке показано:
- как узнать список друзей
- разделение друзей на девушки, парни и не указавшие пол
- вывод аватарок друзей
- использование одной функции для правильных окончаний разных слов (1 подруга, 2 друга)
- использование изображения прелоадера

Изображение


code.js

Код: Выделить всё

/*  https://flapps.ru/forum - форум о создании приложений */ $(document).ready(function(){    VK.init(function() {    // выполняем запрос получения списка друзей    VK.api("getFriends", {fields:"sex,photo"}, function(data) {        // узнаем количество друзей        var frCount = data.response.length;         var girlsCount = 0;        var boysCount = 0;        var someCount = 0;                var girlsStr = ''; // девушки        var boysStr = ''; // парни        var someStr = ''; // не указан пол                // массивы форм слов        var friendsEnd = ['друзей','друг','друга'];        var girlsEnd = ['подруг','подруга','подруги'];                for (var i=0; i<frCount; i++) {            if (data.response[i].sex == 1) { // если девушка                girlsCount++;                girlsStr += '<a href="http://vkontakte.ru/id' + data.response[i].uid + '" title="' + data.response[i].first_name + ' ' + data.response[i].last_name + '"><img src="' + data.response[i].photo + '" /></a>';            } else if (data.response[i].sex == 2) {                    boysCount++;                    boysStr += '<a href="http://vkontakte.ru/id' + data.response[i].uid + '" title="' + data.response[i].first_name + ' ' + data.response[i].last_name + '"><img src="' + data.response[i].photo + '" /></a>';                } else {                    someCount++;                    someStr += '<a href="http://vkontakte.ru/id' + data.response[i].uid + '" title="' + data.response[i].first_name + ' ' + data.response[i].last_name + '"><img src="' + data.response[i].photo + '" /></a>';                }        }         $("#totalCount").html('У вас ' + frCount + ' ' + num_ending(frCount,friendsEnd));        $("#girlsCount").html(girlsCount + ' ' + num_ending(girlsCount,girlsEnd));        $("#girls").html(girlsStr);        $("#boysCount").html(boysCount + ' ' + num_ending(boysCount,friendsEnd));        $("#boys").html(boysStr);        $("#someCount").html(someCount + ' ' + num_ending(someCount,friendsEnd) + ' - не указали пол');        $("#some").html(someStr);               // скрываем прелоадер        $('#loader').fadeOut(1000);    });    });});  // функция формирования правильных окончаний слов// number - число, endings - массив окончаний, состоящий из 3х форм: 'друзей','друг','друга'function num_ending(number,endings) {    var num100 = number % 100;    var num10 = number % 10;    if (num100 >= 5 && num100 <= 20) {        return endings[0];    } else if (num10 == 0) {        return endings[0];    } else if (num10 == 1) {        return endings[1];    } else if (num10 >= 2 && num10 <= 4) {        return endings[2];    } else if (num10 >= 5 && num10 <= 9) {        return endings[0];    } else {        return endings[2];    }} /* flapps.ru */
index.html

Код: Выделить всё

<html><head><script src="js/jquery-1.6.1.min.js" type="text/javascript"></script><script src="js/code.js" type="text/javascript"></script><link rel="stylesheet" href="css/style.css" type="text/css" /><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script> </head><body><div id="loader"><img src="http://vk.com/images/upload.gif" alt="" width="32" height="8" border="0" /></div> <div id="totalCount"></div> <div id="girlsCount"></div><div id="girls"></div>  <div id="boysCount"></div><div id="boys"></div> <div id="someCount"></div><div id="some"></div> <br /><a href="https://flapps.ru/" target="_blank">https://flapps.ru/</a> </body></html>
style.css

Код: Выделить всё

body {    padding:0;    margin:0;    font-family: tahoma, verdana, arial, sans-serif, Lucida Sans;    font-size: 11px;} #girls img, #boys img, #some img{    padding:0;    margin:0;}#totalCount,#girlsCount, #girls,#boysCount, #boys,#someCount, #some {    display:block;    clear:both;}#totalCount, #girls, #boys, #some {    margin-bottom:20px;} /* изображение прелоадер */#loader {    width: 100%;     height: 100%;     position: fixed;     text-align: center;     z-index: 1000;     background-color: #fff;     opacity: 0.80;} #loader img{    position: absolute;     left: 50%;     top: 50%;     margin: -40px 0 0 -40px;}
Приложение должно быть включено.
Состояние: Приложение включено и видно всем.

Исходник: https://flapps.ru/example/friends_get_girls_boys.rar
S2T2A2S2
ЗАБАНЕН!
Сообщения: 131
Зарегистрирован: 04 окт 2009, 12:53

Re: Статистика друзей: девушки, парни

Сообщение S2T2A2S2 »

Перекопский девушка? о_О
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Статистика друзей: девушки, парни

Сообщение Александр »

Не заметил) api говорит что да)
Александр2012
Сообщения: 14
Зарегистрирован: 21 мар 2012, 21:36

Re: Статистика друзей: девушки, парни

Сообщение Александр2012 »

Скачал архив скопировал в папку WWW
cgi-bin/
css/
js/
index.html

В контакте прописал путь к index.html

ИТОГ: картинку загрузки показывает и все - ничего не выводит!
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Статистика друзей: девушки, парни

Сообщение Александр »

Александр2012
Скрипт обращается к api? Смотри с помощью Charles.
murdoev
Сообщения: 1
Зарегистрирован: 03 авг 2012, 01:37

Re: Статистика друзей: девушки, парни

Сообщение murdoev »

Александр2012 писал(а):Скачал архив скопировал в папку WWW
cgi-bin/
css/
js/
index.html

В контакте прописал путь к index.html

ИТОГ: картинку загрузки показывает и все - ничего не выводит!
На странице настроек приложения проверьте, установлено ли:

Установка приложения: Требуется
Права доступа: Запрашивать доступ к: доступ к друзьям
LetoLeto
Сообщения: 3
Зарегистрирован: 01 дек 2012, 15:10

Re: Статистика друзей: девушки, парни

Сообщение LetoLeto »

Уважаемые знатоки ))

Подскажите как аналогичное реализовать, если есть не один аккаунт, друзей на котором надо подсчитать (всего, девушек, парней), а допустим 10... и подсчитать надо общее количество друзей, общее количество девушек и общее количество парней.

Буду рад подсказке.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Статистика друзей: девушки, парни

Сообщение Александр »

LetoLeto
В чем проблема? Вызвать getFriends для каждого из 10 аккаунтов. Потом логически объединить результат.
LetoLeto
Сообщения: 3
Зарегистрирован: 01 дек 2012, 15:10

Re: Статистика друзей: девушки, парни

Сообщение LetoLeto »

Александр, а вам очень сложно написать код этого мероприятия? ))
Архимед
Сообщения: 2
Зарегистрирован: 05 дек 2012, 18:33

Re: Статистика друзей: девушки, парни

Сообщение Архимед »

Заместо правильного текста, у меня квадратики, у других тоже.
Александр, поставь, пожалуйста, правильную кодировку.
Ответить