Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 08-14-2011, 12:17 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by felixthekat85 View Post
Equal, if you know it, I would like it you share it. and I evaluated whether it is worthwhile or not.
I put this together by taking code from vb scripts. If you make a plugin using hook location postbit_display_complete you will have the information for up to 6 of the the posting user's friends:

PHP Code:
if (!function_exists('get_random_friends'))
{
    function 
get_random_friends($userid$random true$max 6)
    {
        global 
$vbulletin;
        static 
$cache_friends = array();
       
        if (!
is_array($cache_friends[$userid]))
        {
            
$cache_friends[$userid] = array();
            
$res $vbulletin->db->query_read_slave("SELECT relationid
                                    FROM " 
TABLE_PREFIX "userlist as userlist
                    WHERE userlist.userid = 
$userid 
                    AND userlist.type = 'buddy'
                    AND userlist.friend = 'yes'
            "
);
            while (
$user $vbulletin->db->fetch_array($res))
                
$cache_friends[$userid][$user['relationid']] = array();
        }
        
$ret = array();            
        if (
count($cache_friends[$userid]))
        {
            if (
$random)
            {
                
$ids array_rand($cache_friends[$userid], min($maxcount($cache_friends[$userid])));
                if (!
is_array($ids))
                    
$ids = array($ids);
            }
            else
                
$ids array_slice(array_keys($cache_friends[$userid]), 0min($maxcount($cache_friends[$userid])));

            
$idlist "0";
            foreach (
$ids as $id)
            {
                if (
count($cache_friends[$userid][$id]) == 0)
                    
$idlist .= ", $id";
                
$ret[$id] = &$cache_friends[$userid][$id];
            }
            if (
$idlist !== "0")
            {
          
$res $vbulletin->db->query_read_slave("
        SELECT user.userid as userid, username, avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline, 
                         customavatar.width AS avwidth, customavatar.height AS avheight, customavatar.height_thumb AS avheight_thumb, 
                         customavatar.width_thumb AS avwidth_thumb, customavatar.filedata_thumb 
                  FROM " 
TABLE_PREFIX "user AS user
                  LEFT JOIN " 
TABLE_PREFIX "avatar AS avatar ON (avatar.avatarid = user.avatarid) 
                  LEFT JOIN " 
TABLE_PREFIX "customavatar AS customavatar ON (customavatar.userid = user.userid) 
        WHERE user.userid IN (
$idlist)
                "
);
                while (
$userinfo $vbulletin->db->fetch_array($res))
                    
$ret[$userinfo['userid']] = $userinfo
            }
        }
        return 
$ret;
    }
}

$friends get_random_friends($post['userid']);
//echo "<pre>" . print_r($friends, true) . "</pre></br>"; 

You can uncomment the echo line to see what is available. I'll leave it to you to figure out how to display the avatars
Also, if you don't use the thumbnail images, it's probably a good idea to remove the "thumb" fields from the query to cut down on memory used.
I should probably add that I'm not a database expert, so this may not be the most efficient way to get the info you need.


Quote:
Another question.

The condition of MemberInfo
<if condition="$prepared['isfriend'] OR $post['userid'] == $bbuserinfo['userid']">
content
</if>
is possible apply in Postbit??
No, $prepared is not available in postbit.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:12 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.02997 seconds
  • Memory Usage 2,259KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete