PDA

View Full Version : making buddylist multipage


altsounds
03-04-2005, 04:27 AM
Hi guys,

I am severely modifying my vbulletin and would love to do one thing. I have used and modified a hack that was on here to show the buddylist of that user on their profile for all to see. Now I am not a coder of any means so I'm sure the code is not the greatest but the problem this whole thing has right now is that if a user has more than 8 buddies the page keeps growing down, messing up my webpage layout.

I have to things that I would like to do with this and need you guys help in coding it. They are:

1. After 8 buddies have been shown a $pagenav will come up with the ability to click next page and see 8 more buddies.

2. Instead of displaying the buddies alphabetically I would love it if it would be displayed randomly thus making it easier to find new buddies and their profiles to look @.

This is the code that I have right now in member.php that displays the buddylist in the profile and I just call $buddyavatar within the MemberInfo Template to show it:

$userinfo = verify_id('user', $userid, 1, 1, 15);

$whichlist = "buddylist";
// (Dis)Likes
$outuserids = array();
$outuserids = explode(' ', trim($userinfo[$whichlist]));
if (trim($userinfo[$whichlist]) != "") {
$outusers = $DB_site->query("SELECT ".TABLE_PREFIX."user.username,".TABLE_PREFIX."user.userid,".TABLE_PREFIX."userte xtfield.".$whichlist." FROM
".TABLE_PREFIX."user,".TABLE_PREFIX."usertextfield WHERE
".TABLE_PREFIX."user.userid = ".TABLE_PREFIX."usertextfield.userid AND
".TABLE_PREFIX."user.userid IN (".implode(',',$outuserids).")
ORDER BY username");
while ($outuser = $DB_site->fetch_array($outusers)) {
if ($outuser[avatarurl]!= ""){$outuser[avatarurl] = fetch_avatar_url($outuser['userid']);
$buddyavatar .= ""<tr valign=bottom><td class=alt1 width=35%><a href=\"$vboptions[bburl]/member.php?u=$outuser[userid]\"><img src=\"image.php?u=$outuser[userid]image.php?u=$userinfo[userid]&amp;type=profile\" border=0 height=50></a></td><td class=alt2 width=35%><a class=\"smallfont\" href=\"$vboptions[bburl]/member.php?u=$outuser[userid]\"/>$outuser[username]</a></td></tr>$pagenav";

$outuserlist .= "<a class=\"smallfont\" href=\"$vboptions[bburl]/member.php?u=$outuser[userid]\"/>$outuser[username]</a>";

}
else {$outuser[avatarurl] = fetch_avatar_url($outuser['userid']);}
$buddyavatar .= "<tr valign=bottom><td class=alt1 width=35%><a href=\"$vboptions[bburl]/member.php?u=$outuser[userid]\"><img src=\"image.php?u=$outuser[userid]image.php?u=$userinfo[userid]&amp;type=profile\" border=0 height=50></a></td><td class=alt2 width=35%><a class=\"smallfont\" href=\"$vboptions[bburl]/member.php?u=$outuser[userid]\"/>$outuser[username]</a></td></tr>";

$outuserlist .= "<td class=alt2 width=35%><a class=\"smallfont\" href=\"$vboptions[bburl]/member.php?u=$outuser[userid]\"/>$outuser[username]</a></td></tr>";

}
}

Any help you can provide coding these two additions to this already existing code would be magical.

I look forward to your help.

Chris

sabret00the
03-04-2005, 10:30 AM
that hack you're using needs optimising i know cos i was gonna use it, but anyway you need to add a limit to the main query with the pagenav data :)

altsounds
03-04-2005, 11:34 AM
Can you give me some more details please??? I understand what you mean from above, but how does that translate into physical code?? Excuse me I'm a PHP newbie.

Chris

altsounds
03-07-2005, 02:07 AM
Anyone?

sabret00the
03-07-2005, 10:48 AM
ok let me find an example of the code you need.

taken straight from some code i'm working on.

you'd need to set your pagenav variables i.e.
// ###################### pagenav
$page = iif($page < 1, "1", intval($page));
$totalposts = $grps_showgroup['totalposts'];
$currentlocation = "viewthread.php?$session[sessionurl]g=$groupid";
$perpage = intval($vboptions['grpspostsperpage']);
$pagenumber = $page;
$upperlimit = ($page * $perpage);
$final_calculations = ($upperlimit - $perpage);


then you'd need to make sure that the query realises the code (based on the code of the hack you're using)
$inusers = $DB_site->query("
SELECT user.username, user.userid, usertextfield." . $whichlist . "
FROM " . TABLE_PREFIX . "user AS user, " . TABLE_PREFIX . "usertextfield AS usertextfield
WHERE user.userid = usertextfield.userid AND FIND_IN_SET('" . $userinfo[userid] . "',
REPLACE(usertextfield." . $whichlist . ", ' ', ',')) > 0
ORDER BY user.username
LIMIT $final_calculations, $perpage
");

altsounds
03-08-2005, 04:52 PM
I really hate to do this but I am not a PHP coder by any means. Is there anyway you can demostrate your example in the example code that I initially posted??

What you put makes sense but making that work in this script I have no idea how to do it.

Thanks so much for your continued help.