Hallo Forum,
ich arbeite gerade an einer eingenen Extension mit der Template-Klasse von Typo3. In meinem Template sind einige Marker die nicht immer mit Werten befüllt werden.
Wie ereiche ich es, dass nicht zu befüllende Marker nicht angezeigt werden? Ich möchte nicht alle nicht benutzten Marker mit Leerstrings füllen.
Gruss
Ford
musst du aber 😉
aber gehtt ja e schnell, einmal eine shcleife über das markerarray und fertig
lg georg
Hi,
werden alle in einem Template hinterlegten Marker in einen Array geschreiben, passiert das automatisch oder muss ich eine Funktion über das Template laufen lassen?
Gruss
Ford
naja so wie du das eben machst!
oft schaut das ähnlich dem aus => $globalMarkerArray['###MARKER###'] ...
lg georg
Hi,
das ist mir schon klar, nur hat mein Template so an die 40 Marker, da muss ich die ja alle vorab mit Leerstrings belegen, das gibt ja n riesen code.
Gibt es nciht die Möglichkeit alle Marker irgendwie aus dem Template herauszuparsen, dann kann ich das durchlaufen und Leerstrings setzten.
Gruss
Ford
FordPrefect schrieb
das ist mir schon klar, nur hat mein Template so an die 40 Marker, da muss ich die ja alle vorab mit Leerstrings belegen, das gibt ja n riesen code.
nene, bevor du dein return $content; o.ä. hast, läufst du mittels foreach über das Array, fragst ob was zugewiesen worden is, wenn nicht dann eben = '';
fertig
Hi,
hmm, ich glaube wir haben hier ein Verständnisproblem :o !
Okey, im Detail:
Template mit Markern.
Template wird eingelesen:
$this->templateCode = $this->cObj->fileResource("fileadmin/sys/kasuistik.html");
Teilbereich aus Template extrahieren:
$templateZelle = $this->cObj->getSubpart($this->templateCode,"###TEMPLATE_AUFLISTUNG_ZELLE###");
Manuelle zuweisung Wert für Marker:
$this->markerArrayZelle["###MARKER_A###"] = "Test";
Im Template ist jetzt noch ein Zweiter Marker ###MARKER_B###
So, diesen 2. Marker muss ich jetzt in meinem Script mit einem Leerstring belegen, jetzt hab ich aber 40 solcher nicht verwendeten Marker und muss dann alle jetzt untereinander mit Leerstrings belegen.
Das ist eben sehr umständlich.
Gut wäre es wenn ich eine Funktion wie getAllMarkers einen Array mit allen im Template vorhandenen Marker bekomme und das dann in einer Schleife mit Leerstrings füllen kann.
Übrigens ist deine Seite gerade down
Gruss
FOrd
Bin grad durch Zufall auf diesen Thread gestoßen, ist zwar alt, aber steht ziemlich weit oben bei Google wenn man danach sucht. Deshalb hier einmal die Lösung ohne extra Schleife:
$content = $this->cObj->substituteMarkerArray($content, $mArray, '', false, true);
Das letzte "true" ist wichtig, das löscht die nicht benutzten Marker.
Siehe auch:
https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_html_1_1_html_parser.html