Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

TYPO3: Alle Aftersave Hooks im Überblick (6.2-7.6lts)

#Tutorials#TYPO3#PHP

Hier mal eine Übersicht aller Aftersave-Hooks von TYPO3:

Zuerst müsst ihr die Hook-Klasse für processDatamapClass und processCmdmapClass in der ext_localconf.php eurer Extension hinzufügen:

ext_localconf.php


$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['extkey'] = 'Vendor\\Extension\\Hook\\TCEmainHook';
$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass']['extkey'] = 'Vendor\\Extension\\Hook\\TCEmainHook';

/Classes/Hook/TCEmainHook.php


<?php
namespace Vendor\Extension\Hook;

class TCEmainHook {
    public function processCmdmap_preProcess($command, $table, $id, $value, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processCmdmap_postProcess($command, $table, $id, $value, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processDatamap_preProcessFieldArray(array &$fieldArray, $table, $id, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processCmdmap_deleteAction($table, $id, $recordToDelete, $recordWasDeleted=NULL, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processDatamap_afterAllOperations(\TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processDatamap_postProcessFieldArray($status, $table, $id, array &$fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processDatamap_afterDatabaseOperations($status, $table, $id, array $fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
}

Kommentare

  • hauke
    Danke für die Übersicht. Hier noch ein Stückcode was mich auch wieder viel zu viel Zeit gekostet hat. Wenn man einen Datensatz neu anlegt, bekommt es eine temporäre ID wie z.B. "NEW58106331753043.15119885", wenn man aber die ID haben will unter der der Datensatz später ist System hat geht das mit folgender Hook:
    function processDatamap_afterDatabaseOperations($status, $table, $id, array $fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {
    echo $pObj->substNEWwithIDs[$id] . "\n";
    }
    Antworten
    • Michael Bakonyi
      Ich glaube, da hat sich ein Fehlerteufel eingeschlichen: $fieldArray sollte eigentlich &$fieldArray heißen – also eine Referenz sein, z.B. so:


      public function processDatamap_postProcessFieldArray($status, $table, $id, array &$fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}


      Sonst tut sich nicht viel. wenn man's ändern möchte ;)

      Liebe Grüße,
      Micha
      Antworten
      • Andre Rinas
        Hallo Michael,
        danke für den Hinweis, da hab ich mich tatsächlich vertippt ;) Ich habe es angepasst
        Antworten
    • Markus
      DANKE ...... Du hast mir grade den A.... gerettet.
      Antworten
  • Marco Pfeiffer
    Danke für die Übersicht. Diese kleinen Beispiele helfen mehr als die gefühlten 1000 Wörter der Typo3 Dokumentation.
    Antworten
    • Andre Rinas
      Hey Marco, freut mich, dass ich dir helfen konnte. Ja ich finde es auch schade, dass die Doku mangelhaft ist. Entweder nicht aktuell, nicht lesbar oder nicht vorhanden. Deswegen sammle ich solche Dinge hier :)
      Antworten
  • Janosch
    Danke für die gute Info. Schade, dass es bei der Association sowas nicht dokumentiert gibt. Aber egal, bei Version 8 wird das alles besser :^)
    Antworten

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.