Zum Inhalt springen

content elemente wrappen (ähnlich optionSplit)

Erstellt am 21. Juli 2005 · 1 Antwort · letzte Antwort am 21. Juli 2005

Tags: Inhaltselemente, Frage

Benjamecho ·

Hi,

ich würde gerne einzelne Content-Elemente einer Spalte folgendermaßen wrappen:

Das erste Contentelement: <div class="erstes"> | </div>
und danach immer abwechselnd: <div class="gerade"> | </div>
und <div class="ungerade"> | </div>

Folgenden Ansatz habe ich mir schon aus der englischen Mailingliste genommen und soweit wie mir möglich angepasst:

temp.newcontent = COA
temp.newcontent{
  #----------
  # two or more content elements
  #----------

  # first content element
  10 = COA
  10.if {
    value = 1
    isGreaterThan.numRows.table = tt_content
    isGreaterThan.numRows.select < styles.content.get.select
  }
  10.10 < styles.content.get
  10.10.stdWrap.wrap = <div class="erstes">|</div>
  10.10.stdWrap.required = 1
  10.10.select.begin = 0
  10.10.select.max = 1

  #----------
  # three or more content elements
  #----------
  # middle/normal content element
  10.20 = COA
  10.20.if {
    value = 1
    isGreaterThan.numRows.table = tt_content
    isGreaterThan.numRows.select < styles.content.get.select
  }
  10.20.10 < styles.content.get
  10.20.10.renderObj.stdWrap.wrap = <div class="content-element">|</div>
  10.20.10.select.begin = 1
  10.20.10.select.max = total-1

  #--------
  # one or no content elements
  #--------
  20 = COA
  20.if {
    value = 1
    isGreaterThan.numRows.table = tt_content
    isGreaterThan.numRows.select < styles.content.get.select
    negate = 1
  }
  20.10 < styles.content.get
  20.10.stdWrap.wrap = <div class="erstes">|</div>
  20.10.stdWrap.required = 1
}

Das erste Element wird richtig ausgegeben, allerdings scheitert es noch an der gerade/ungerade Abfrage.

'Wäre sehr nett wenn mir jemand weiterhelfen könnte, ich blick's irgendwie nicht ;-(

Alternativ wäre auch eine Extension sinnvoll, die jedes Contentelement um eine auswählbare Eigenschaft erweitert,
auf die ich per TS für den Wrap zurückgreifen kann, damit ein Redakteur den jeweiligen wrap bestimmen kann. Ähnlich wie Layouts für Überschriften - Layouts für gesamte Elemente. Aber sowas gibt es nicht, oder?

Viele Grüße
Ben

Benjamecho ·

ich habe jetzt einen Ansatz, aber leider mit begrenzter Anzahl von Content-Elementen, falls es mal mehr werden sollen muss das Typoscript (ab Zeile 56) erweitert werden. Eine dynamischere Abfrage wäre mir lieber ;-)

temp.newcontent = COA
temp.newcontent{
  #----------
  # two or more content elements
  #----------

  # first content element
  10 = COA
  10.if {
    value = 1
    isGreaterThan.numRows.table = tt_content
    isGreaterThan.numRows.select < styles.content.get.select
  }
  10.1 < styles.content.get
  10.1.stdWrap.wrap = <div class="headline">|</div>
  10.1.stdWrap.required = 1
  10.1.select.begin = 0
  10.1.select.max = 1

  #----------
  # three or more content elements
  #----------
  # middle/normal content element
  10.20 = COA
  10.20.if {
    value = 1
    isGreaterThan.numRows.table = tt_content
    isGreaterThan.numRows.select < styles.content.get.select
  }
  10.20{
    1 < styles.content.get
    1.renderObj.stdWrap.wrap = <div class="ungerade">|</div>
    1.select.begin = 1
    1.select.max = 1

    2 < styles.content.get
    2.renderObj.stdWrap.wrap = <div class="gerade">|</div>
    2.select.begin = 2
    2.select.max = 1

    3 < .1
    3.select.begin = 3
    4 < .2
    4.select.begin = 4
    5 < .1
    5.select.begin = 5
    6 < .2
    6.select.begin = 6
    7 < .1
    7.select.begin = 7
    8 < .2
    8.select.begin = 8
    9 < .1
    9.select.begin = 9
    10 < .2
    10.select.begin = 10
  }

  #--------
  # one or no content elements
  #--------
  20 = COA
  20.if {
    value = 1
    isGreaterThan.numRows.table = tt_content
    isGreaterThan.numRows.select < styles.content.get.select
    negate = 1
  }
  20.1 < styles.content.get
  20.1.stdWrap.wrap = <div class="headline">|</div>
  20.1.stdWrap.required = 1
}

page.10 {
  subparts.INHALT < temp.newcontent
}