Page 1 of 1

offline.php "verändern"

Posted: Mon Sep 24, 2007 6:02 pm
by cherchri
Ein "Hallo" an alle Lesenden!
Ich möchte gerne die offline.php in das Templateverzeichnis verlegen, weiters soll die CSS Datei des betreffenden Templates geladen werden.
Die Gründe zu erläutern, würde jetzt recht lange dauern.
Meine Fragen sind schnell gestellt:
1. Ich ging bisher davon aus, dass das eigentlich problemlos möglich sein sollte (keine grundsätzlichen Probleme in jeder Hinsicht ... security, etc.. macht.). Ist dem so?
2. Ich wollte in der original offline.php einfach einen Verweis auf die andere Datei (offline_template.php habe ich sie genannt) legen und den originalen Offline.php-code in die neue Datei kopieren; weiters ihn anschließend in der neuen Datei nach meinen Vorstellungen modifizieren.

Gelingen tut mir freilich der Verweis schon nicht:

Code: Select all

<?php include_once ( $GLOBALS['mosConfig_absolute_path'].'/templates/'. $cur_template .'/offline_template.php' ); ?>
... klappt nicht. Und ich komme nicht und nicht drauf, warum.
Es scheint, als würde $cur_template nicht ausgewertet. Wenn ich den Pfad zur offline_template.php "manuell" in offline.php schreibe, bekomme ich, was ich will. Nur das Szenario soll eben für viele verschiedene Templates funktionieren.
Als php Schwächling habe ich nun schon einige Stunden damit zugebracht, verschiedene Varianten der Zeile auszuprobieren. Leider ohne Erfolg.
Ich bin mal optimistisch, dass mir jemand die Augen öffnet ;-)

Ach ja, folgende Fehlerwarnung:
Warning:  include_once(D:/xampp/htdocs/joo_stable/templates//offline_template.php) [function.include-once]: failed to open stream: No such file or directory in D:\xampp\htdocs\joo_stable\offline.php on line 17
Warning:  include_once() [function.include]: Failed opening 'D:/xampp/htdocs/joo_stable/templates//offline_template.php' for inclusion (include_path='.;\xampp\php\pear\') in D:\xampp\htdocs\joo_stable\offline.php on line 17

Grüße
cherchri

Re: offline.php "verändern"

Posted: Tue Sep 25, 2007 2:46 am
by RedEye
cherchri wrote:Ich möchte gerne die offline.php in das Templateverzeichnis verlegen, weiters soll die CSS Datei des betreffenden Templates geladen werden.
Die Gründe zu erläutern, würde jetzt recht lange dauern.
Wären aber sicher interessant zu lesen, vielleicht legst die Gründe ja nochmal nach  :pop
cherchri wrote:1. Ich ging bisher davon aus, dass das eigentlich problemlos möglich sein sollte (keine grundsätzlichen Probleme in jeder Hinsicht ... security, etc.. macht.). Ist dem so?
2. Ich wollte in der original offline.php einfach einen Verweis auf die andere Datei (offline_template.php habe ich sie genannt) legen und den originalen Offline.php-code in die neue Datei kopieren; weiters ihn anschließend in der neuen Datei nach meinen Vorstellungen modifizieren.
1. Nunja 1-2 Änderungen sind da schon erforderlich, z.B. pfad angabe für language ändern etc.
2. Willst du da für jedes Template den ne andere Ansicht der offline.php haben oder sollen nur die verschiedenen .css Dateien geladen werden ?
Wenn zweiteres bist du gut damit beraten dir die offline.php nochmal anzusehen so von Zeile 86-92 :P
cherchri wrote:Es scheint, als würde $cur_template nicht ausgewertet.
Wenn

Code: Select all

<?php include_once ( $GLOBALS['mosConfig_absolute_path'].'/templates/'. $cur_template .'/offline_template.php' ); ?>
das dein einziger Code in der Datei is kann da au nix ausgewertet werden würd ich jetzt mal tippen, schaust du offline.php Zeile 58-73

greets

Re: offline.php "verändern"

Posted: Tue Sep 25, 2007 6:18 am
by cherchri
RedEye wrote: Wären aber sicher interessant zu lesen, vielleicht legst die Gründe ja nochmal nach  :pop
Punkt 2 von unten trifft zu. Ich bin dabei, eine Reihe von unterschiedlichen Templates zu schaffen, und die offline Seiten sollen immer an die eigentlichen Templateseiten angelehnt sein. Mit jedem neuen Template soll auch gleich die "neue" offlineSeite ausgeliefert werden.
RedEye wrote:1. Nunja 1-2 Änderungen sind da schon erforderlich, z.B. pfad angabe für language ändern etc.
Hört sich jetzt schon kompliziert an... Ich bin jemand, der auch verstehen will, was da im Hintergrund vor sich geht. Kannst du mal erklären, was die original offline.php macht und wie das mit den Sprachangaben zusammenhängt? Oder hast du einen Link, der das Thema vertieft? Hätte ja schon gesucht, habe aber nichts gefunjden, was die Struktur dahinter für php-Schwächlinge verständlich erklärt.
RedEye wrote: 2. Willst du da für jedes Template den ne andere Ansicht der offline.php haben oder sollen nur die verschiedenen .css Dateien geladen werden ?
Wenn zweiteres bist du gut damit beraten dir die offline.php nochmal anzusehen so von Zeile 86-92 :P
cherchri wrote:Es scheint, als würde $cur_template nicht ausgewertet.
Wenn

Code: Select all

<?php include_once ( $GLOBALS['mosConfig_absolute_path'].'/templates/'. $cur_template .'/offline_template.php' ); ?>
das dein einziger Code in der Datei is kann da au nix ausgewertet werden würd ich jetzt mal tippen, schaust du offline.php Zeile 58-73
greets
Anders formuliert: $cur_template wird in der original offline.php erst weiter unten (Zeilen 58-73) definiert? Ich werde mal nachsehen. Danke für die Tipps! Und dafür, dass du um 4:46 Uhr mir auf meine Fragen antwortest! Das ehrt mich .....  :-[  ;D  ;D
Hätte später auch gereicht!  ;)

Grüße
cherchri

Re: offline.php "verändern"

Posted: Tue Sep 25, 2007 7:20 am
by cherchri
Scheint, als hätte ich dank deinem Hinweis die Hürde umschifft. $cur_template war eben noch nicht definiert.
Meine Offline.php sieht jetzt so aus:

Code: Select all

<?php defined( '_VALID_MOS' ) or die( 'Restricted access' );?>
<?php 	if( $database != NULL ) {
		// get default frontend template
		$query = "SELECT template"
		. "\n FROM #__templates_menu"
		. "\n WHERE client_id = 0"
		. "\n AND menuid = 0"
		;
		$database->setQuery( $query );
		$cur_template = $database->loadResult();
		$path = "$mosConfig_absolute_path/templates/$cur_template/index.php";
		if (!file_exists( $path )) {
			$cur_template = 'rhuk_solarflare_ii';
		}
	} else {
		$cur_template = 'rhuk_solarflare_ii';
	}
?>
<?php include_once ( $GLOBALS['mosConfig_absolute_path'].'/templates/'.$cur_template.'/offline_template.php' ); ?>
Und der Verweis auf die offline_template.php im Templateordner funktioniert jetzt.
(Weiters musste noch das Session Handling in der originalen offline Datei verbleiben)
Fazit für mich: Eine Frage im Forum stellen ist der erste Schritt zur Lösung!
Danke!

cherchri