TYPO3: Extension via userFunc laden und Function aufrufen

TYPO3: Extension als userFunc laden

Bei der Extension-Programmierung in TYPO3 gibt es Sonderfälle indem die eigene Extension per TYPOSCRIPT aufgerufen werden soll,
um an beliebige Datensätze bzw. an eine Funktion innerhalb der Extension zu gelangen.
Um die eigene Extension und die darin beinhaltenden Funktionen (function) aufzurufen, bietet TYPO3 im TYPOSCRIPT die Möglichkeit eine "userFunc" aufzurufen.

Als "USER_INT" lässt sich die Extension ungecached aufrufen und bei jedem Seitenaufruf in TYPO3 werden die Daten live generiert.
Wer die Daten gecached haben möchte, muss lediglich ein "USER" statt "USER_INT" aus dem TYPOSCRIPT-Aufruf herleiten.
Wichtig ist bei den TYPO3 Versionen kleiner 4.4.x, dass zuvor die Extension als Library geladen wird, damit diese zur Verfügung steht.
Dies ist mit "includeLibs.temporärerName" und dem Verzeichnis-Pfad zu der Extension möglich.

Wer vor seiner Extension-Ausgabe noch einen statischen Wert eintragen möchte, kann über das "10.value" (siehe Beispiel) einen Text einfügen.
Dies ist modular erweiterbar und kann auch entfernt werden.

Das folgende Beispiel basiert auf dem Mapping von TemplaVoila (TV) und wurde als "TYPOSCRIPT-OBJECT" definiert.
Daher lässt sich der gemappte Bereich direkt per TYPOSCRIPT ansprechen und mit Inhalten befüllen.

includeLibs.extension_name= typo3conf/ext/tx_extension_name/pi1/class.tx_extension_name_pi1.php
lib.extension_name = COA
lib.extension_name {
 10 = COA
 10 {
     wrap = |
     10 = TEXT
     10.value = Extension:
     20 = USER_INT
     20.userFunc = tx_extension_name_pi1->functionName
     20.value=foobar
     20.value2=barfoo;

 }
}

Wer noch Parameter an den Aufruf der Funktion innerhalb der Extension senden möchte, muss der Funktion die Variablen "$content" und "$conf" übergeben.
Andernfalls werden die im TYPOSCRIPT definierten Schlüssel (Key) nicht an die PHP-Funktion in der Extension übergeben.

function functionName($content,$conf){
  $content.='

'.$conf["value"].' '.$conf["value2"].'
'; return $content; }

Tags: , , , , , , , ,

Hinterlasse eine Nachricht