IIS: HTML-Templates werden in der Vorschau nicht generiert

Gesperrt
kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

IIS: HTML-Templates werden in der Vorschau nicht generiert

Beitrag von kypta »

Ich habe auf einem Microsoft-IIS/4.0 mit PHP 4.3.2 und MySql 3.23.28-gamma und Contenido 4.6.15 dieses Problem:

Seiten, die Module eingebunden haben, die HTML-Templates benötigen, werden in der Vorschau im Backend nicht korrekt angezeigt.

Z.B. eine simple Seite mit HTMLHead und HTMLText sowie der standard-Hauptnavigation wird so angezeigt in der Vorschau:
Das ist ein HTMLTitel
Das ist ein HTMLText
templates/navfirst_off.html
Wenn ich die Vorschau aufrufe, wird auch dieser Fehler im error.log mitgeschrieben:
[14-Jun-2007 15:26:17] MySQL error :
SELECT
idclient,
frontendpath,
htmlpath,
errsite_cat,
errsite_art
FROM
con_clients
[14-Jun-2007 15:26:17] next_record called with no query pending.
Dieser Fehler wird auch produziert, wenn ich den Editor aufrufe - nur funktioniert im Editor alles, auch die Templates werden richtig umgesetzt.

Wenn ich mit dem Mozilla Firefox den Editor aufrufe, kommt noch diese Browser-Meldung:
Configuration file undefindedmozileConfig.xml could not be loaded!
Aber das ist ja evtl. eher ein lokales Problem. Der IE hat keine solchen Probleme.

Gruss
Thomas
kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

Beitrag von kypta »

Nun, die SQL-Abfrage wird ja offensichtlich durch die Funktion rereadClients() in functions.general.php ausgeführt. Der Aufruf dazu findet in contenido\external\backendedit\front_content.php statt.

Ich habe hier im Forum schon gelesen, dass man in der functions.general.php alle $db_systemprop zu $db umbenennen muss. Hatte ich auch gemacht um andere Feher zu beseitigen.

Ebenso habe ich im Forum gesehen, dass in der besagten front_content.php die Zeile

Code: Alles auswählen

include_once ($cfgClient[$client]["path"]["frontend"]."config.php");
nicht funktioniert. Nur tut sie das nicht etwa nicht, weil $client nicht da wäre - $client ist vorhanden. Was anscheinend nicht vorhanden ist, das ist der Inhalt von $cfgClient - was das error.log doch zu bestätigen schein, richtig?

Die Frage scheint also zu sein, warum rereadClients() unter meinem IIS nicht zu einer befüllten $cfgClient führt.

-> Als Fix habe ich in der besagten front_content.php den include fest gecodet im sinne von:

Code: Alles auswählen

include_once ("e:/wwwroot/meinserver.de/cms/config.php");
Damit funktioniert "alles" (was ich bisher probiert habe) ausser der Vorschau im Backend. Aber ich mag solche dirty-fix-Methoden nicht.

Nehme jede Idee dankend entgegen.

Gruss
Thomas
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

also viel einfallen tut mir da nicht...
vielleicht das irgendein modul was mit chdir macht ??

bau mal auf der seite folgendes ein (am besten beim modul hauptnavigation)

Code: Alles auswählen

<?php
echo getcwd()."<br>";
?>
ist das, was dir dann angezeigt wird, im editor und bei der vorschau unterschiedlich ?
*** make your own tools (wishlist :: thx)
kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

Beitrag von kypta »

getcwd() ergibt folgendes Resultat:

Editor: e:\wwwroot\meinserver.de\cms
Vorschau: e:\wwwroot\meinserver.de\contenido\external\backendedit
Frontend: e:\wwwroot\meinserver.de\cms
kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

Beitrag von kypta »

Nun gut, ich habe in der /contenido/external/backendedit/front_content.php noch diese Zeile:

Code: Alles auswählen

chdir($cfgClient[$client]["path"]["frontend"]);
durch diese ersetzt:

Code: Alles auswählen

chdir("e:/wwwroot/meinserver.de/cms/");
Das funktioniert, nur bleiben natürlich die Fehlermeldungen im error.log.

Die Frage nach $cfgClient bleibt also bestehen...
kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

Beitrag von kypta »

Ah, ich habe die Lösung!

In der functions.general.php musste ich bei rereadClients() den code ändern, von:

Code: Alles auswählen

if (!is_object($db))
	{
		$db = new DB_Contenido;
	}
zu:

Code: Alles auswählen

//	if (!is_object($db))
//	{
		$db = new DB_Contenido;
//	}
Somit steht dann die $cfgClient mit Inhalt zur Verfügung in der backendedit/front_content.php und ich muss meine Konfiguration nicht mehr manuell verdrahten.

Warum das if nicht funkt weiss ich aber auch nicht.
Gesperrt