Typo3 Templatesystem - nicht belegte Marker löschen [Gelöst]

  • FordPrefect FordPrefe...
    Jedi-Ratsmitglied
    0 x
    884 Beiträge
    0 Hilfreiche Beiträge
    10. 02. 2006, 14:07

    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


  • 1
  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    10. 02. 2006, 14:08

    musst du aber ;)
    aber gehtt ja e schnell, einmal eine shcleife über das markerarray und fertig

    lg georg

  • FordPrefect FordPrefe...
    Jedi-Ratsmitglied
    0 x
    884 Beiträge
    0 Hilfreiche Beiträge
    10. 02. 2006, 14:11

    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

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    10. 02. 2006, 14:17

    naja so wie du das eben machst!
    oft schaut das ähnlich dem aus => $globalMarkerArray['###MARKER###'] ...

    lg georg

  • FordPrefect FordPrefe...
    Jedi-Ratsmitglied
    0 x
    884 Beiträge
    0 Hilfreiche Beiträge
    10. 02. 2006, 14:20

    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

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    10. 02. 2006, 14:23

    [quote="FordPrefect"]
    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.
    [/quote]
    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

  • FordPrefect FordPrefe...
    Jedi-Ratsmitglied
    0 x
    884 Beiträge
    0 Hilfreiche Beiträge
    10. 02. 2006, 14:31

    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

  • bpaulsen bpaulsen
    Padawan
    0 x
    43 Beiträge
    1 Hilfreiche Beiträge
    25. 07. 2015, 00:20

    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:

    1. $content = $this->cObj->substituteMarkerArray($content, $mArray, '', false, true);

    Das letzte "true" ist wichtig, das löscht die nicht benutzten Marker.

    Siehe auch:
    [url]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[/url]

  • 1