Seite 2 von 2

Verfasst: 10.06.2003 22:41
von Pyramide
Sandmann hat geschrieben:Du shwepsi, ich glaub dies ist nahezu unmöglich
Quatsch. Einfach in includes/functions.php, Funktion init_userprefs hinter

Code: Alles auswählen

//
// Set up style
//
einfügen:

Code: Alles auswählen

if($_GET['use_style']>0)
{
  $theme=setup_style($_GET['use_style']);
  return;
}

if(isset($_GET['force_style']))
{
  setcookie('force_style', $_GET['force_style'], $_GET['force_style'] == '-1' ? -1 : 0, $cookiepath, $cookiedomain, $cookiesecure);
}

if($_REQUEST['force_style']>0)
{
  $theme=setup_style($_REQUEST['force_style']>0);
  return;
}
bei ?use_style=<id> wird der Style für die aktuelle Seite erzwungen, bei ?force_style=<id> wird ein Cookie gesetzt, welches beim Schliessen des browsers oder mit ?force_style=-1 gelöscht wird.

Was muss ich an welcher stelle?

Verfasst: 24.02.2004 22:11
von michback
Was muss ich in der Functions.php wo einfügen?

Und wie rufe ich das jeweilige design dann auf???

Verfasst: 22.04.2004 13:44
von sim2k
?use_style=<id> -- geht
?force_style=<id> --will nicht
?force_style=-1 --will nicht

gruß sim

Verfasst: 23.09.2004 00:32
von einheitlix
Hallo,

ich habe dassselbe Problem.

Vorher hatte ich das phpBB 2.0.6, damit ging es perfekt. Jetzt habe ich auf phpBB 2.0.10 geupdatet und ?use_style=<id> geht zwar noch, aber ?force_style hat wohl ein Problem.

Wenn ich die URL mit ?force_style=x aufrufe, bekomme ich immer folgende Fehlermeldung:

Code: Alles auswählen

Parse error: parse error, unexpected T_STRING in /home/scummunity/public_html/phpBB2new/language/lang_german/lang_main.php on line 1156
phpBB : Kritischä Fählär 

Could not get theme data for themes_id [1]
Und zwar immer themes_id [1], egal ob ich nun 3, 4, 5, 6, -1 oder was auch immer angebe. Das Problem liegt wohl also darin, dass die Variable nicht richtig übernommen wird. themes_id 1 wird nie gefunden, deshalb immer die Fehlermeldung.

Die Meldung mit dem Language File verstehe ich gar nicht. Vor allem, da es völlig egal zu sein scheint, ob ich englisch, deutsch oder schweizerdeutsch als Sprache einstelle, es wird immer am deutschen language file rumgemeckert ;) Und Zeile 1156 sieht absolut in Ordnung aus und sonst funktioniert ja auch alles...

Ihr könnt's euch ja mal angucken:
http://hetzner.scummunity.de/~scummunit ... /index.php

(wenn ihr ?force_style=x anhängt, müsst ihr danach wieder den Cookie löschen, um das Forum sehen zu können...)

Komisch... ist beim phpBB 2.0.10 irgendwas bezüglich übernehmen von GET Variablen aus dem HTTP Header irgendwas verändert worden oder so? Und vor allem, wisst ihr wie man das beheben könnte? ;)

Verfasst: 23.09.2004 17:07
von einheitlix
Ok, habe das Problem gelöst. Genau genommen waren es zwei Probleme.

Zum einen war in meiner language/lang_german/lang_main.php tatsächlich ein Fehler, da fehlte ein Apostroph bei einer Zuweisung (wobei mich trotzdem wundert, wie das relevant sein kann, wenn ich gar nicht deutsch als Sprache eingestellt habe... egal).

Das andere war, dass er tatsächlich immer versuchte, die themes id 1 zu benutzen. Das ist tatsächlich ein Fehler in diesem Snippet, der auch früher bei meinem phpBB 2.0.6 aufgetreten wäre - nur hatte es da mein CoAdmin schon repariert, ohne dass ich davon wusste (wie ich gerade bemerkt habe) ;)

Es muss nicht heißen

Code: Alles auswählen

if($_REQUEST['force_style']>0) 
{ 
  $theme=setup_style($_REQUEST['force_style']>0); 
  return; 
}
sondern

Code: Alles auswählen

if($_REQUEST['force_style']>0) 
{ 
  $theme=setup_style($_REQUEST['force_style']); 
  return; 
}
Logisch. Der Aufruf von setup_style($_REQUEST['force_style']>0) geschieht nur dann, wenn sowieso gilt, dass $_REQUEST['force_style']>0 (wegen der if Abfrage darüber). Darum können wir davon ausgehen, dass an dieser Stelle der Aufruf von $_REQUEST['force_style']>0 immer TRUE zurückliefert... oder anders gesagt, 1. Deshalb wird, egal, was in dem Cookie steht, setup_style(int) mit dem Parameter 1 aufgerufen. Drum versucht das Board immer, die style id 1 zu benutzen, die wohl nie existiert, statt der style id, die $_REQUEST['force_style'] tatsächlich zurückliefert.

Dass da keiner von euch drauf gekommen ist, überrascht mich jetzt schon ziemlich... :roll:

Also hier nochmal das ganze als funktionierender Mod :)

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------------
#

includes/functions.php

#
#-----[ FIND ]------------------------------------------------
#

// 
// Set up style 
//

#
#-----[ AFTER, ADD ]-----------------------------------------
#

if($_GET['use_style']>0) 
{ 
  $theme=setup_style($_GET['use_style']); 
  return; 
} 

if(isset($_GET['force_style'])) 
{ 
  setcookie('force_style', $_GET['force_style'], $_GET['force_style'] == '-1' ? -1 : 0, $cookiepath, $cookiedomain, $cookiesecure); 
} 

if($_REQUEST['force_style']>0) 
{ 
  $theme=setup_style($_REQUEST['force_style']); 
  return; 
}