Hallo Helmut, nochmals vielen Dank für deinen Link!
Ich bin endlich dazu gekommen, es auszuprobieren. Es funktioniert, allerdings stimmt die Syntax in deinem Link nicht; offenbar wurde diese im Realease nochmals geändert. Damit auch andere was davon haben, hier meine Erkenntnisse in dem Zusammenhang im Überblick: --- Das hier funktioniert ab TYPO3 Version 4.3: Normales Plugin erstellen, konfiguriert als USER-Objekt. Das hier in die main-function: if ($this->cObj->getUserObjectType() == tslib_cObj::OBJECTTYPE_USER) { $content .= 'Ich bin ein USER Objekt.<br>'; if (!$this->conf['allowCaching']) { $this->cObj->convertToUserIntObject(); return ''; } } else { $content .= 'Nun bin ich ein USER_INT Objekt<br>'; } Das ganze läuft also abhängig von einer Typoscript-Einstellung. Das hier plugin.tx_myExt_pi1 ( allowCaching = 0; ) macht die Extension zur USER_INT, die nicht gecacht wird. Das ist schon mal eine gute Sache, allerdings wäre das auch so möglich, ganz ohne irgendeinen PHP-Code. Dieses Typoscript: plugin.tx_myExt_pi1 = USER_INT macht die Extension ebenfalls nachträglich zu einer USER_INT. Das erlaubt auch Konstruktionen wie: [globalVar = TSFE:id = 100] plugin.tx_tx_myExt_pi1 = USER_INT [global] etc. --- Interessant ist aber, dass die neuen Funktionen von TYPO3 4.3 es auch erlauben, das Caching über die Flexforms zu regeln: Das hier in die main-Function: switch ($this->conf['code']) { case 'FORM': $this->cObj->convertToUserIntObject(); $content .= 'Bin jetzt ein USER_INT-Objekt und cache nicht.'; break; default: $content .= 'Bin ein USER-Objekt und cache. '; break; } Das Plugin wird standardmäßig als USER angelegt und durch einfache Auswahl z. B. in den Flexforms umgestellt auf USER_INT. Das ermöglicht die mehrmalige Verwendung des Plugins auf einer Seite, wahlweise als USER oder als USER_INT. Und damit muss ich endlich nicht mehr für Listendarstellung, Einzeldarstellung und Formular getrennte Plugins bauen. --- Aber ich habe noch was gefunden: machmal besteht die Notwendigkeit, innerhalb einer gecachten Extension eine einzelne Ausgabe ungecached machen zu lassen - z. B. die Ausgabe einer Zeit. Das kann man über ein kleines zusätzliches Plugin lösen, das im eigentlichen Plugin aufgerufen wird: $content .= 'Normale, gechachte Ausgabe. <br>'; $cObj = t3lib_div::makeInstance('tslib_cObj'); $cObj->start(array()); $conf2 = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_myExt_pi2.']; $conf2['includeLibs'] = 'EXT:myExt/pi2/class.tx_test_pi2.php'; // ungecachte Ausgabe aus einem anderen Plugin: $content .= $cObj->cObjGetSingle('USER_INT',$conf2); $content .= '<br> und wieder die gecachte Ausgabe ... '; Das stammt aus dem Buch von Dimitriy Dulepov, Extension entwickeln, S. 129 und funktioniert sauber. --- Alles zusammen erlaubt eine enorm flexible Handhabung des Cache. Viele Grüße Peter >> Hi Peter, >> >> On 01.08.10 23:03, Peter Linzenkirchner wrote: >>> >>> Kennt jemand eine Möglichkeit, eine Extension praktisch abhängig vom >>> Flexform einmal als USER und einmal als USER_INT einzubinden? also quasi >>> so: >> >> http://danosipov.com/blog/?p=191 >> >> HTH >> >> Helmut >> _______________________________________________ >> TYPO3-german mailing list >> TYPO3-german@lists.typo3.org >> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > _______________________________________________ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german