Zum Inhalt springen

Problem mit stdWrap und css_styled_content

Erstellt am 17. Januar 2012 · 2 Antworten · letzte Antwort am 22. Januar 2012

Tags: Frage

hwt ·

Aktuell habe ich folgendes Problem: append funktioniert, prepend nicht.

Gibt es dafür eine Erklärung, oder ist das ein Bug? Kann mir jemand vllt. bestätigen ob das geht oder nicht?

page.10.marks.CONTENT.10 < styles.content.get
page.10.marks.CONTENT.10.renderObj.stdWrap {
			prepend = COA
			prepend.10 = TEXT
			prepend.10.value = davor

			append = COA
			append.10 = TEXT
			append.10.value = danach
}

Grüße!

Chrissli ·

Sir, yes Sir

[edit]
Folgendes Phänomen:

mein TS

page = PAGE
page.10 < styles.content.get
page.10.renderObj.stdWrap {

  prepend = COA
  prepend.10 = TEXT
  prepend.10.value = davor
 
  append = COA
  append.10 = TEXT
  append.10.value = danach
}

Habe nun in der Datei
\typo3\sysext\cms\tslib\tslib_content.php
in den Methoden stdWrap_prepend und stdWrap_append
die übergebene $conf per var_dump ausgeben und erhalte folgendes:

Append:

array(2) {
  ["append"]=>
  string(3) "COA"
  ["append."]=>
  array(2) {
    [10]=>
    string(4) "TEXT"
    ["10."]=>
    array(1) {
      ["value"]=>
      string(6) "danach"
    }
  }
}

Prepend:

array(2) {
  ["prepend"]=>
  string(3) "COA"
  ["prepend."]=>
  array(4) {
    ["dataWrap"]=>
    string(36) "<a id="c{field:_LOCALIZED_UID}"></a>"
    ["if."]=>
    array(1) {
      ["isTrue."]=>
      array(1) {
        ["field"]=>
        string(14) "_LOCALIZED_UID"
      }
    }
    [10]=>
    string(4) "TEXT"
    ["10."]=>
    array(1) {
      ["value"]=>
      string(5) "davor"
    }
  }
}

Irgendwie hat sich in den Prepend ein DataWrap und ein if reingeschlichen. Gehört das denn da rein?

hwt ·

Danke fürs Gegenprüfen!!

Der Hinweis hat mich auf die Idee gebracht, mal im Template-Analyser zu schauen, was da so mit prepend passiert. Und siehe da, im static-Template css_styled_content steht:

tt_content.stdWrap {
   ...
   prepend = TEXT
   prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
   prepend.if.isTrue.field = _LOCALIZED_UID
   ...
}

Das setzt wohl dort den Anker für mehrsprachige Inhalte, sofern vorhanden.

Umgehen lässt sich das dann z.B. so (im eigenen TS-Setup):

tt_content.stdWrap {
   prepend.10 < .prepend
   prepend = COA
   prepend.dataWrap >
   prepend.if >
   prepend.20 = TEXT
   prepend.20.value = davor
}

Alternativ bleibt die Verwendung von preCObject, welches allerdings schon eher in der Hierarchie gerendert wird.

Vgl. http://jweiland.net/typo3/anleitung/typoscript/wrap-moeglichkeiten-und-hierarchie-in-menues.html, unten.

Und als Hintergrundinfo gibt's sogar noch Bug-Tracker-Einträge:

http://forge.typo3.org/issues/16412

http://forge.typo3.org/issues/17416

Besten Dank für den Input und die Bemühung!!