Hi Pedro.

You have to build an algorithm to make it work like you want. I´ve cut a
piece of code that makes something like you want. I didnt test it, but
probably will work.

Take a look and if you have any questions, send a message again.

// global vars
var NUM_RECORDS=16;
var page=0;
var numberFriends=0;

function loadFriends() {

    var req = opensocial.newDataRequest();
    var opt_params = { };
    opt_params[opensocial.DataRequest.PeopleRequestFields.MAX] = 400;
    opt_params[opensocial.DataRequest.PeopleRequestFields.FILTER] =
opensocial.DataRequest.FilterType.HAS_APP;

req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.OWNER_FRIENDS,opt_params),
'viewerFriends');

    req.send(onLoadFriends);

}

/**
* Callback to receive friends
*/
function onLoadFriends(data)
{

    var viewerFriends = data.get('viewerFriends').getData();

    i=1;
    firstRecord = (page*NUM_RECORDS)+1;
    numberPages = 0;

    try{
    viewerFriends.each(function(person) {

            if(i>=firstRecord && i < (firstRecord+NUM_RECORDS)){
                // handle your operations here
            }

            i++;
        }
    });

    // fix pagination
    i--;

    // total number of friends
    numberFriends = i;

    // number of pages
    numberPages = i/NUM_RECORDS;

    // fix number of pages
    if(numberPages % NUM_RECORDS > 0 && numberPages > NUM_RECORDS)
        numberPages++;

    // convert it to integer
    numberPages = parseInt(numberPages);

    // just to call pages to test.
    document.write('<input type="button" value=">"
onclick="javascript:move('+page+'+1)"'+(page+1>=numPag ? '
disabled':'')+'>');
    document.write('<input type="button" value="<"
onclick="javascript:move('+page+'-1)"'+(page<=0 ? ' disabled' : '')+'>');

}

/*
* Simple function to move between pages
*/
function move(pageNumber)
{
    // assign to global variable
    page = pageNumber;

    //load friends again
    loadFriends();
}

Cheers,

-Robson

You just need to use that and make a loop to iterate
2009/2/27 Pedro Vicente <neteinst...@gmail.com>

>
> Oh and i forgot. The nasty thing is that if i store like the first 50
> friends, and have 10 per page, then every time i change page and try
> to get the data, i will loop through the first 10, ou 20, or.. i get
> the picture.
>
> On Feb 27, 2:33 pm, Pedro Vicente <neteinst...@gmail.com> wrote:
> > I knew that way, but thought that there was a "nicer" or "cleaner"
> > way.
> >
> > Tks
> >
> > On Feb 27, 2:26 pm, Robson Dantas <biu.dan...@gmail.com> wrote:
> >
> > > Hi Pedro.
> >
> > > The simplest way is to use a variable to count first five and then
> exit.
> >
> > > var i=1;
> > > xpto.each(function(person){
> >
> > >    if (i==5) return;
> >
> > >    do stuff..
> >
> > >    i++;
> >
> > > });
> >
> > > Let me know if it is what you want.
> >
> > > Cheers,
> >
> > > --Robson Dantashttp://blogdodantas.dxs.com.br
> >
> > > 2009/2/27 Pedro Vicente <neteinst...@gmail.com>
> >
> > > > Hello,
> >
> > > > I've been looking at some examples of apps in hi5 and OpenSocial
> page.
> >
> > > > All of them make a request of 10 friends for example, and then with
> > > > the xpto.each(function(person) { .... use them all.
> >
> > > > My question is, how do i get only the 5 first friends of the 10 (so
> > > > that i can request a X ammount of friends and do some pages with them
> > > > without having to do a cycle with all of them...
> >
> > > > Thanks in advanced and sorry if the is a more javascript question.
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"OpenSocial Application Development" group.
To post to this group, send email to opensocial-api@googlegroups.com
To unsubscribe from this group, send email to 
opensocial-api+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/opensocial-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to