Hi, ich verwende jetzt in meiner Extension eine template Datei. Hatte das vorher hart im Code untergebracht was doof ist. 🙂 Ich bin nun an ein Problem gestoßen. Also ich habe einen Merkzettel. Dort gibt es eine Listen- und eine Gruppenfunktion. Ich brauche allerdings dafür 2 verschiedene subparts. Wie mache ich das. Im Moment probiere ich es so:
<!-- ###NOTEPAD### start -->
Hier der normale Inhalt
<!-- ###LIST### start -->
HIER SOLL DER INHALT DER LISTENANSICHT REIN
<!-- ###LIST### end -->
<!-- ###GROUP### start -->
HIER SOLL DER INHALT DER GRUPPENANSICHT REIN
<!-- ###GROUP### end -->
<!-- ###NOTEPAD### end -->
Wie greife ich nun auf die Subparts aus meiner Extension zu. Bis jetzt habe ich nur Marker verwenden müssen.
Kann mir da einer einen Tipp geben?
Vielen Dank.
Hi,
schau dir doch mal die Klasse class.tslib_content.php in der TSLIB an.
Ansonsten heißt eine mögliche Antwort:
$this->cObj->substituteMarkerArrayCached($content,$markContentArray=array(),$subpartContentArray=array(),$wrappedSubpartContentArray=array());
Da kannst Du Deine Marker- und Subpart-Arrays ensrepchend rendern.
Viele Grüße
Hey danke, aber diese Funktion cached die Daten in der Datenbank. Das muss nicht sein. Und bei $this->cObj->substituteMarkerArray kann ich die subParts nicht angeben. Wie genau würde denn der Befehl für mein Beispiel oben mit substituteSubpart aussehen? Danke.
Hm, also ich bekomme es einfach nicht hin mit subParts. Entweder wird mir alles doppelt ausgegeben oder eben gar nichts. Jemand evtl. noch einen Tipp?
Benutz doch lieber gleich Fluid zum Templaten und befasse dich gar nicht mehr mit der grauen Vorzeit.
Hi, ja. Aber die Extension ist halt aus der Steinzeit und muss nur mal bisschen gepimpt werden. Ausserdem möchte ich es gerne verstehen. Hab aber noch keine richtig guten Tutorials dazu gefunden. Wo das alles mal ganz genau erklärt wird. Kennst Du evtl .eins?
Hi ,
also ich bin nun ein ganzes Stück weiter gekommen.
Also mein Template sieht so aus:
<!-- ###NOTEPAD### start -->
Hier der normale Inhalt
<!-- ###LIST### start -->
HIER SOLL DER INHALT DER LISTENANSICHT REIN
<!-- ###LIST### end -->
<!-- ###GROUP### start -->
HIER SOLL DER INHALT DER GRUPPENANSICHT REIN
<!-- ###GROUP### end -->
<!-- ###NOTEPAD### end -->
Ich habe nun entsprechende Marker und SubParts gemappt. Am Ende der Funktion rufe ich nun:
$content = $this->cObj->substituteMarkerArrayCached( $notepadLoginTemplate, $markers, $subParts );
return $content;
auf.
Dies finde ich nun suboptimal , da die Daten ja nun gecached werden. Was in meinem Fall nicht sein darf.
Ich bin nun umgestiegen auf:
$content = $this->cObj->substituteMarkerArray( $notepadLoginTemplate, $markers );
foreach($subParts as $subPart => $subContent) {
$content = $this->cObj->substituteSubpart($content, $subPart, $subContent );
}
return $content;
Ich ersetze damit erst alle Marker und durchlaufe dann die Subparts und ersetze die im aktuelle Dokument. Zumindest solles so sein. Aber es klappt nicht mit den Subparts. Was und warum könnte da schief gehen? Hat eine ne Idee? Danke.
hm, ist die Frage echt so schwer? gibt es denn keine Möglichkeit?
hm, anscheinend führe ich hier ein selbstgespräch 😃
Schade. Ich möchte doch nur die subparts und die marker erstzen aber eben ohne das die Daten gecacht werden.
Also ich dachte so:
$content = $this->cObj->substituteMarkerArray($template, $markers);
foreach ($subParts as $subPart => $subContent) {
$content = $this->cObj->substituteSubpart($content, $subPart, $subContent);
}
Aber die subParts werden nicht ersetzt. Das stehen immer nur die Marker.
Hat denn keiner einer einen Tipp? 🙂
Ich bin doch nicht der erste der das braucht... oder doch? 8-)
Beste Grüße
Hast du das Problem lösen können ?
Stehe gerade vor dem gleichen Problem.
Meine Marker werden ersetzt. Die Subparts jedoch nicht.
Hier werden nur die Marker wie sie im Template stehen ausgegeben.
Wenn ich mir das subpartArray per var_dump ausgeben lasse scheint alles korrekt zu sein.
Nur will er die Marker nach dem substitute nicht ersetzten.
Allerdings funktioniert bei mir auch das Beispiel von http://wiki.typo3.org/Extension_Development,_using_HTML-Templates 1zu1 nachgebaut nicht 🙁
Wenn man dann nach ewigem Suchen sich dazu entschließt im Forum zu fragen, findet man die Antwort öfters mal direkt danach doch noch selbst 🙂
Hab es nun wie hier beschrieben gelöst:
http://www.dmitry-dulepov.com/2008/07/why-subtitutemarkerarraycached-is-bad.html