Skript nicht auf allen Seiten laufen lassen?

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
star1
Mitglied
Beiträge: 35
Registriert: 20.02.2004 19:40
Wohnort: Bottrop

Skript nicht auf allen Seiten laufen lassen?

Beitrag 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
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Code: Alles auswählen

if( $mode != 'register' )
{
     dein script
}
star1
Mitglied
Beiträge: 35
Registriert: 20.02.2004 19:40
Wohnort: Bottrop

Beitrag von star1 »

Konnte es jetzt endlich testen.

Habe so in der overall_header.tpl eingetragen:

Code: Alles auswählen

if ($mode != 'register')
{
Mein Skript!
}
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
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Nicht overall_header.tpl sondern in page_header.php musst du den Code einfügen.
star1
Mitglied
Beiträge: 35
Registriert: 20.02.2004 19:40
Wohnort: Bottrop

Beitrag 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.
Zuletzt geändert von star1 am 25.10.2004 13:38, insgesamt 1-mal geändert.
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag 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

Code: Alles auswählen

'DEIN_SCRIPT' => $dein_script,
In der overall_header.tpl kannst du dann {DEIN_SCRIPT} nutzen.
star1
Mitglied
Beiträge: 35
Registriert: 20.02.2004 19:40
Wohnort: Bottrop

Beitrag 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!
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Poste doch mal dein Script. Aber wird wohl an dem ' liegen.
star1
Mitglied
Beiträge: 35
Registriert: 20.02.2004 19:40
Wohnort: Bottrop

Beitrag 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?
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag 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>'; 
}
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“