Zum Inhalt springen

2 spaltiges Fluid-Template

Erstellt am 31. Dezember 2013 · 24 Antworten · letzte Antwort am 5. Januar 2014 · Seite 2 von 2

Tags: Fluid, ViewHelper, TYPO3 4.x, Frage

WimDim ·

Hallo, ich hatte das mal ausprobiert wie du gesagt hattest, aber leider brauche ich die verschiedenen Klassen um die Darstellung rechts und links etwas unterschiedlich zu haben. Gibt es denn keine Möglichkeit, dies mit MARKERN und Typo3 zu erreichen?

etux ·

Also nochmal die einfachste Variante an Beispiel von Deinem TypoScript vom letzten Beitrag:
Wenn Du in der Backend-Spalte (colPos = 3) die Inhaltselemente so setzen würdest, wie die im generierten Quellcode erscheinen sollten (kurzer Text, Beschreibung, kurzer Text, Beschreibung, … usw.), dann bräuchtest Du nur noch bei „renderObj“ optionSplit anzuwenden:

renderObj.stdWrap.wrap = <div class="left"> | </div> || <div class="right"> | </div>

Wenn Du den „kurzen Text“ immer in einer Backend-Spalte setzest und die „Beschreibungen“ in einer anderen, dann müsstest Du die Inhaltselementen in TypoScript (oder spätestens im Fluid-Template) paarweise gruppieren – erstes Element aus der „Text-Spalte“ mit dem ersten Element aus der Spalte „Beschreibung“, zweites E. Aus „Text“ mit dem zweiten aus „Beschreibung“, usw.
Das würde sicher auch gehen, ist aber aufwendiger.

WimDim ·

Jetzt habe ich einen allgemeinen Content, und die beiden Backendspalten auf eine reduziert. Er gibt mir auch alle Inhalte aus, aber mit deinem Code kommt immer nur "<div class="left"></div>" und "right" gar nicht.
Anbei mal die Code-passage:

CONTENT = CONTENT
CONTENT {
table = tt_content
slide = -1
select.orderBy = sorting
select.languageField = sys_language_uid
select.where = colPos = 2
renderObj < tt_content
renderObj.stdWrap.wrap = <div class="left"> | </div> || <div class="right"> | </div>
}

Woran kann das liegen? Danke für die Hilfe :-)

etux ·

O.K. Den Link zur „split“-Funktion hatte ich Dir schon gepostet. 😉
Mach bitte folgendes:
Die Inhaltselementen der Spalte Rechts (colPos = 2) zuerst spliten:

lib.content < styles.content.getRight
lib.content {
  renderObj < tt_content
  renderObj {
    stdWrap {
      outerWrap = |###SPLITTER###
    }
  }
}

Dann den MARKER so umschreiben:

... {
  CONTENT = COA
  CONTENT {
    10 < lib.content
    stdWrap.split {
      token = ###SPLITTER###
      cObjNum = |*|1||2|*|3
      1.current = 1
      1.wrap = <div class="left">|</div>
      2.current = 1
      2.wrap = <div class="right">|</div>
      3.current = 1
      3.wrap =
    }
  }
}
WimDim ·

SUUUPER, vielen vielen Dank. Nun klappt es endlich. Wahnsinn :-) ...
Vielen Dank an euch Alle für die Hilfe und die Geduld :-)