View Full Version : how to get avatar url?
pein87
04-23-2010, 07:25 PM
I made a template and a custom page but right now it will not show the avatar. Could anyone help me out as to how I can get the avatar url?
This is the current code I'm using in the src attribute
image.php?u=$hallOfFameEntries[userid]
I use a custom query to get the user id.
brandondrury
05-02-2012, 03:10 PM
It looks like this changed in vb4 as the image.php?u=$userid method worked fine for me in vB3.
Anyone know the URL/variable for this in vB4?
Brandon
BirdOPrey5
05-02-2012, 05:21 PM
Actually I think it still works just like it did in 3.x- but the thing is it only works if avatars are stored in the database. If avatars are in the file system it won't work with either.
I'm pretty sure there is no URL- it is an often asked, never answered, question. Someone posted a function to get it (via a query) once but I don't remember anything else about it.
check out this link-
https://www.vbulletin.com/forum/showthread.php/387323-How-To-Add-User-Avatar-to-CMS-Articles
souperman
05-02-2012, 10:38 PM
You can get the user avatarrevision and locate the file if it's stored on the hdd.
$avatar = "http://www.domain.com/customavatars/thumbs/avatar".$vbulletin->userinfo['userid']."_".$vbulletin->userinfo['avatarrevision'].".gif";
That's just the gist, here how I would do it:
Check if the user has an avatarid
If user has avatarid, then get the fileurl of the avatar from the avatar table
if user doesn't have an avatarid (avatarid = 0), then check if user has an avatarrevision > 0
if avatarrevision > 0 then you can get the url path from my code above using the userid and avatarrevision
if avatarrevision == 0 and avatarid ==0, then user has no avatar and display the no avatar url
Hope my pseudo code helps you out.
--------------- Added 1336002405 at 1336002405 ---------------
Here's what I use in one of my external scripts:
function get_avatar_url($avatarid)
{
if ($avatarid == 0)
{
$sql = "SELECT user.avatarrevision
FROM user
JOIN customavatar
ON user.userid = customavatar.userid
WHERE user.userid = '".mysql_real_escape_string($user_id)."'
LIMIT 1";
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0)
{
$data = mysql_fetch_array($result);
return "http://www.domain.com/customavatars/thumbs/avatar".$user_id."_".$data['avatarrevision'].".gif";
}
else
{
return "http://www.domain.com/images/noavatarmini.gif";
}
}
else
{
return "http://www.domain.com/images/avatars/thumbs/".$avatarid.".gif";
}
}
In my case, the avartarid is the given. To make it fit your purpose I would do a LEFT join on the customavatar table to get the avatarid and any other useful info.
I would recommend to do the join on the query that's already getting your user information to save resources. If you post your query I can help you out with that.
BirdOPrey5
05-03-2012, 11:27 AM
Why would all Avatars be .gif files?
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.