Zum Inhalt springen

Template Verständnis Frage

Erstellt am 5. Juli 2012 · 11 Antworten · letzte Antwort am 6. Dezember 2012

Tags: Templates & Layouts, Frage

besucher80 ·

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.

besucher80 ·

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?

aemka ·

Benutz doch lieber gleich Fluid zum Templaten und befasse dich gar nicht mehr mit der grauen Vorzeit.

besucher80 ·

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?

besucher80 ·

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.

besucher80 ·

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

FabianX ·

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.