The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
||||
|
||||
look over my code please avatars not displaying correctly
so i managed to get the userids so now im converting them to their avatar.
this code is partially working and i have been toying with it for hours with no success. this is the closest i've come in making this work. *side note* im not too good with php* heres the code i came up with after hours of digging (i know... hours, yeah pathetic) oh and this is on forumbit_display Code:
$lastpname = $lastpostinfo[lastposter]; $getlastpname = $vbulletin->db->query_first("SELECT userid FROM ". TABLE_PREFIX ."user WHERE username = \"$lastpname\""); $lastpid = $getlastpname['userid']; require_once('./includes/functions_user.php'); $lastpavurl = fetch_avatar_url($vbulletin->userinfo['userid']); if (!($lastpav)){ $lastpav = "<img src='http://3.bp.blogspot.com/-mg71OkrgNhY/Uv9zeCV4IsI/AAAAAAAABbc/zqOph-wGgpc/s1600/Batman_avatar-e1263852269689.jpg' />"; } else{ $lastpav = "<a href='member.php?u=$lastpid'><img src='image.php?u=$lastpid' alt='$lastpname Profile'></a>"; } so the batman (default image) is posted where 1. there are no threads and 2. when a user doesn't have an avatar as you can see in the SS (or live on my site, in my sig) the image is not appearing in the user with no avatar, nor the last forum with no post. viewing the source i see Code:
<img src="http://dirtrif.com/avatars/drbot.gif" alt="DrBot" s="" profile="" title="DrBot"> Code:
<img src="http://dirtrif.com/" alt="" s="" profile=""> so im lost and thought id ask for help =) and happy valentines day everyone |
#2
|
|||
|
|||
Here's the code that displays the avatar in the postbit:
PHP Code:
You could use that by calling $userinfo = fetch_userinfo($lastpid, FETCH_USERINFO_AVATAR), then using $userinfo in place of $this->post in the above code. One difference is that it looks like the above code allows for no avatar at all instead of giving everyone the default. Also it allows for the "viewing" user having selected the option to not see avatars. Edit: Also use $vbulletin in place of $this->registry. |
Благодарность от: | ||
Dr.CustUmz |
#3
|
|||
|
|||
Also, for reference, here's the corresponding code from the postbit template:
Code:
<if condition="$show['avatar']"><td class="alt2"><a href="member.php?$session[sessionurl]u=$post[userid]"><img src="$post[avatarurl]" $post[avwidth] $post[avheight] alt="<phrase 1="$post[username]">$vbphrase[xs_avatar]</phrase>" border="0" /></a></td></if> |
#4
|
||||
|
||||
thanks kevin, it's something. even though you lost me lol. so i took that snippit and replaced all the $this->registry 's with $vbulletin and the $this->post 's with $userinfo
I appended that code to my existing code, and like i suspected got errors. so i try'd taking out my original if condition and changed the template piece to $userinfo ? rather than $lastpav still errors, unexpected if something, my brains farting so hard right now lol. im just lost, looking over the code i mean it looks fairly simple, just alot of if elses but if its not vb template php ( $templatecode ) <if>this <else /> that</if> its close to giberish to me although something i REALLY REALLY want to learn and this seemed like a fairly easy outcome i was looking for to help get me started "learning" lol. so im assuming i can take quite a few of those if conditions out of that snippit, and maybe rename some variables so my template <if> would be to my liking, but yeah brain farts and no sleep go so well together. im gunna wrap this up with im lost, i appreciate the help though =) and maybe just maybe this will result in a cool little plugin. so have a good valentines day y'all and im passing out <3 and heres the full funked up code, that i totally ruined Code:
$lastpname = $lastpostinfo[lastposter]; $getlastpname = $vbulletin->db->query_first("SELECT userid FROM ". TABLE_PREFIX ."user WHERE username = \"$lastpname\""); $lastpid = $getlastpname['userid']; require_once('./includes/functions_user.php'); $lastpavurl = fetch_avatar_url($vbulletin->userinfo['userid']); $lastpav = "<img src='http://3.bp.blogspot.com/-mg71OkrgNhY/Uv9zeCV4IsI/AAAAAAAABbc/zqOph-wGgpc/s1600/Batman_avatar-e1263852269689.jpg' />"; } else{ $lastpav = "<a href='member.php?u=$lastpid'><img src='image.php?u=$lastpid' alt='$lastpname Profile'></a>"; } $userinfo = fetch_userinfo($lastpid, FETCH_USERINFO_AVATAR) // get avatar if ($userinfo['avatarid']) { $userinfo['avatarurl'] = $userinfo['avatarpath']; } else { if ($userinfo['hascustomavatar'] AND $vbulletin->options['avatarenabled']) { if ($vbulletin->options['usefileavatar']) { $userinfo['avatarurl'] = $vbulletin->options['avatarurl'] . '/avatar' . $userinfo['userid'] . '_' . $userinfo['avatarrevision'] . '.gif'; } else { $userinfo['avatarurl'] = 'image.php?' . $vbulletin->session->vars['sessionurl'] . 'u=' . $userinfo['userid'] . '&dateline=' . $userinfo['avatardateline']; } if ($userinfo['avwidth'] AND $userinfo['avheight']) { $userinfo['avwidth'] = 'width="' . $userinfo['avwidth'] . '"'; $userinfo['avheight'] = 'height="' . $userinfo['avheight'] . '"'; } else { $userinfo['avwidth'] = ''; $userinfo['avheight'] = ''; } } else { $userinfo['avatarurl'] = ''; } } if ( // no avatar defined for this user empty($userinfo['avatarurl']) OR // visitor doesn't want to see avatars ($vbulletin->userinfo['userid'] > 0 AND !$vbulletin->userinfo['showavatars']) OR // user has a custom avatar but no permission to display it (!$userinfo['avatarid'] AND !($this->cache['perms'][$userinfo['userid']]['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuseavatar']) AND !$userinfo['adminavatar']) // ) { $show['avatar'] = false; } else { $show['avatar'] = true; } |
#5
|
|||
|
|||
Yeah, I know how you feel. To be honest, I just couldn't figure out how your code was supposed to work or how to make it handle all the possible options, but maybe you don't really need it to. Maybe someone else will see how to fix the last issue with your code.
|
#6
|
|||
|
|||
In your script you do:
PHP Code:
PHP Code:
|
Благодарность от: | ||
TheLastSuperman |
#7
|
||||
|
||||
i tried the empty if that resulted in all of the avatars being batman.
the end result is rly simple... well i would think it will show the last posters avatar (check) if user has no avatar it will show default avatar (half check) if no threads in forum it shows default avatar (half checked) maybe i can avoid the issue of the if user has no avatar show default by requiring a avatar at reg (theres already a mod for that) but still that doesnt solve why it doesnt display the batman pic in the very last forum =/ |
#8
|
|||
|
|||
The easiest way to find out why it's not working is to debug: dump your variables and see what it contains. Now it's a guessing game.
For example, above the if statement, add: PHP Code:
|
#9
|
||||
|
||||
Quote:
the result of running the dump (to big for a screenshot) Legend for dump: batman (means full default img) me (means my avatar) and the results: NULL string(126) "batman" NULL NULL string(126) "batman" string(78) "me" string(78) "me" string(126) "batman" so it looks to be correctly getting the information, and even though it gets that last batman img its not were it supposed to be as seen in the 1st post image. as for the user with no avatar (i believe is the 2nd NULL) im guessing i need an if condition for if user has avatar which i thought i was doing with: Code:
fetch_avatar_url($vbulletin->userinfo['userid']); --------------- Added [DATE]1423937537[/DATE] at [TIME]1423937537[/TIME] --------------- also i left the dump echo on my site you wont miss it (sry for the big img overlay which rly isnt hard to disable in chrome) but you can see the results starting at the top of the page http://dirtrif.com this is with the original code from the first post |
#10
|
|||
|
|||
I still can't figure out how that code is working. It looks like there's only 2 options, it either your avatar or it's batman, so I don't see how you're getting the html you posted for the last one. Is the code you're using still what you posted in post #1?
BTW, I think what you want is $lastpavurl = fetch_avatar_url($lastpid), because using $vbulletin->userinfo['userid'] will always be your avatar. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|