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 05-13-2012, 10:03 AM
christian.cloug christian.cloug is offline
 
Join Date: Mar 2012
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Integrating the Contact list into my homepage

I am trying to make a modification that is in theory quite simple but I'm having some trouble with the execution, I would be very grateful if anyone might be able to help:

I want to integrate a user's contact list (i.e. misc.php?do=buddylist&focus=1) within another template (my vBulletin powered homepage that uses a customised template)....

So far I have:
  • transferred all the relevant code from the BUDDYLIST template into my homepage template
  • extracted the relevant Buddylist php code from misc.php and put it into my homepage.php file

This does not yet work however and the buddy list shows up as empty, with no online or offline users...

I have a feeling the problem lies in my page's php code, and might be something to do with the code from misc.php not meshing with the code for my homepage e.g. it's trying to create the BUDDYLIST template as well as the MAP template? I post it below:

NB my homepage template is called 'MAP', the render code for which is in the section 'CHRISTIANS MAP CODE' at the bottom of the page.
NB2 you'll see there is probably some redundant code from Misc.php here that i've transferred over in an effort to make sure I haven't missed anything

If you'd like me to give you a link and a login to my website so you can see how it looks just let me know and I will PM you.

Thank you for your time.


PHP Code:
<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT''map');
define('CSRF_PROTECTION'true);
if (
in_array($_GET['do'], array('whoposted''buddylist''getsmilies')))
{
    
define('NOPMPOPUP'1);
}

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array('fronthelp''register');

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array('MAP',
);

// pre-cache templates used by specific actions
$actiontemplates = array(
    
'buddylist' => array(
        
'BUDDYLIST',
        
'buddylistbit'
    
),
    
'whoposted' => array(
        
'WHOPOSTED',
        
'whopostedbit'
    
),
    
'showattachments' => array(
        
'ATTACHMENTS',
        
'attachmentbit',
    ),
    
'bbcode' => array(
        
'help_bbcodes',
        
'help_bbcodes_bbcode',
        
'help_bbcodes_link',
        
'bbcode_code',
        
'bbcode_html',
        
'bbcode_php',
        
'bbcode_quote',
        
'bbcode_video',
    ),
    
'getsmilies' => array(
        
'smiliepopup',
        
'smiliepopup_category',
        
'smiliepopup_row',
        
'smiliepopup_smilie',
        
'smiliepopup_straggler'
    
),
    
'showsmilies' => array(
        
'help_smilies',
        
'help_smilies_smilie',
        
'help_smilies_category',
    ),
    
'showrules' => array(
        
'help_rules',
    )
);
$actiontemplates['none'] =& $actiontemplates['showsmilies'];

// allows proper template caching for the default action (showsmilies) if no valid action is specified
if (!empty($_REQUEST['do']) AND !isset($actiontemplates["$_REQUEST[do]"]))
{
    
$actiontemplates["$_REQUEST[do]"] =& $actiontemplates['showsmilies'];
}







// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
chdir ('forum');
require_once(
'./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################




// ############################### start buddylist ###############################

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

// ############################### start buddylist ###############################



    
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);

    
$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 "userlist AS userlist
        LEFT JOIN " 
TABLE_PREFIX "user AS user ON(user.userid = userlist.relationid)
        LEFT JOIN " 
TABLE_PREFIX "session AS session ON(session.userid = user.userid)
        WHERE userlist.userid = 
{$vbulletin->userinfo['userid']} AND userlist.relationid = user.userid AND type = 'buddy'
        ORDER BY username ASC, session.lastactivity DESC
    "
);

    
$onlineusers '';
    
$offlineusers '';
    
$newonlineusers '';
    
$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
                
$templater vB_Template::create('buddylistbit');
                    
$templater->register('buddy'$buddy);
                
$newonlineusers .= $templater->render();
            }
            else
            {
                
$templater vB_Template::create('buddylistbit');
                    
$templater->register('buddy'$buddy);
                
$onlineusers .= $templater->render();
            }
        }
        else
        {
            
$templater vB_Template::create('buddylistbit');
                
$templater->register('buddy'$buddy);
            
$offlineusers .= $templater->render();
        }
    }

    
$onlineusers $newonlineusers $onlineusers;

    
$buddies urlencode(trim($buddies));

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

    
$templater vB_Template::create('BUDDYLIST');
        
//$templater->register_page_templates();
        
$templater->register('buddies'$buddies);
        
$templater->register('offlineusers'$offlineusers);
        
$templater->register('onlineusers'$onlineusers);
    
//print_output($templater->render());






// ###### CHRISTIANS MAP CODE #########
// ###### CHRISTIANS MAP CODE #########
// ###### CHRISTIANS MAP CODE #########
// ###### CHRISTIANS MAP CODE #########
    
$navbits construct_navbits(array('' => 'MAP'));
$navbar render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle 'casenexus.com - map';

// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater vB_Template::create('MAP');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);



print_output($templater->render());
    
    
    
?>
Reply With Quote
  #2  
Old 05-13-2012, 12:57 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I think what you want to do is take out the buddylist template create call

Code:
   $templater = vB_Template::create('BUDDYLIST');

then move the three register lines down to where you render your MAP template:

Code:
$templater = vB_Template::create('MAP');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);

$templater->register('buddies', $buddies);
$templater->register('offlineusers', $offlineusers);
$templater->register('onlineusers', $onlineusers);


print_output($templater->render());

then insert {vb:raw buddies} {vb:raw offlineusers} and {vb:raw onlineusers} into your MAP template where you want them to appear. (You might want to copy parts of the formatting from the BUDDYLIST template).
Reply With Quote
  #3  
Old 05-13-2012, 01:44 PM
christian.cloug christian.cloug is offline
 
Join Date: Mar 2012
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

it worked! I was hoping it was going to be a nice simple solution like that - 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 06:36 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.08024 seconds
  • Memory Usage 2,257KB
  • 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_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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