Vorbereitungen eID / AJAX

Um AJAX über die eID-Methode zu ermöglichen, müssen wir eine neue Extension erstellen. Zwar könnte man die PHP-Datei auch im fileadmin hinterlegen, aber wir benötigen eine Variablendefinition in der ext_localconf.php. Bevor wir uns da eine bereits installierte Extension "versauen", sollten wir mit Hilfe des kickstarters eine neue Extension erzeugen.

Die neue Extension

Installiert Euch den kickstarter und erstellt eine neue Extension. Solange Ihr Eure Extension nicht in das TYPO3-Repository hochladen wollt, könnt Ihr als Namen einen beliebigen Namen angeben. Danach ein Klick auf "Generell". Tragt dort ähnliche Informationen ein, wie Ihr sie hier rechts im Bild seht. Danach ein Klick auf "Update", dann auf "View result" und dann auf "WRITE". Die Extension ist nun zwar geschrieben aber Ihr müsst abschließend noch auf den Button "install extension" klicken.

Ich habe bei meinen Extensions eine gewisse Struktur, die ich einhalte. Demnach erstellen wir nun mit Hilfe der Extension quixplorer oder einem FTP-Programm den Ordner "ajax" und erstellen dort die Datei ajax.php. Das ist dann auch die Datei, die Ihr später bei den Beispielen bearbeiten müsst.

Damit TYPO3 beim Verarbeiten von eID weiß, wo sich unsere ajax.php befindet, müssen wir nun in das root-Verzeichnis unserer Extension und dort noch die Datei ext_localconf.php anlegen mit folgendem Inhalt:

<?php
if (!defined ('TYPO3_MODE')) {
     die ('Access denied.');
}

$TYPO3_CONF_VARS['FE']['eID_include']['sfajax'] = 'EXT:sftest/ajax/ajax.php';
?>

Was bewirkt diese Zeile?

Wichtig ist zu wissen, dass Ihr bei dieser Möglichkeit des AJAX-Aufrufes die PHP-Datei nicht mehr direkt aufruft, sondern die URL Eurer Webseite. Ein AJAX-Aufruf ruft also nicht "ajax.php" auf, sondern:

http://www.eure-webseite.de/index.php?eID=sfajax

Der Wert von eID wird dem TYPO3-Array $TYPO3_CONF_VARS['FE']['eID_include'] hinzugefügt. Deshalb müsst Ihr hier in der ext_localconf.php dem TYPO3-System mitteilen, wo es die ajax.php finden kann. Der Wert sfajax ist von mir frei gewählt worden und enthält den Pfad zu unserer ajax.php.