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 04-15-2010, 04:15 AM
alfex68 alfex68 is offline
 
Join Date: Feb 2008
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default alternate threadbit template based on forumid

Hello,all
If anyone could help me with a small plugin I'm working on it would be greatly appreciated.
What I'm trying to accomplish is this:

I would like to call an alternate threadbit template based on the forumid of the forum.

I've been able to make this work for both the forumdisplay template using this code:

Code:
if ($foruminfo[forumid] == 7)
{
eval('print_output("' . fetch_template('FORUMDISPLAY2') . '");');
}
And the showthread template using this code:

Code:
if ($foruminfo[forumid] == 7)
{
eval('print_output("' . fetch_template('SHOWTHREAD2') . '");');
}
But I cannot get it to work for the threadbits template.

So far I've figured out that when $threadbits is called in the forumdisplay template there's
a little more going on because of the looping of the bits, but what I'm working with so far
it isn't working. I've tried the hook locations of forumdisplay_start, forumdisplay_complete, threadbits_process,
and threadbits_display.

Only threadbits_display successfully switched the template but it only works for one iteration of the
loop and then it revert back to the threadbits template and does something funky and does a duplicate display
...and only one.

Here is my plugin...Can anyone help out with this?

Code:
if ($foruminfo[forumid] == 7)
{
eval('$threadbits = "' . fetch_template('threadbit2') . '";');
}

I'm assuming I either have the hook location wrong when $threadbits is getting eval'ed

I know calling the variable for threadbits and evaluating the template is not really the same thing but I'm pretty sure the logic is in the right ball park.
or maybe I just don't have a clue....

I just want the $threadbits when its called to use my alternate threadbits2 template instead of the default threadbits template

This is my first attempt at this, and I'm stumped.

TIA
Reply With Quote
  #2  
Old 04-15-2010, 11:56 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What is the reason you want to use different templates for some forums? Would it not be easier to set a specific style, with the modified templates, for this forum?
Reply With Quote
  #3  
Old 04-15-2010, 12:39 PM
alfex68 alfex68 is offline
 
Join Date: Feb 2008
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the reply. It's funny you mention that... I also thought about assigning a child style for the particular forum. Then I re-evaluated what I was actually trying to do and went the plugin direction.

There were two major things that brought about my decision.

1. The potential problems associated with updating and modifying the style while keeping the parent/child compatible. (now and in the future...especially when I forget what the heck I did and where I did it) I would hate to accidentally revert or overwrite all of my changes away due to one night of being sleepy. ( I'm sure we've all done that!)

2. I thought about it from performance perspective also...now I may be wrong here and I will gladly defer to the experts, but why parse an entire new style (even if it is a child), and cache those templates, when all I'm really trying to do is set a 3 maybe 4 line conditional?

When I successfully tried it for forumdisplay and for showthread...I was pretty sure the plugin was the most efficient way. And like I mentioned before the above code using the hook threadbit_display almost works.

Am I mistaken in my assumptions?
Reply With Quote
  #4  
Old 04-15-2010, 01:20 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

A new style is nothing more then an empty placeholder. It will always inherit the template data from the level above (even with no parent set, you will be using the hidden default style for the template data).

Only templates that are modified in the current style are stored with the style.

When a page is requested the styles are merged into the style that will be used for the current page, this does not have much overhead.

As long as you remember to do all your changes to 1 upper level style and only make changes to the templates that need to be different in teh child style(s) for your forums that should have a specific template. You can set a forum to use an admin set style, regardless of the users choice.

I would suggest to use this method as it is just using the default options offered by vBulletin, so it should always work without any (code) changes if you would upgrade vBulletin.

By going the plugin route, you are creating extra code (overhead) that might break in a future version of vBulletin.
Reply With Quote
  #5  
Old 04-15-2010, 02:41 PM
alfex68 alfex68 is offline
 
Join Date: Feb 2008
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you for your help...I defer to the experts and will give the style a try.
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 05:11 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.10376 seconds
  • Memory Usage 2,201KB
  • 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
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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