DeutschEnglish homekontaktrss Diese Seite weiter empfehlen
anmelden
  • Aktuelles
  • CMS-TYPO3
  • Services
  • Account
  • Tipps / Tricks
  • Home
  • Aktuelles
  • CMS-TYPO3
  • Tipps / Tricks
  • Services
  • Account
  • Extra
Ihre Seite kostenlos in unsere Webkatalog eintragen
bitte hier klicken.
its7.de Möchten Sie eine Webseite erstellen, Wir helfen Ihnen dabei.
Webseite kostenlos eintragen Webseite kostenlos eintragen
hostfactory hostfactory
also-s.de Fachstudio für dauerhafte IPL-Haarentfernung ohne Gelanwendung
handytarifevergleich.com Handytarife Vergleichen

Kontakt

Typo3 :: Hook und TCA

Wenn man Daten vor dem Speichern in die DB manipulieren willst, dann einen Hook für die TCE schreiben.

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;
...
    }
 
}

Mittwoch, 07. Dezember. 2011 00:00
Zurück
TwitterFacebookLinkedIn
"INFORMATION TECHNOLOGY SOLUTIONS"
  • Impressum
  • Sitemap
  • AGB