Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 17

Extensions flexibel und anpassbar entwickeln: Erweiterbare Erweiterungen

Jede Webseite ist anders – zumindest ein bisschen anders. Für ein neues Projekt wird daher aus der Fülle verfügbarer TYPO3-Extensions ein individuelles Paket geschnürt. Nicht selten ist es dabei notwendig, funktionale Änderungen in eine Extension einfließen zu lassen. Diese sind so individuell, dass eine Extension sie nicht allesamt abdecken kann und muss. Was kann ein Extension-Entwickler also tun, um sowohl gute Grundfunktionen als auch flexible Erweiterbarkeit zu gewährleisten?

Rund 4.000 Erweiterungen befinden sich im TYPO3 Extension Repository. Weit verbreitete Extensions zeichnen sich sehr oft durch gute Erweiterbarkeit aus.

Rund 4.000 Erweiterungen befinden sich im TYPO3 Extension Repository. Weit verbreitete Extensions zeichnen sich sehr oft durch gute Erweiterbarkeit aus.

Entwickler können TYPO3 auf verschiedenste Art und Weise erweitern. Neben klassischen Extensions stehen auch die Konfiguration via TypoScript, Hooks und das XCLASS-Verfahren zur Verfügung. Nachfolgend werden diese Wege näher beleuchtet.

Funktionalität auslagern

Mit TypoScript kann eine Extension über cObject-Konstrukte [1] mit ergänzenden oder alternativen Funktionen ausgestattet werden. Innerhalb eines Plugins, das in der Regel von der Klasse „tslib_pibase“ erbt, können zusätzliche cObjects verarbeitet werden.

TYPOSCRIPT – Plugin-Konfiguration

includeLibs.myfunc = fileadmin/scripts/user_myFunc.php
plugin.tx_my_pi1.finish = USER_INT
plugin.tx_my_pi1.finish { 
	userFunc = user_myFunc->sendMail
	mailTo = admin@example.com
}

Listing 1

Das entsprechende cObject wird in der Plugin-Konfiguration bestückt. USER_INT aus Listing 1 ermöglicht das nicht-gecachte Ausführen einer Funktion oder einer Klassenmethode. Es können natürlich auch die anderen cObject-Typen (CONTENT, COA, TEXT, MULTIMEDIA etc.) verwendet werden.

PHP – Plugin-Klasse, die ein cObject verwendet

class tx_my_pi1 extends tslib_pibase {
	function main($content, $conf) {
		if($conf['finish']) {
			$this->cObj->regObj = $this; // Referenz auf Plugin-Objekt
			$content = $this->cObj->cObjGetSingle($conf['finish'],$conf['finish.']);
		}
		return $content;
	}
}

Listing 2

Die Methode „cObjGetSingle“ der Oberklasse „tslib_pibase“ wird verwendet, um ein cObject „auszuführen“. USER-/USER_INT-Funktionen kann Zugriff auf den Plugin-Kontext gewährt werden. Der Rückgabewert ist stets eine Zeichenkette.

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Finde einen Job, den du liebst