TYPO3: eID Mechanismus
Anzeige Hier werben
eID steht für Extension ID. Der eID Mechanismus ist der seit der Version 4.x dabei und kann als alternative Rendering Engine betrachtet werden.
Angesprochen wird er über einen GET oder POST Parameter. Sobalt eID als
Parameter in der URL vorhanden ist (zB. www.domain.de/?eID=schuesselwort) wird der normaler Rendering Prozess
sehr früh abgebrochen und auf ein Script weitergeleitet was wir selber
programmieren müssen. Da der normale Rendering Prozess so früh
abgebrochen wird kommt es auch noch zu keiner Ausgabe. Es wird nichts
gecachet und kein HeaderCode ect generiert. Der eID Mechanismus kann
also super im Zusammenhang mit AJAX verwendet werden.
Wollen wir uns einmal die index_ts.php (typo3/sysext/cms/tslib/) Zeile 127 bis 136 ansehen.
1 2 3 4 5 6 7 8 9 10 11 12 | <?php
// *********************
// Look for extension ID which will launch alternative output engine
// *********************
if ($temp_extId = t3lib_div::_GP('eID')) {
if ($classPath = t3lib_div::getFileAbsFileName($TYPO3_CONF_VARS['FE']['eID_include'][$temp_extId])) {
require_once(PATH_tslib.'class.tslib_eidtools.php');
require($classPath);
}
exit;
}
?>
|
Hier wird überprüft ob der Schlüssel eID als Get/Post Variable
vorhanden ist und falls ja, wird der normale Renderingprozess
abgebrochen und auf unser Script verwiesen. Doch woher weiss TYPO3 jetzt wo unser Script liegt ?
Das sagen wir Ihm über $TYPO3_CONF_VARS['FE']['eID_include'][$temp_extId].
Wir müssten entweder in die localconf.php oder in eine ext_localconf.php einer Extension folgendes Eintrage
1 2 3 | <?php
$TYPO3_CONF_VARS['FE']['eID_include']['schluesselwort'] = 'EXT:meinExtKey/meinScript.php';
?>
|
Steht jetzt also in der Adresse www.domain.de/?eID=schluesselwort geht er in die erste if Abfrage und sieht das $TYPO3_CONF_VARS['FE']['eID_include'][$temp_extId]
vorhanden ist und speichert 'EXT:meinExtKey/meinScript.php' in die
Variable $classPath. Danach includiert er die Klasse eidtools und
unsere eigene.
Da unser Script noch leer ist bekommen wir eine weiße Seite angezeigt in der auch der komplette Quelltext leer ist.
Um in unserem Script nun ein FEUSER Objekt zu haben und eine aktive DB Verbindung schreiben wir
1
2
3
4
5
6 | <?php
$feUserObj = tslib_eidtools::initFeUser(); // Initialize FE user object
tslib_eidtools::connectDB(); //Connect to database
// ...
// ...
?>
|
Die erste Zeile initialisiert den FrontentUser und gibt uns diesen als Objekt zurück.
Die 2te Zeile stellt eine Verbindung zur Datenbank her.
Im Weiteren können wir ganz normal auch TYPO3 Funktionalitäten benutzen und unseren eigenen Renderingablauf schreiben.
Achja, um auch z.B. auf alle piBase Funktionen zurückzugreifen können wir
uns ganz einfach eine Klasse erstellen die von dieser Erbt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php
require_once(PATH_tslib.'class.tslib_pibase.php');
class unsereKlasse extends tslib_pibase {
function main(){
$feUserObj = tslib_eidtools::initFeUser(); // Initialize FE user object
tslib_eidtools::connectDB(); //Connect to database
// ...
}
}
$output = t3lib_div::makeInstance('unsereKlasse');
$output->main();
?>
|
Das war es soweit, wenn Ihr noch fragen dazu habt stellt Sie einfach über die Kommentarfunktion.
Quelle: http://www.typo3-tutorials.org



Vielen Dank
Schön hier auch einmal was über TYPO3 zu lesen. Besten Dank für deinen Artikel, würde mich über mehr freuen.