Quote:
Originally Posted by felixthekat85
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($max, count($cache_friends[$userid])));
if (!is_array($ids))
$ids = array($ids);
}
else
$ids = array_slice(array_keys($cache_friends[$userid]), 0, min($max, count($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.