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

Reply
 
Thread Tools Display Modes
  #1  
Old 12-08-2010, 04:55 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Activeusers in Navbar template question

Is there a way to check for activers users in another template, like the navbar, without running a query for it there? Like they do in the forumdisplay.
Reply With Quote
  #2  
Old 12-10-2010, 04:02 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Anyone have any idea on this?
Reply With Quote
  #3  
Old 12-10-2010, 04:37 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

There is a query for it in the forumdisplay page. Look at line 332.
Reply With Quote
  #4  
Old 12-10-2010, 04:54 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Actually, I saw that query but didn't see anything about activeusers around it until it did the activeusers template render.

So there is no way to pre-register it from somewhere else for the navbar template then?
Reply With Quote
  #5  
Old 12-10-2010, 04:59 AM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Shot in the dark, untested, and all that with vBulletin 4.1.0 Patch Level 2...

Say you want active users in the navbar template when you are on the forum.php page. Try adding a plugin to the forumhome_complete hook with this code:
Code:
vB_Template::preRegister('navbar', array('activeusers' => $activeusers));
Then use the following in the navbar template wherever you want it to appear:
Code:
<div>
	<ol class="commalist">
		{vb:raw activeusers}
	</ol>
</div>
If it works, you can do the same type of thing as above except for the forumdisplay.php page change the hook to forumdisplay_complete and use the following instead (because $navbar is set earlier in forumdisplay.php than forum.php so create it again):
Code:
vB_Template::preRegister('navbar', array('activeusers' => $activeusers));
$navbar = render_navbar_template($navbits);
And for the the showthread.php page, the hook would be showthread_complete with the same code as with the forumdisplay.php page.

Whatever vB kicks out to $activeusers on those various pages should (unless this is all baked) be what you get in the navbar save for tweaks.
Reply With Quote
  #6  
Old 12-10-2010, 07:42 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by calorie View Post
Shot in the dark, untested, and all that with vBulletin 4.1.0 Patch Level 2...

Say you want active users in the navbar template when you are on the forum.php page. Try adding a plugin to the forumhome_complete hook with this code:
Code:
vB_Template::preRegister('navbar', array('activeusers' => $activeusers));
Then use the following in the navbar template wherever you want it to appear:
Code:
<div>
	<ol class="commalist">
		{vb:raw activeusers}
	</ol>
</div>
If it works, you can do the same type of thing as above except for the forumdisplay.php page change the hook to forumdisplay_complete and use the following instead (because $navbar is set earlier in forumdisplay.php than forum.php so create it again):
Code:
vB_Template::preRegister('navbar', array('activeusers' => $activeusers));
$navbar = render_navbar_template($navbits);
And for the the showthread.php page, the hook would be showthread_complete with the same code as with the forumdisplay.php page.

Whatever vB kicks out to $activeusers on those various pages should (unless this is all baked) be what you get in the navbar save for tweaks.
I tried pre-registering the template like you showed for the forumhome but it still isn't working like I want it to. Here is what I am trying to do. I have the following code in the parse_templates hook for the navbar, after adding the pre-register portion of it to the forumhome_complete hook. I want the link to only show if there are activeusers on the site.

Code:
if ($activeusers) 
{ 
    $template_hook['navbar_community_menu_end'] .= '<li><a href="usermap.php' . $session[sessionurl_q] . '">' . $vbphrase['usermap'] . '</a></li>'; 
}

It doesn't show the link on the forumhome. I really don't want to add a query for this to the parse_template hook as it will add a query to every page, won't it?
Reply With Quote
  #7  
Old 12-10-2010, 04:26 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The parse_templates hook is inside the process_templates function where $activeusers is not in scope. You can try globaling it like below, but if you still get nothing, then it could be that $activeusers isn't set yet, so $activeusers doesn't exist at the parse_templates hook:
Code:
global $activeusers;

if ($activeusers) 
{
	$template_hook['navbar_community_menu_end'] .= '<li><a href="usermap.php' . 
		$session[sessionurl_q] . '">' . $vbphrase['usermap'] . '</a></li>'; 
}
If $activeusers isn't set, how about doing something like this instead?
Code:
if ($vbulletin->userinfo['userid'])
{
	$template_hook['navbar_community_menu_end'] .= '<li><a href="usermap.php' . 
		$session[sessionurl_q] . '">' . $vbphrase['usermap'] . '</a></li>'; 
}
That way you can forgo the other stuff, and you'll know that at least one person is active, the logged in member who can see the link to the user map. It might not quite be what you are after, but there will be at least one logged in person if the link appears.
Reply With Quote
  #8  
Old 12-10-2010, 04:59 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Globalizing activeusers didn't work either, so it must not be set yet, like you said. I can go with the $vbulletin->userinfo['userid'] and leave it at that. Guests won't be able to view it, but that might actually be a good thing in the long run.

Thank you very much for all the help, Carrie. At least we gave it a shot.
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 02:02 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04520 seconds
  • Memory Usage 2,235KB
  • 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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (9)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (8)post_thanks_box
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (8)post_thanks_postbit_info
  • (8)postbit
  • (8)postbit_onlinestatus
  • (8)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_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