UPDATE 2: TYPO3 Quelltext aufräumen: Wraps entfernen

TYPO3

Heute gibt es einen weiteren Artikel zum Thema Quelltext aufräumen unter TYPO3. Dieses Mal müssen einige Wraps dran glauben. TYPO3 erzeugt für diverse Wraps für verschiedene Dinge und Content Elemente. Auch hierbei helfen wieder einige Zeilen TypoScript.

Die Wraps

TYPO3 erzeugt einige Wraps. Dabei werden z.B. Content Elemente mit einen DIV-Tag ummantelt und mit Klassen und IDs versehen. Das sieht dann z.B. so aus:

1
2
3
<div id="c103" class="csc-default">
[...]
</div>

Das TypoScript

Wie bereits erwähnt kann man diese Wraps ebenfalls mit einigen Zeilen TypoScript entfernen.

1
2
3
4
5
6
7
lib.stdheader.10.stdWrap.wrap = |
tt_content.stdWrap.dataWrap >
tt_content.header.20.dataWrap >
tt_content.mailform.20.stdWrap.wrap >
tt_content.stdWrap.innerWrap.cObject >
tt_content.stdWrap.innerWrap.cObject.default >
styles.content.imgtext.caption.1.wrap = |

Damit solltet ihr die wichtigsten Wraps entfernt haben und eurer Markup wieder ein wenig schlanker gestaltet haben.

Habe ich Wraps vergessen? Lasst ihr die Wraps evtl. bewusst drin? Ich freue mich über eure Erfahrungen und Anregungen.

UPDATE für die TYPO3-Versionen 4.5.4 und 4.4.9:

In den Kommentaren hat sich irgendwann folgender Schnipsel zur Anpassung der Überschriften herauskristallisiert:

1
2
3
4
5
lib.stdheader.10.1.fontTag = <h1 id="c{field:uid}"{register:headerStyle}{register:headerClass}>|</h1>
lib.stdheader.10.2.fontTag = <h2 id="c{field:uid}"{register:headerStyle}{register:headerClass}>|</h2>
.
.
.

Da aber, mit den Updates auf die Versionen 4.5.4 und 4.4.9, die Eigenschaft fontTag entfernt wurde, sollte nun folgendes verwendet und auch vor dem Update angepasst werden:

1
2
3
4
5
lib.stdheader.10.1.dataWrap = <h1 id="c{field:uid}"{register:headerStyle}{register:headerClass}>|</h1>
lib.stdheader.10.2.dataWrap = <h2 id="c{field:uid}"{register:headerStyle}{register:headerClass}>|</h2>
.
.
.

UPDATE 2

Die Versionen 4.5.5, 4.4.10, 4.3.13 sind nun abwärtskompatibel, wodurch keine Probleme bei der Verwendung von fontTag auftreten sollten. Ein Umstieg auf die Eigenschaft dataWrap kann natürlich trotzdem nicht schaden.

FacebookRSS Feeds

15 Kommentare zu “UPDATE 2: TYPO3 Quelltext aufräumen: Wraps entfernen”

  1. Wolfgang Wagner

    24. März 2011 um 21:49

    Nur eine kurze Anmerkung zu den IDs:

    diese sind nötig für das Inhaltselement “Sitemap” mit dem Typ “Abschnittsübersicht (mit Seiteninhalt)”. Damit kann man ein Inhaltsverzeichnis der aktuellen Seite anlegen, und die IDs dienen als Ankerpunkte, damit vom Inhaltsverzeichnis aus diese Abschnitte direkt verlinkt und angesprungen werden können.

    Wenn man also Seiten mit viel Text und vielen Inhaltselementen hat und diesen Sitemaptyp einsetzen will, sollte man die IDs nicht entfernen.

  2. Marcel

    24. März 2011 um 22:28

    Da hast du natürlich recht, danke für den Hinweis. Je nach Projekt würde ich dann aber trotzdem überlegen die Überschrift um die ID zu erweitern (werde ich bei Gelegenheit evtl. mal was zu schreiben) oder die Wraps via Extensiontemplate nur auf bestimmten Seiten wieder einzublenden.

  3. Florian

    25. März 2011 um 09:26

    Manchmal sind die Wraps ganz praktisch, wenn die Inhalte z.B. ein Hintergrundbild bekommen sollen. In den meisten Fällen kann man sie aber wirklich entfernen denke ich.

  4. Mario

    3. April 2011 um 06:52

    Auch von mir ein paar Anmerkungen dazu:

    tt_content.stdWrap.dataWrap >
    Damit entfernst du auch die Anker bzw. Sprunkmarken. Gerade bei längeren Texten doch sehr nützlich, um innerhalb der Seite zu bestimmten Abschnitten zu springen.

    tt_content.stdWrap.innerWrap.cObject >
    tt_content.stdWrap.innerWrap.cObject.default >
    Ist problematisch, wenn man dem Redakteur im Backend die Position der Bilder bestimmen lassen möchte. Dann zeigt dessen Auswahl keinerlei Wirkung mehr.

    Meine Erfahrung dazu: Viele der Wraps sind einfach sinnvoll bzw. sollte man sie nicht einfach so entfernen und wenn dann gut dokumentiert. Man sucht sich im Nachhinein dämlich, wenn dann mal wieder was nicht so funktioniert, wie es eigentlich sollte.

  5. Marcel

    3. April 2011 um 11:31

    Wie bereits in meinem vorherigen Kommentar erwähnt, würde ich bevorzugen den Wrap trotzdem zu entfernen und der Überschrift die ID mitzugeben.

    1
    2
    3
    4
    5
    6
    7
    lib.stdheader {
      10.1 >
      10.1 = TEXT
      10.1.current = 1
      10.1.fontTag >
      10.1.stdWrap.dataWrap = <h2 id="c{field:uid}">|</h2>
    }

    Wäre eine Idee die funktionieren sollte. Evtl. könnte man das Ganze noch etwas eleganter lösen, aber als Ansatz denke ich recht es aus.

    Dein Problem mit der Positionierung von Bildern kann ich nicht nachvollziehen. In wiefern soll das denn Auswirkung auf das nötige Markup haben?

    Gruß Marcel

  6. Christian

    7. April 2011 um 20:48

    Hallo Marcel,

    sehr praktisch um überflüssige Wraps los zu werden, danke.

    Das mit der Headline sollte viel einfacher über:

    1
    2
    3
    4
    5
    lib.stdheader.10.1.fontTag = <h1 id="c{field:uid}"{register:headerStyle}{register:headerClass}>|</h1>
    lib.stdheader.10.2.fontTag = <h2 id="c{field:uid}"{register:headerStyle}{register:headerClass}>|</h2>
    .
    .
    .

    funktionieren.

  7. Christian

    7. April 2011 um 20:55

    Oh,
    da habe ich doch glatt einen Wrap vergessen:

    1
    lib.stdheader.stdWrap.dataWrap = |

    Gruß Christian

  8. Marcel

    7. April 2011 um 21:09

    Danke für den Tipp. Finde im Moment nicht viel Zeit um mich darum zu kümmern, werde aber bei Gelegenheit mal gucken ob ich das nochmal überarbeite. Danke für den Denkanstoß.

    Gruß Marcel

  9. christopher

    27. Juli 2011 um 17:38

    Seit TYPO3 4.5.4 wird die Überschrift nicht mehr mit fontTag, sondern mit dataWrap gewrappt.
    Deshalb bewirkt diese Zeile nichts mehr:
    lib.stdheader.10.1.fontTag >

    Stattdessen lässt sich dieser Wrap mit
    lib.stdheader.10.1.dataWrap >
    entfernen.

  10. Marcel

    27. Juli 2011 um 18:31

    @Christopher: Danke für den Tipp. Werde ich mich dann morgen Früh mit auseinandersetzen…

  11. Kurt Kunig

    28. Juli 2011 um 14:49

    Das mit dem dataWrap statt fontTag hat sich auch in der neuen Version 4.4.9 geändert, nicht nur in der 4.5.4.
    Also auch beim Upgrade auf die 4.4.9 aufpassen.

  12. Marcel

    28. Juli 2011 um 15:08

    @Kurt: Ja, das stimmt natürlich. Danke für den Tipp!

    Habe den Artikel ergänzt!

  13. TYPO3 4.5.4 Update – Überschriften Rendering Bug #not | maddesigns

    16. August 2011 um 13:54

    […] Kollegen haben dazu schon gestern berichtet: Riona auf jWeiland.net, Kupix Webdesign und der Nikonierer. 7 […]

  14. Conny

    3. November 2011 um 12:13

    Die wraps finde ich teilweise nicht unpraktisch, so z. B. das div um die Inhaltselemente, da man es unmittelbar nutzen kann. Hier kommt es aber in manchen Situationen zu unschönen Kombinationen. Via “Datensatz einfügen” entsteht beispielsweise automatisch ein “Doppel-Wrap”, der bei CSS-Formatierungen natürlich nicht schön aussieht. Im Folgenden ein Ausschnitt, wie man den wrap für dieses Beispiel verhindern kann:

    # Das “Datensatz einfügen”-Element darf kein div setzen
    tt_content.stdWrap.innerWrap.override = |
    tt_content.stdWrap.innerWrap.override.if {
    equals = shortcut
    value.field = CType
    }

    Das funktioniert natürlich auch mit allen anderen CTypes.

  15. Marcel

    3. November 2011 um 12:36

    Hallo Conny,

    danke für den Tipp. Werde ich mir bei Gelegenheit mal näher ansehen.

    Im Bezug auf das Entfernen der Wraps muss ich halt zugeben, dass ich meistens auf ein schlankes Markup achte und dementsprechend DIV-Container entferne, wenn ich sie nicht zwangsläufig benötige.

    Gruß Marcel