Zum Inhalt springen

wrap header + bodytext of wrapped content element > edit CSC

Erstellt am 20. April 2009 · 2 Antworten · letzte Antwort am 21. April 2009

Tags: Inhaltselemente, Frage

felisse.​courage ·

hallo!
zugegeben ist folgendes problem alt bekannt, doch leider bin ich nach langem experimentieren und suchen noch zu keiner lösung gekommen.

problem:

  • wrap des gesamten content element
    extra wrap header
    extra wrap bodytext
    bedingung: nur in bestimmer spalte!

ich verwende css_styled_content, d.h. dieses soll angepasst werden.

die formatierung des content element soll für die spalte links(1) geändert werden.

SCHEMA, so soll es aussehen:

<!--  CONTENT ELEMENT [begin] -->
<div class="box">
 <div class="box_top">header</div>
 <div class="box_middle">bodytext bodytext bodytext</div>
 <div class="box_bottom"></div>
</div>
<!--  CONTENT ELEMENT [end] -->

folgende formatierung ist mir für das gesamte content element und den header bereits gelungen (quelle:http://typo3.intervation.de/snippets/allgemein/grafische-ueberschrift.html):

page.10.subparts.LEFT < styles.content.getLeft
page.10.subparts.LEFT.renderObj.stdWrap.wrap = <div class="box">|<div class="box_bottom"></div></div>
### Kopieren von lib.stdheader auf ein temp Object, dient zur Zwischenspeicherung
temp.stdheader < lib.stdheader
# Löschen von lib.stdheader
lib.stdheader >
lib.stdheader = CASE
lib.stdheader {
  # Abfrage der Spalte
key.field=colPos
  # Default Wert, wird ausgeführt wenn keine gesonderte Konfiguration für colPos vorhanden ist
default < temp.stdheader
  # Für die linke Spalte, linke Spalte ist colPos 1
  # Erst wird temp.stdheader kopiert
1 < temp.stdheader
  # Jetzt wird die Grafikkonfofiguration kopiert
1.3.headerClass = box_top
1.10.1.fontTag = <div{register:headerStyle}{register:headerClass}>|</div>
}

leider klappt das immer nur für den ersten datensatz, darauf folgende datensätze werden nicht mehr wunschgemäß formatiert. siehe...
zwei aufeinander folgende datensätze in spalte 1 (links), formatierung greift nur beim ersten:

<!--  CONTENT ELEMENT, uid:8/text [begin] -->
  <a id="c8"></a><div class="box">
  <!--  Header: [begin] -->
   <div class="csc-header csc-header-n1"><div class="box_top">datensatz 1 überschrift</div></div>
  <!--  Header: [end] -->
   
  <!--  Text: [begin] -->
   <div><p class="bodytext">datensatz 1 bodytext</p></div>
  <!--  Text: [end] -->
   <div class="box_bottom"></div></div>
 <!--  CONTENT ELEMENT, uid:8/text [end] -->
  
 <!--  CONTENT ELEMENT, uid:9/text [begin] -->
  <a id="c9"></a><div class="box">
  <!--  Header: [begin] -->
   <div class="csc-header csc-header-n2"><div>datensatz 2 überschrift</div></div>
  <!--  Header: [end] -->
   
  <!--  Text: [begin] -->
   <div><p class="bodytext">datensatz 2 bodytext</p></div>
  <!--  Text: [end] -->
   <div class="box_bottom"></div></div>
 <!--  CONTENT ELEMENT, uid:9/text [end] -->

woran könnte es liegen, dass die angepasste formatierung nur beim ersten datensatz greift?

Michaelh74 ·

So wie ich das sehe fehlt Dir ja nur der Header Wrap, oder?

Default wird um den Header ja bereits ein h1 oder h2 gewrappt. Kannst Du das CSS nicht direkt damit lösen?

Ansonsten verwendet T3 soweit ich mich erinnere für die allererste Überschrift einer Seite immer eine "Sonderformatierung". Vielleicht hilft das weiter...

Gruß
Michael

felisse.​courage ·

du hast mich nochmal angestoßen im object browser zu suchen. problem gelöst!
folgende bedingung war aktiv:

lib.stdheader.CASE(colPos).3.headerClass.if.value = 1
lib.stdheader.CASE(colPos).3.headerClass.if.equals.data = cObj:parentRecordNumber

gelöscht und es hat geklappt:

lib.stdheader.CASE(colPos).3.headerClass.if >