Erster Schritt:
in ext_localconf.php:
$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'EXT:' . $_EXTKEY . '/hooks/class.tx_extkey_hooks_tce.php:tx_extkey_hooks_tce';
Zwieiter Schritt:
Die Klasse:
/**
* Hook-Klasse
*/
class tx_extkey_hooks_tce {
/**
* Bearbeitung von Daten vor dem Speichern in der Datenbank.
* Wichtig: in dieser PreProcess kommen noch alle Daten aus dem Formular an. Diese
* werden anschließend von der TCE mit der Datenbank abgeglichen. In der PostProcess
* landen dann nur noch geänderte Daten.
*/
function processDatamap_preProcessFieldArray(&$incomingFieldArray, $table, $id, &$tcemain) {
if($table == 'tx_extkey_daten' && count($incomingFieldArray)>1) {
...
}
}
/**
* Nachbearbeitungen, unmittelbar BEVOR die Daten gespeichert werden. Das POST bezieht
* sich auf die Arbeit der TCE und nicht auf die Speicherung in der DB.
*
* @param string $status new oder update
* @param string $table Name der Tabelle
* @param int $id UID des Datensatzes
* @param array $fieldArray Felder des Datensatzes, die sich ändern
* @param tce_main $tcemain
*/
function processDatamap_postProcessFieldArray($status, $table, $id, &$fieldArray, &$tcemain) {
if($table == 'tx_extkey_daten') {
$preis = doubleval($fieldArray['preis']) * 100;
$fieldArray['preis'] = $preis;
}
}
/**
* Nachbearbeitungen, unmittelbar NACHDEM die Daten gespeichert wurden.
*
* @param string $status new oder update
* @param string $table Name der Tabelle
* @param int $id UID des Datensatzes
* @param array $fieldArray Felder des Datensatzes, die sich ändern
* @param tce_main $tcemain
*/
function processDatamap_afterDatabaseOperations($status, $table, $id, $fieldArray, &$tcemain) {
// Bei neuen Datenstätzen gleich die UID ermitteln
$id = ($status == 'new') ? $tcemain->substNEWwithIDs[$id] : $id;
...
}
}














