PDA

View Full Version : How To Implement A Simple Random Banner



Jake Bunce
Tue 10th Jan '06, 11:26am
There are many ways to do this. Here is a simple method that uses PHP's rand() function to randomize the banners.

Enable Your Plugin System


You need to use a plugin for this, so first make sure your plugin system is enabled:

Admin CP -> vBulletin Options -> Plugin/Hook System -> Enable Plugin/Hook System

Create New Plugin


Now create a new plugin for the parse_templates hook location:

Admin CP -> Plugin System -> Add New Plugin

Use this PHP code in the plugin:



$random_number = rand(1, 5);

$random_banner[1] = '<a href="http://www.link1.com/"><img src="path/to/banner1.gif" alt="" border="0" /></a>';
$random_banner[2] = '<a href="http://www.link2.com/"><img src="path/to/banner2.gif" alt="" border="0" /></a>';
$random_banner[3] = '<a href="http://www.link3.com/"><img src="path/to/banner3.gif" alt="" border="0" /></a>';
$random_banner[4] = '<a href="http://www.link4.com/"><img src="path/to/banner4.gif" alt="" border="0" /></a>';
$random_banner[5] = '<a href="http://www.link5.com/"><img src="path/to/banner5.gif" alt="" border="0" /></a>';


The blue numbers represent the range of random numbers to be generated, or the number of banners you have in your rotation. You need to edit the top two numbers appropriately, and then create a $random_banner[X] line for each number in the range. In the above code, the random number is between 1 and 5, inclusive, and there are five banners defined.

Change the red code appropriately for each banner.

Display The Banner


Use this code in any template to display the random banner:



$random_banner[$random_number]


The header template is a common place to insert banners:

Admin CP -> Styles & Templates -> Style Manager -> Common Templates (in the menu) -> header

Replace the red code:



<!-- logo -->
<a name="top"></a>
<table border="0" width="$stylevar[outertablewidth]" cellpadding="0" cellspacing="0" align="center">
<tr>
<td align="$stylevar[left]"><a href="$vboptions[forumhome].php$session[sessionurl_q]"><img src="$stylevar[titleimage]" border="0" alt="$vboptions[bbtitle]" /></a></td>
<td align="$stylevar[right]">
&nbsp;
</td>
</tr>
</table>
<!-- /logo -->

<!-- content table -->
$spacer_open

$_phpinclude_output


...with the blue code:



<!-- logo -->
<a name="top"></a>
<table border="0" width="$stylevar[outertablewidth]" cellpadding="0" cellspacing="0" align="center">
<tr>
<td align="$stylevar[left]"><a href="$vboptions[forumhome].php$session[sessionurl_q]"><img src="$stylevar[titleimage]" border="0" alt="$vboptions[bbtitle]" /></a></td>
<td align="$stylevar[right]">
$random_banner[$random_number]
</td>
</tr>
</table>
<!-- /logo -->

<!-- content table -->
$spacer_open

$_phpinclude_output


Calling Specific Banners


You can call a specific banner in the templates by using that banner's number. For example:



$random_banner[3]

Steve Machol
Sun 28th Sep '08, 5:50pm
Note: This is not an officially supported modification. If you have questions or need assistance with this, please ask over at www.vbulletin.org.

jkcerda
Sun 2nd Nov '08, 2:39pm
cool, ill try it