Zum Inhalt springen

Funktion nach/mit Bearbeitung im Backend aufrufen

Erstellt am 10. September 2006 · 3 Antworten · letzte Antwort am 12. September 2006

Tags: TCA, Frage

bort1002000 ·

Hallo,

ich schreibe gerade an einer Extension, die Eingabefelder für die Adresse hat und dann über die Google Map API die Geokoordinaten mit in die Datenbank eintragen soll. Aber zu welchem Zeitpunkt kann ich dies im Backend erreichen?

Soweit ich es bisher verstanden habe, wird das Eingabeformular im Backend ja nur aus der Datei tca.php zusammengestellt. Ich müsste aber die Möglichkeit haben über einen Button die Funktion aufzurufen oder beim Speichern die Daten direkt mit abzufragen.

Schlechteste Lösung die mir bisher eingefallen ist:
Vor der Abfrage im Frontend erst einmal über alle Datensätze laufen und schauen, ob Daten eingetragen sind. Aber das ist ja nicht im Sinne des Empfängers #paralyzed# Die Performance wäre bei etlichen Datensätzen nicht gerade toll.

Wäre für Hilfe dankbar.

Gruß
Simon

bort1002000 ·

Vielen Dank für den Hinweis in die richtige Richtung 😃

Hatte das leider in meinem Buch überlesen, wobei es auch nicht wirklich gut dokumentiert ist. Habe schon gesehen, dass es auf Typo3.org auch ein paar Infos dazu gibt.

Gruß
Simon

bort1002000 ·

Hier nochmal meine Lösungskizze, die ich gestern Abend erfolgreich umsetzen konnte:

In der Datei class.t3lib_tcemain.php befindet sich in Zeile 749 der gesuchte Hook. An dieser Stelle können eigene Funktionen ausgeführt werden und die Formulardaten, vor dem Versand zur Datenbank bearbeitet werden.

In meiner Extension habe ich dafür eine neue Klasse im Root-Folder der Extension erstellt: class.tx_EXTNAME_tcemainprocdm.php

Klasse:

<?php

class tx_EXTNAME_tcemainprocdm {
	  
    function processDatamap_postProcessFieldArray ($status, $table, $id, &$fieldArray, &$this) {

        // here comes the code - modify $fieldArray
    }
    

} 

?>

Registriert wird diese neue Funktion nun in der Datei ext_localconf.php (habe den Aufruf ans Ende gesetzt)

$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'EXT:YOUREXTKEY/class.tx_EXTNAME_tcemainprocdm.php:tx_EXTNAME_tcemainprocdm';

Nachzulesen: http://typo3.org/development/articles/how-to-use-existing-hooks/