Ich muss dazu sagen, dass das auch für mich Neuland ist. Aber ich versuch mal mit meinem Halbwissen etwas brauchbares beizusteuern.
Erstens ist da ein Tippfehler in Deinem ersten Codebeispiel
(inculde statt include)
Zweitens hat das nichts mit Deinem Template zu tun. Mit "Ausgabe" ist gemeint, dass der Server bereits bevor er bei Deinem UDT angekommen ist, eine Antwort an den Browser zurückgesendet hat bzw. eine Anfrage vom Browser bearbeitet.
Nämlich durch die Datei "lib/adodb_lite/adodbSQL_drivers/postgres8/postgres8_driver.inc" in Zeile 42 - was genau diese Datei zu melden hat, ist mir gerade ein Rätsel. Klingt nach einer Fehlermeldung, denn in Zeile 42 steht lediglich
Code: Select all
$host = split(":", $this->connect_string);
Bin mir da gerae nicht so sicher.
Der Browser erwartet jetzt den Rest der Seite, da er Header etc. schon hat.
Er weiß jetzt schon, dass eine Antwort vom Typ XY zurückgeliefert wird (z.B. text/html). Somit kann er sich darauf entsprechend einstellen udn die nötigen Algorithmen für die Verarbeitung starten.
XAJAX möchte aber evtl. lieber eine XML Antwort senden, damit das Javascript dann auf Deiner Seite etwas tolles damit machen kann.
Oder XAJAX möchte, bevor die Anfrage des Borwsers irgendwie verarbeitet wird, ausgefürt werden um bereits im Vorfeld alle Header-Daten vorzubereiten - je nachdem ob es eine XAJAX Anfrage war.
Du musst also dem Server sagen, dass er alles, was an Infos bereits an den Browser gesendet wurde bzw. was er bereits bekommen hat, vergessen und nochmal neu anfangen soll.
So zumindest meine Idee bei der ganzen Geschichte.
Ich gehe mal davon aus, dass Du das hier schon kennst:
http://xajaxproject.org/en/docs-tutoria ... 0-minutes/
http://www.phpbuilder.com/board/showthr ... t=10353398
gerade letzteres klingt interessant, da ja bei Dir auch bei der Datenbankverbindung rumgemeckert wird. Das Dumme ist, dass Du XAJAX nicht vor die Datenbankverbindung bekommst, ohne es direkt in die index.php von CMSms zu packen.
Wenn Du mal nach einem Beispiel suchst, schau Dir mal die php Dateien im Admin-Verzeichnis an. Im Backend kommt ja auch XAJAX zum Einsatz. Z.B. admin/addcontent.php.
Bevor dort irgendeine Ausgabe vorbereitet wird, kommt XAJAX dran.
Da Du das ganze im Frontend machen willst, bleiben Dir zwei Möglichkeiten:
1. Du packst das in die index.php.
2. Du tauchst ein wenig tiefer in PHP ein.
Was genau soll denn Dein Script zurückliefern?
Eine HTML Seite, XML Daten ... ?
Wenn ich z.B. an den Browser etwas anderes senden möchte, als vom CMS vorgesehen - also kein text/html sondern z.b. ein image/gif - dann würde ich es so machen:
Code: Select all
$img_file = 'uploads' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'myGIF.gif';
if(file_exists($img_file) && is_readable($img_file)) {
ob_end_clean(); // alles was schon an info für den browser ist löschen
ob_start(); // wat neues sarten
// neuer header (jetzt weiß der browser, dass er ein Bild bekommt)
header("Content-Type: image/gif");
header('Content-Disposition: inline; filename=logo.gif');
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
readfile($img_file);
ob_end_flush(); // alles an den browser senden
}
exit;
Analog dazu dann natürlich auch jede andere Art von Ausgabe.
Also würde ich in Deinem UDT so anfangen:
Code: Select all
ob_end_clean(); // alles was schon an info für den browser ist löschen
ob_start(); // wat neues sarten
include("../xajax/xajax_core/xajax.inc.php");
$xajax->processRequest();
include("myscript.php");
ob_end_flush(); // alles an den browser senden
exit;
Somit erhält der Browser nur das, was von Deinem Script ausgegeben wird.
Also kein Template kein HTML kein gar nichts. Nur die reine Ausgabe Deines Scriptes.
Aber wie gesagt, die Frage ist, was genau Du mit XAJAX realisieren möchtest?
Ich persönlich habe es erstmal aufgegeben, mich weiter mit XAJAX zu beschäftigen, weil es meiner Meinung nach mit jQuery viel einfacher ist. Aber das kommt immer darauf an, was man umsetzen möchte. Es gibt bestimmt die ein oder andere Situation in der XAJAX Vorteile bietet.