Seite 1 von 2
Skript nicht auf allen Seiten laufen lassen?
Verfasst: 06.09.2004 15:56
von star1
Hi,
noch ein kleines Problem heute

!
Ich hab in der Overall_Header.tpl ein kleines Javascript eingefügt, das mir ein Banner einfliegen lässt (<div>-Layer), wenn man nicht eingeloggt ist. Dieses soll zur Registrierung ermutigen ( "href="profile.php?mode=register") und startet nach 5 Sekunden.
Dummerweise startet dieses ja nun auf jeder Seite. Ich würde gerne abfangen, ob mode=register ist und dann dieses Skript umgehen.
Also noch mal Klartext: wie kann ich verhindern, dass das Skript auf der Registrierungsseite nicht, aber auf allen anderen Seiten den Gästen angezeigt wird?
(Unterscheidung Gast - Mitglied hab ich realisiert <!-- BEGIN ... --> !)
Danke, Sebastian
Verfasst: 08.09.2004 13:28
von Acid
Verfasst: 25.10.2004 10:08
von star1
Konnte es jetzt endlich testen.
Habe so in der overall_header.tpl eingetragen:
hinter: <!-- BEGIN switch_user_logged_out --> und vor <!-- END switch_user_logged_out --> , da mein Script nur für nicht angemeldete User, die nicht auf der Registrierungsseite sind laufen soll.
Dummerweise schreibt mir mein Forum nun immer oben links in die Ecke "if ($mode != 'register') { }" -> reagiert dementsprechend nicht auf die IF-Anweisung. Mein Skript läuft weiterhin auf allen Seiten für nicht registrierte User. Wie kann ich das beheben?
Danke, Sebastian
Verfasst: 25.10.2004 11:39
von Leuchte
Nicht overall_header.tpl sondern in page_header.php musst du den Code einfügen.
Verfasst: 25.10.2004 11:54
von star1
Gut, das sehe ich ein

...
Aber in welcher Form soll ich mein Skript einfügen? Es ist ein Javascript, welches eine Art "Pop-Up" reinfliegen lässt...
Wenn ich es in die geschweiften Klammer hinter ($mode!=register) setze, bekomme ich folgende Message:
Parse error: parse error, unexpected '<' in /srv/www/htdocs/web66/html/phpBB2/includes/page_header.php on line 773
Das '<' bezieht sich wohl auf '<script>' meines JS.
Verfasst: 25.10.2004 11:57
von Leuchte
Versuchs mal in diese Richtung
Code: Alles auswählen
if ($mode != 'register')
{
$dein_script = '<script language="Javascript" type="text/javascript">
..
..
..
//-->
</script>';
}
Dann findest du
Code: Alles auswählen
$template->assign_vars(array(
'SITENAME' => $board_config['sitename'],
Füge danach ein
In der overall_header.tpl kannst du dann
{DEIN_SCRIPT} nutzen.
Verfasst: 25.10.2004 13:49
von star1
Ja danke für die Info. Das hat mir zum Verständnis noch gefehlt.
Eine Frage hab ich noch:
ich bekomme, nachdem ich dein letztes Posting befolgt habe, die Meldung:
Code: Alles auswählen
Parse error: parse error, unexpected T_STRING in /MEIN_SERVERPFAD/phpBB2/includes/page_header.php on line 782
Kann das daran liegen, dass in meinem Javascript dieses Zeichen ' vorkommt, welches Jahr als Variableninhaltsende (oder so) verstanden wird?
Danke schon mal für deine Mühe, Leuchte!
Verfasst: 25.10.2004 13:50
von Leuchte
Poste doch mal dein Script. Aber wird wohl an dem ' liegen.
Verfasst: 25.10.2004 14:09
von star1
Hier ist mein Skript, so wie es in der page_header Datei steht:
Code: Alles auswählen
if ($mode != 'register') {
$reg_now = '<script>
x = -550
h = 400
w = 500
y = 1
function moveit() {
if (x < 250) {
y = 1
document.getElementById('block').style.left = x
document.getElementById('block').style.width = w
document.getElementById('block').style.height = h
x++
// block.left = block.xpos
setTimeout("moveit()",10)
}
}
function moveitaway() {
if (y > 0) {
if (x < 1030) {
document.getElementById('block').style.left = x
document.getElementById('block').style.width = w
document.getElementById('block').style.height = h
x++
x++
// block.left = block.xpos
setTimeout("moveitaway()",10)
if (x > 1029) {
x = -550
document.getElementById('block').style.left = x
document.getElementById('block').style.width = w
document.getElementById('block').style.height = h
y = 0
}
}
}
}
window.setTimeout("moveit()",5000)
</script>';
}
Kann ich das ' irgendwie ersetzen?
Verfasst: 25.10.2004 14:13
von Leuchte
Versuchs mal so
Code: Alles auswählen
if ($mode != 'register') {
$reg_now = '<script>
x = -550
h = 400
w = 500
y = 1
function moveit() {
if (x < 250) {
y = 1
document.getElementById("block").style.left = x
document.getElementById("block").style.width = w
document.getElementById("block").style.height = h
x++
// block.left = block.xpos
setTimeout("moveit()",10)
}
}
function moveitaway() {
if (y > 0) {
if (x < 1030) {
document.getElementById("block").style.left = x
document.getElementById("block").style.width = w
document.getElementById("block").style.height = h
x++
x++
// block.left = block.xpos
setTimeout("moveitaway()",10)
if (x > 1029) {
x = -550
document.getElementById("block").style.left = x
document.getElementById("block").style.width = w
document.getElementById("block").style.height = h
y = 0
}
}
}
}
window.setTimeout("moveit()",5000)
</script>';
}