Seite 1 von 2

Bannerrotation mit Scriptbannern

Verfasst: 23.03.2008 18:30
von Topper Harley
Ich würde gerne in meinen Header eine bannerrotation einbauen. Problem ist nur, dass es sich nicht um Standardbanner mit href und img handelt, sondern um gescriptete:


Banner 1

<script type="text/javascript" src="http://xxx.com/js/xxx.js"></script>
<script type="text/javascript" src="http://xxx.com/js?wp_id=xxxxx"></script>
<noscript><a href="http://xxx.com/click?sid=xxxxx&ts=[timestamp]">
<img src="http://xxx.com/banner?sid=xxxxx&ts=[timestamp]" border="0"></a></noscript>


Banner 2

<script type="text/javascript" src="http://xxx.com/js/xxx.js"></script>
<script type="text/javascript" src="http://xxx.com/js?wp_id=xxxxx"></script>
<noscript><a href="http://xxx.com/click?sid=xxxxx&ts=[timestamp]">
<img src="http://xxx.com/banner?sid=xxxxx&ts=[timestamp]" border="0"></a></noscript>


Wie bastel ich das richtig? :o

Verfasst: 23.03.2008 20:49
von gn#36
Na wie würdest du es denn machen wenn es Bilder wären? Da tauscht du doch auch nur Text aus, was ist also bei Skripten anders?

Verfasst: 23.03.2008 21:11
von Topper Harley
Ich kenne nur diese Möglichkeit:

Code: Alles auswählen

<SCRIPT LANGUAGE="JavaScript">

var nb=2;
var link = new Array();
var i;
i=Math.ceil(Math.random()*nb);

link[1]='<A HREF="..."><IMG SRC="..."> </A><br>';

link[2]='<A HREF="..."><IMG SRC="..." ></A><br>';

document.write(link[i]);

</script>
Funktioniert aber leider nicht :cry:

Verfasst: 23.03.2008 21:24
von gn#36
Wie wäre es wenn du das einfach in der PHP Seite festlegst? Das geht dann universell und so wie das Skript aussieht ändert es seine Darstellung eh nicht nach x Sekunden oder so. Dann hättest du gleich auch noch den Vorteil, dass du einen Banner darstellst, auch wenn JS abgeschaltet ist.

Code: Alles auswählen

$banners = array('htmlcode 1', 'htmlcode 2');
srand();
$banner = $banners[rand(1,2)];
echo $banner;
Viel einfacher geht's eigentlich kaum noch. Statt echo natürlich beim Einbau ins Forum dann eben $template->assign_vars(...); bei phpBB 2 in der page_header.php und dann die Ersetzung in die gewünschte Datei (vermutlich overall_header.tpl) und bei phpBB3 in die functions.php in der page_header Funktion und den Platzhalter eben dann in der overall_header.html (oder einer beliebigen anderen Datei wo das eben dargestellt werden soll).

Verfasst: 23.03.2008 21:35
von Topper Harley
Wie (und wo) genau mach ich das in der page_header.php?
Sorry, aber was PHP betrifft, ist mein Kenntnisstand unterirdisch :(

Zu viel Code entfernt! //gn#36

Verfasst: 23.03.2008 21:41
von gn#36
Ganze Dateien bitte verlinken, nicht in den Post kopieren.... KB:datei

Also phpBB2...

Da es nur darum geht dass das angezeigt wird, bau es direkt oben unter das define('HEADER_INC', true); ein, aber dann NICHT mit echo, sondern mit

Code: Alles auswählen

$template->assign_vars(array('BANNER_ROTATION' => $banner));
Im Template entsprechend dann {BANNER_ROTATION} da hin, wo du es hin haben willst.

Verfasst: 23.03.2008 21:52
von Topper Harley
gn#36 hat geschrieben:Ganze Dateien bitte verlinken, nicht in den Post kopieren....
Kommt nicht wieder vor :)

Also dann so in die pageheader einfügen?

Code: Alles auswählen

$banners = array('<script type="text/javascript" src="http://xxx.com/js/xxx.js"></script> 
<script type="text/javascript" src="http://xxx.com/js?wp_id=xxxxx"></script> 
<noscript><a href="http://xxx.com/click?sid=xxxxx&ts=[timestamp]"> 
<img src="http://xxx.com/banner?sid=xxxxx&ts=[timestamp]" border="0"></a></noscript>', '<script type="text/javascript" src="http://xxx.com/js/xxx.js"></script> 
<script type="text/javascript" src="http://xxx.com/js?wp_id=xxxxx"></script> 
<noscript><a href="http://xxx.com/click?sid=xxxxx&ts=[timestamp]"> 
<img src="http://xxx.com/banner?sid=xxxxx&ts=[timestamp]" border="0"></a></noscript>'); 
srand(); 
$banner = $banners[rand(1,2)]; 
$template->assign_vars(array('BANNER_ROTATION' => $banner));

Verfasst: 23.03.2008 22:22
von gn#36
Jupp.

Verfasst: 23.03.2008 23:33
von Topper Harley
Hat geklappt :o :) :) :)


Vielen Dank!!

Edit: Aber irgendwie hab ich den Eindruck, dass da kaum Rotation drin ist... in 95% der Fälle wird derselbe Banner gezeigt?

Verfasst: 24.03.2008 00:02
von gn#36
Ist auch ein kleiner Fehler drin...

Das Array beginnt bei 0 zu zählen...

also besser rand(0,1) oder evtl. funktioniert das mit ein paar mehr möglichen Werten besser:

Code: Alles auswählen

rand(0, 100) % 2
anstelle von [php:rand]