Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #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

Thread Tools
Display Modes

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:01 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.03342 seconds
  • Memory Usage 2,193KB
  • 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
  • (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)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