Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 08-10-2011, 02:03 PM
ltwinnerr ltwinnerr is offline
 
Join Date: Feb 2010
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Want to show user image on the header of every page

When a user is logged into my site I want to show their avatar in the header of every page.

I thought it would be a simple matter of retrieving user image from some global variable but after looking at the avatars in the forum, which have src attributes like "image.php?u=1&dateline=1312310668" and did some debugging with netbeans and I can see it is more complicated than that and the avatars are retrieved using the image.php script.

I have inserted a template_hook.user_pic into my header template and I have a plugin that registers the variable -

$template_hook['user_pic'] = xyz

All I am missing is the xyz. So how can I retrieve the image of the currently logged in user so I can replace the xyz with the users image? Cheers.
Reply With Quote
  #2  
Old 08-10-2011, 02:36 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I always cheat on stuff like that because it's hard to figure out. So in this case I went to includes/class_postbit.php and stole the code (and changed $post to $vbulletin->userinfo):

PHP Code:
if ($vbulletin->userinfo['avatarid'])
{
    
$vbulletin->userinfo['avatarurl'] = $vbulletin->userinfo['avatarpath'];
}
else
{
    if (
$vbulletin->userinfo['hascustomavatar'] AND $vbulletin->options['avatarenabled'])
    {
        if (
$vbulletin->options['usefileavatar'])
        {
            
$vbulletin->userinfo['avatarurl'] = $vbulletin->options['avatarurl'] . '/avatar' $vbulletin->userinfo['userid'] . '_' $vbulletin->userinfo['avatarrevision'] . '.gif';
        }
        else
        {
            
$vbulletin->userinfo['avatarurl'] = 'image.php?' $vbulletin->session->vars['sessionurl'] . 'u=' $vbulletin->userinfo['userid'] . '&dateline=' $vbulletin->userinfo['avatardateline'];
        }
    }
    else
    {
        
$vbulletin->userinfo['avatarurl'] = '';
    }


putting that in parse_templates seems to work. And you also need a plugin on init_startup with:

PHP Code:
define('AVATAR_ON_NAVBAR'1); 

Strangely, the code already has checks for AVATAR_ON_NAVBAR, but it seems to do nothing except load the avatar data into $vbulletin->userinfo[] (but it turns out to be what's needed to make this work).

Anyway, then you should be able to use {vb:raw bbuserinfo.avatarurl} in a template.
Reply With Quote
Reply


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 11:18 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08005 seconds
  • Memory Usage 2,183KB
  • 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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (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_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
  • 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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • 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