vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   making buddylist multipage (https://vborg.vbsupport.ru/showthread.php?t=77435)

altsounds 03-04-2005 04:27 AM

making buddylist multipage
 
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."usertextf ield 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.
PHP Code:

    // ###################### 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)
PHP Code:

    $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.


All times are GMT. The time now is 04:03 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02183 seconds
  • Memory Usage 1,739KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (6)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete