If this tutorial is helpful to you, you can donate some money to the tutorial author via Paypal.

eID steht für Extension ID. Der eID Mechanismus ist 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.

// *********************
// 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 Eintragen

$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 weisse 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

$feUserObj = tslib_eidtools::initFeUser(); // Initialize FE user object		
tslib_eidtools::connectDB(); //Connect to database
// ...
// ...

Die erste Zeile initialisert 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 zB auf alle piBase Funktionen zurückzugreufen können wir uns ganz einfach eine Klasse erstellen die von dieser Erbt

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.


Was this tutorial helpful? So, you can donate some money to the tutorial author via Paypal.