The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Help with obtaining the forumid in a plugin
Good morning all,
Following on from this thread, I abused the js code linked to as I didn't want to just work on images, I thought replacing the contents of a div would be better, as some of the banners I would be using would be flash, and thus not a simple img src reference, plus most are img tags within hrefs to allow them to be clickable. The overall idea is the ability to have per forum rotating banners. I currently use vBSponsors, which allows a single per forum banner to be displayed (small one on the main forum listing, larger one when you view the list of threads in that forum). The disadvantage here is that it only allows a single banner per forum, and I wanted to be able to display multiple banners per forum. Using the aforementioned, modified js code I do have a solution that is working, but it isn't that elegant, and it means creating a lot of plugins, at least two per forum, which I think is unacceptable, and this is where I come seeking help. Where to start? I think with my edits to the forumhome_forumbit_level2_post template. After: Code:
<a href="forumdisplay.php?$session[sessionurl]f=$forum[forumid]"><strong>$forum[title]</strong></a> <if condition="$show['browsers']"><span class="smallfont">(<phrase 1="$forum[browsers]">$vbphrase[x_viewing]</phrase>)</span></if> Code:
<!-- START - mrwrb --> <if condition="$forum[mrwrb_forumhome_banners_enabled] == 1 AND $vboptions[mrwrb_global_enable_banners] == 1"> <div id="mynicebanner$forum[forumid]" style="float:$stylevar[right]; padding-left:10px; height: 80px;"> </div> <if condition="$forum[forumid] == 39"> $GLOBALS[mrwrb_forum_39_small] <SCRIPT LANGUAGE="JavaScript"> mycurrentlocation = 'mynicebanner' + $forum[forumid]; rotateImage_forum39(mycurrentlocation) </SCRIPT> </if> <if condition="$forum[forumid] == 48"> $GLOBALS[mrwrb_forum_48_small] <SCRIPT LANGUAGE="JavaScript"> mycurrentlocation = 'mynicebanner' + $forum[forumid]; rotateImage_forum48(mycurrentlocation) </SCRIPT> </if> </if> <!-- END - mrwrb --> The above checks to see if my banner system is globally enabled and if I've also enabled banner display for what I've named forumhome, which actually equates to the forumhome_forumbit_level2_post template. It then checks the forumid and if it matches a specific value, it will do something. This is part of the reason I'm seeking help. The $GLOBALS[mrwrb_forum_39_small] relates to this plugin: product: vBulletin Hook Location: global_start Title: mrwrb_forum_39_small Execution Order: 5 Plugin PHP Code: PHP Code:
Here is where my first question comes into play. As you can see from my template edit, I'm having to create a conditional check for each forum, and at present I have at least 50 forums, thus 50 conditional checks. The key point here is no so much the conditionals it's the plugin code. With my current setup I would need 50 plugins, each reading a different file. I think is is, every so slightly overkill. If I had a single plugin for things then I could remove the conditional checking for the forumid which would be much better. Is it possible for me to create a plugin such as this: PHP Code:
Any suggestions or advice is greatly recommended. |
#2
|
|||
|
|||
An update from myself.
Further to posting the above here, I was provided with some information which, after some experimentation produced the desired results. It is indeed possible to have a single plugin to handle the forumhome_forumbit_level2_post implementation. The plugin code was as follows: product: vBulletin Hook Location: forumbit_display Title: mrwb_forum_small Execution Order: 5 Plugin PHP Code: PHP Code:
Code:
<!-- START - mrwrb --> <if condition="$forum[mrwrb_forumhome_banners_enabled] == 1 AND $vboptions[mrwrb_global_enable_banners] == 1"> <div id="mynicebanner$forum[forumid]" style="float:$stylevar[right]; padding-left:10px; height: 70px;"> </div> $mrwrb_forum_small <SCRIPT LANGUAGE="JavaScript"> mycurrentlocation = 'mynicebanner' + $forum[forumid]; myfuncname = 'rotateImage_forum' + $forum[forumid]; window[myfuncname](mycurrentlocation); </SCRIPT> </if> <!-- END - mrwrb --> I've tested this on a few forums and it does appear to work. I've also modifed the SHOWTHREAD and FORUMDISPLAY templates to allow rotating banners to be displayed there as well. My final edit was to have an "All Forums" banner, which is displayed on every section, and I have done this by creating a new template and inserting the banner code into it. Thanks to Lawrence at vbcodex for his help on this. I thought I'd post my findings here as it may help others |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|