vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Friend in postbit (https://vborg.vbsupport.ru/showthread.php?t=268441)

felixthekat85 08-12-2011 11:14 PM

Friend in postbit
 
1 Attachment(s)
is can show $block_data[friendbits] (template: memberinfo_block_friend) in postbit?

Frosty 08-13-2011 04:20 AM

Amigo, why would you want that in the postbit? It kinda makes no sense. :/

felixthekat85 08-13-2011 08:42 AM

My idea is to show how many friends you have.($post[friendcount])
and below, 6 images at random avatars of his friends.
any ideas?

Frosty 08-13-2011 09:46 AM

It's possible, but it would definitely slow down the load of threads. I wouldn't recommend that, but count of total friends is acceptable - and I assume you already know how to add it to the postbit. I'd personally stick with that. :)

felixthekat85 08-13-2011 06:37 PM

Thank you friend.
consider your suggestion to not load the show threads.
Equal, if you know it, I would like it you share it. and I evaluated whether it is worthwhile or not.

Another question.
The condition of MemberInfo
<if condition="$prepared['isfriend'] OR $post['userid'] == $bbuserinfo['userid']">
content
</if>
is possible apply in Postbit??

kh99 08-14-2011 12:17 AM

Quote:

Originally Posted by felixthekat85 (Post 2233122)
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.


All times are GMT. The time now is 03:49 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.01087 seconds
  • Memory Usage 1,756KB
  • 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
  • (1)bbcode_php_printable
  • (2)bbcode_quote_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