Liebe Entwicklergemeinde mit gutem Geschmack,
Habt Ihr auch schon immer nach einem sauberen Weg gesucht, einen AJAX-Request aus Eurem Frontend-Plugin abzusetzen, ohne dafür den kompletten, rechenintensiven Rendering-Prozess des CMS anzustossen?
Das einfache, aber geniale eID-Feature von TYPO3 ist des Entwicklers Freund!
Hinter „eID“ verbirgt sich nichts anderes als ein frühestmöglicher Austiegspunkt aus der index.php, bevor der ganze Ballast geladen wird, der den AJAX-Request erheblich verlangsamen würde: Bei einer Autocomplete-Suche z.B. wären langsame Antwortzeiten nicht besonders dankbar – wenn nicht undenkbar.
Lange Rede – kurzer Sinn, hier ist die Schritt-für-Schritt-Anleitung:
1.)In der ext_localconf.php Eures Plugins fügt Ihr folgende Zeile ein:
$TYPO3_CONF_VARS['FE']['eID_include']['vergebt_einen_namen'] = 'EXT:extensionname/pi1/ajaxrequestscript.php';
Natürlich solltet Ihr Euch für „vergebt_einen_namen“, „extensionname“ und „ajaxrequestscript“ Eure eigenen Bezeichnungen adaptieren.
2.)Legt nun das „ajaxrequestscript“ an, das ausser den PHP-Opening und -Closing-Tags folgenden Inhalt haben sollte:
// Exit, if script is called directly (must be included via eID in index_ts.php)
if (!defined ('PATH_typo3conf')) die ('Could not access this script directly!');
// Initialize FE user object:
// $feUserObj = tslib_eidtools::initFeUser();
// Connect to database:
tslib_eidtools::connectDB();
// example: you can use TYPO3 DB methods here
$select = '';
$from = ''
$where = '';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($select,$from,$where);
$content .= 'Das kommt zurück';
header('Content-Type: application/xhtml+xml; charset=UTF-8');
print $content;
3.) Beim Aufruf des Scripts übergebt den Parameter eID=vergebt_einen_namen
Es ist wirklich so einfach. Was Ihr natürlich jetzt damit macht, bleibt Euch überlassen 😉
Ich werde in einer Fortsetzung dieses Beitrags beschreiben, wie man mit Scriptaculous & eID eine autocomplete Suche realisieren kann, die wirklich performant mit einer grossen Anzahl an Datensätzen umgehen kann – Ihr dürft also gespannt sein.
Hi Ben, vielen Dank für den interessanter Beitrag! Wann kommt die angekündigte Fortsetzung einer autocomplete Suche mit Scriptaculous und t3? =)
Michael
… hat sich erledigt. Mit der Info, die man auf http://www.galileocomputing.de/openbook/javascript_ajax/33_bibliotheken_002.htm findet, ist alles klar 🙂