hallo,
ich verwende in meiner derzeitigen extension einige ajax anfragen!
nun würde ich gerne methoden wie z.b 'pi_getPageLink', oder das image-processing mit 'cObj->IMAGE()' bzw. die typoscript-conf verwenden!
ich hab nun in einer externen php-datei versucht 'class.tslib_pibase.php' zu includieren jedoch nur mit mässigem erfolg da kein anscheinend kein cobj vorhanden ist!
wie kann ich nun das "pi-framework" auch ausserhalb der extension verwenden um die ajax anfragen im context der extension abzuhandeln?
lg, pranko
indem Du die Anfragen auf index.php leitest, einen Pagetype dafür definierst, der die Angaben ohne Header zurückliefert. Beispiel:
ajaxDataServer = PAGE
ajaxDataServer {
typeNum = 1001
10 < plugin.tx_ajaxserver_pi1
10.code >
10.code = dataServer
config {
disableAllHeaderCode = 1
#additionalHeaders = Content-type:application/xml
xhtml_cleaning = 0
admPanel = 0
}
}
danke das jhört sich sehr vernünftig an jedoch eine kleine frage nebenbei ...
ladet typo3 in diesem fall abermals alle daten oder? also werden die userdaten usw. usw. erneut von der datenbank geholt?
ich frage dies aus dem grunde da ich die SQL-anfragen minimieren will mit den ajax anfrage minimieren will und ein laden aller daten die typo3 beim aufruf einer seite vornimmt hierbei kontraproduktiv wären!
lg, pranko
sicher wird das FE geladen, was ja auch Vorteile der Sicherheit hat, standaloneskripte können leicht missbraucht werden.
Dafür hast Du auch alle Objekte zur Verfügung.
Für eID-Skripte muss man sich ein cObj selber erstellen, was auch nicht leicht ist und ebenfalls viele Module läd. Ein Beispiel dafür findet sich im spell-checker vom rte.
danke für die antwort ...
leuchtet mir alles ein ...
nun eine andere frage ...
könntest du das beispiel von oben für einen newbee präzisieren?
danke im voraus
pranko
welches Beispiel meinst Du, das Typoscript?
genau jenes ...
wär dir sehr verbunden!
kann ich dieses script gleich direkt in static/setup.txt einfügen!
da ich mir dachte, die extensuion sollte ohne weiteren administrativen aufwand installierbar sein!
danke, pranko
Das Skript erstellt einen neuen pageType. Dieser ist über die typenum 1001 erreichbar, also wenn die Url so lautet: index.php?id=1&type=1001
Die id ist dabei nicht massgeblich, sobald type=1001 ist greift das.
In der Pageconfig wird der komplette Header deaktiviert, einziges Element ist das Plugin mit dem code dataServer.
Im Plugin lässt sich leicht prüfen, ob es sich um diese Abfrage handelt:
if($this->conf['code']=='dataServer') {
echo $this->dataServer();
exit;
}