"Hook"s (engl. Haken) beschreiben die wundervolle Möglichkeit in Typo3 sozusagen an vordefinierte Funktionen etwas "dranzuhängen" sobald etwas Bestimmtes passiert. In den Typo3 - Libraries gibt es bereits viele solche vorgefertigte "Haken" mitgeliefert.
Folgender Hook soll immer dann ausgeführt werden, wenn im Shop (tt_products) ein Content-Element erzeugt wird, um dann xml - Dateien an ein externes Statistiktool zu schicken, wenn ein neues Produkt erzeugt wurde.
Für das 'Anhängen' meiner Funktion verwende ich den "Haken" "class t3lib_tcemain." in der t3lib von Typo3. Dort gibt es die Funktion "process_datamap", die ausgeführt wird, wenn ein Typo3 - Content im BE erzeugt wird.
Diese Funktion hatte einen eingebauten Hook, nach dem ich einfach meine neue Funktion benannt habe.
Also habe ich meine Methode in eine Klasse gepackt, siehe unten:
class tx_myextension_tcemainprocdm {
function processDatamap_postProcessFieldArray ($status,$table,$id,&$fieldArray,&$reference) {
$fieldArray['hidden'] = 1;
echo "hallo";
}}
...und dann als "class.tx_myextension_tcemainprocdm.php" im Root der Extension abgespeichert.
Dann in der Datei "ext_localconf.php" der Extension die Klasse "angemeldet":
$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'EXT:tt_products/class.tx_myextension_tcemainprocdm.php:tx_myextension_tcemainprocdm';
Und schon wird die Funktion ausgeführt, wenn im BE ein Content erzeugt wird. Zum Schluss lese ich den Request Array aus und mache eine Bedingung mit "if", damit die Methode nur dann ausgeführt wird, wenn ein Shop - Inhalt erzeugt wird.
Folgender Beitrag hat mir dabei sehr geholfen:
Gruß/Gruess
M. Koller
