Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 08-31-2007, 05:29 AM
Otikeu Otikeu is offline
 
Join Date: Nov 2004
Posts: 95
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Buddy List in User CP Plugin

Hello,

I've been trying to get the User CP to support buddylist-related needs. That is, I added the template code of the buddylist template and added this plugin code for usercp_start hook:

PHP Code:
if (!$vbulletin->userinfo['userid'])
    {
        
print_no_permission();
    }

    (
$hook vBulletinHook::fetch_hook('misc_buddylist_start')) ? eval($hook) : false;

    
$buddies =& $vbulletin->input->clean_gpc('r''buddies'TYPE_STR);

    if (
trim($vbulletin->userinfo['buddylist']))
    {
        
$buddylist preg_split('/( )+/'trim($vbulletin->userinfo['buddylist']), -1PREG_SPLIT_NO_EMPTY);
        
$datecut TIMENOW $vbulletin->options['cookietimeout'];

        
$buddys $db->query_read_slave("
            SELECT
            user.username, (user.options & " 
$vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, user.userid, session.lastactivity
            FROM " 
TABLE_PREFIX "user AS user
            LEFT JOIN " 
TABLE_PREFIX "session AS session ON(session.userid = user.userid)
            WHERE user.userid IN (" 
implode(','$buddylist) . ")
            ORDER BY username ASC,session.lastactivity DESC
        "
);

        
$onlineusers '';
        
$offlineusers '';
        
$newusersound '';
        
$lastonline = array();

        if (isset(
$buddies))
        {
            
$buddies urldecode($buddies);
            
$lastonline explode(' '$buddies);
        }
        
$buddies '0 ';
        
$show['playsound'] = false;

        require_once(
DIR '/includes/functions_bigthree.php');
        while (
$buddy $db->fetch_array($buddys))
        {
            if (
$doneuser["$buddy[userid]"])
            {
                continue;
            }

            
$doneuser["$buddy[userid]"] = true;

            if (
$onlineresult fetch_online_status($buddy))
            {
                if (
$onlineresult == 1)
                {
                    
$buddy['statusicon'] = 'online';
                }
                else
                {
                    
$buddy['statusicon'] = 'invisible';
                }
                
$buddies .= $buddy['userid'] . ' ';
            }
            else
            {
                
$buddy['statusicon'] = 'offline';
            }

            
$show['highlightuser'] = false;

            (
$hook vBulletinHook::fetch_hook('misc_buddylist_bit')) ? eval($hook) : false;

            if (
$buddy['statusicon'] != 'offline')
            {
                if (!
in_array($buddy['userid'], $lastonline) AND !empty($lastonline))
                {
                    
$show['playsound'] = true;
                    
$show['highlightuser'] = true;
                    
// add name to top of list
                    
eval('$onlineusers = "' fetch_template('buddylistbit') . '" . $onlineusers;');
                }
                else
                {
                    eval(
'$onlineusers .= "' fetch_template('buddylistbit') . '";');
                }
            }
            else
            {
                eval(
'$offlineusers .= "' fetch_template('buddylistbit') . '";');
            }
        }
    }

    
$buddies urlencode(trim($buddies)); 
It works great on usercp.php, but I wish for it to work globally on the usercp_shell template. So, I tried the usercp_nav_start hook and got this error:

Quote:
Fatal error: Call to a member function on a non-object in /home/gaminghy/public_html/forums/includes/functions_user.php(51) : eval()'d code on line 16
What would the correct way to optimize the code so it still works, but doesn't cause the errors? I plan to release this as a hack/template mod here, but just need help with that one part.

Thank you.
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 01:42 AM.


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.05923 seconds
  • Memory Usage 2,251KB
  • Queries Executed 11 (?)
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)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • 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