Liebe Community
Ich stehe gerade etwas auf der Leitung, und auch mit der Suche habe ich die Lösung nicht gefunden. Ich habe ein externes PHP-Skript, das ein paar DB-Einträge abrufen und sie formatiert zurückgeben soll (in meinem Fall als iCal Objekt). Wie kann ich aber in meinem externen Skript auf die DB-Funktionalität von Typo3 zurückgreifen?
Klar, ich könnte mir das auch "händisch" zurechtlegen, doch wäre es ja viel schöner, wenn ich die richtigen Klassen einbinden könnte, und dann via $GLOBALS['TYPO3_DB']->exec_SELECTquery(...) meine Datensätze holen würde. Welche Klassen muss ich da einbinden und wie geht das genau?
Danke und liebe Grüsse
Dave
ich bin da gerade auf das Stichwort eID gestossen... geht es womöglich damit?
Naja, eID hört sich zwar nett an, ist aber in seiner funktionialität sehr eingeschränkt. Funktionen wie $this->cObj->enableFields() müssen von Hand zusammengetragen werden. Auch ein Text durch $this->pi_RTEcssText() laufen zu lassen muss erst händisch aufgebaut werden.
Anderer ansatzpunkt der sehr gut funktioniert ist mit typeNum.
beispiel:
Erstell in Deinem TS Setup folgende Struktur
// Normale Ajax Ausgabe für Inhalte, Texte und Bilder
nlajax = PAGE
nlajax {
typeNum = 3612
config {
disableAllHeaderCode = 1
no_cache = 1
additionalHeaders = Content-Type:text/html;charset=utf-8|Expires: Mon, 26 Jul 1997 05:00:00 GMT|Last-Modified: 1999 GMT|Cache-Control: no-cache|Pragma: no-cache|Cache-Control: post-check=0, pre-check=0, FALSE
}
10 < plugin.tx_mrnlfromttnews_pi1
10 {
userFunc = tx_mrnlfromttnews_pi1->main
mode=ajax
}
}
Damit rufst Du einfach die main Methode deiner Klasse auf. Als Parameter übergibst Du mode = ajax.
In Deiner pi1 machst Du eine Abfrage und verweisst auf eine bestimmte Methode die dir den Content zurückgibt:
function main($content, $conf) {
$this->conf = $conf;
$this->init();
switch ($this->conf[mode]) {
case ajax:
return $this->ajxControll();
break;
default:
$content = $this->getContent();
break;
}
return $this->pi_wrapInBaseClass($content);
}
So kannst Du normale Ausgaben mit dem Plugin erhalten und bei einer Anfrage ala index.php?type=3612¶m1=.... nur die Inhalte für Ajax ohne Seite zurückgeben. Der Vorteil: Es steht die pibase, t3lib, cObj und alles andere in Deiner Ajaxfunktion zur Verfügung.
hm... clever! hab mal an typenum gedacht aber diese idee irgendwie wieder verworfen (warum auch immer). ich werds jetzt so umsetzen, denn das scheint mir die einfachste und beste lösung zu sein!
vielen herzlichen dank!!