[TYPO3-german] Per PHP jedes Content-Element um String erweitern?

Julian Pleger commentpage at gmx.de
Wed Oct 12 14:58:27 CEST 2011


Hallo zusammen,

ich habe eine kleine Extension gebastelt und ich stehe nun vor folgendem Problem.
Ich habe ewig nach dem passenden Hook gesucht, mit dem ich die einzelnen Content-Elemente anfassen kann, bevor sie gerendet werden.

Schlussendlich habe ich den Hook "$TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClass'][] = array('TEXT','EXT:myext/Hooks/tt_content.php:&tx_myext_ttcontent_hooks');"
gefunden.
Mit diesem rufe ich die Funktion "cObjGetSingleExt(&$name, &$conf, &$TSkey, &$obj)" in der Datei "myext/Hooks/tt_content.php" der Klasse "tx_myext_ttcontent_hooks" auf.

Den Inhalt habe ich aus dem Core-Code von Typo vorerst übernommen:

public function cObjGetSingleExt(&$name, &$conf, &$TSkey, &$obj) {
	$contentObject = $obj->getContentObject($name);
	if ($contentObject) {
		return $contentObject->render($conf);
	}
}

Wie ihr oben seht, rufe ich den Hook mit dem Datentyp "TEXT" auf. Das lässt sich natürlich auch auf Content-Elemente von anderen Typen anpassen.

Nun aber zu meinem Problem:
In der Funktion "cObjGetSingleExt" werden die einzelnen TEXT-Content-Elemente der aktuellen Seite gerendered und zurückgegeben.
Wenn ich mir Hilfsausgaben in der Funktion "cObjGetSingleExt" mache (z.B.: echo $name), dann sehe ich, dass die Funktion pro Content-Element mehrfach aufgerufen wird. Ich verstehe aber nicht warum. Denn die ausgegebene Seite zeigt immerhin jedes Content-Element nur einmal an.

Wenn ich meine Function "cObjGetSingleExt" nun erwietere:
public function cObjGetSingleExt(&$name, &$conf, &$TSkey, &$obj) {
	$contentObject = $obj->getContentObject($name);
	if ($contentObject) {
		return $contentObject->render($conf) . ' MEINE ERWEITERUNG';
	}
}

so wird weiterhin jedes Content-Element EINMAL auf der Seite ausgegeben, der Textanhang "MEINE ERWEITERUNG" erscheint jedoch nach jedem Content-Element 7-,8- oder 9-fach.

Ich verstehe die Problematik an dieser Stelle einfach nicht. Warum wird die Funktion pro Content-ELement mehrfach aufgerufen und warum werden die Elemente trotzdem nur einmal auf der Seite angezeigt. Wenn ich allerdings noch Daten anhänge werden diese Mehrfach dargestellt ... ?!?!

Hat jemand eine Idee?
-- 
NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!		
Jetzt informieren: http://www.gmx.net/de/go/freephone


More information about the TYPO3-german mailing list