Zum Inhalt springen

Content - wrap mit Div

Erstellt am 22. Februar 2013 · 2 Antworten · letzte Antwort am 25. Februar 2013

Tags: Frage

ossi26 ·

Hallo miteinander,
ich sitze hier seit Tagen an einem Problem und weiß nicht mehr weiter.
Zu meiner Situation: Im Hauptteil meiner Seite habe ich eine SmoothGallery eingebaut (in der Spalte Normal) , mit Bildern zu einer Immobilie. Auf der selben Seite habe ich in der Spalte "Rechts" einen Text zu dieser Immobilie eingegeben.
Was ich nun gerne hätte ist dass, wenn über "Neuen Datensatz" weitere SmoothGalleries bzw. weitere Texte eingegeben werde, der passende Text immer auf gleicher höhe ist wie die dazugehörige Gallery.
Mein Lösungsansatz wäre gewesen dass ich mit TypoScript ein div erstelle, das Gallery und Text umschließt, und mit jeder weiteren Gallery/Text Eingabe auch ein neues Div angelegt wird. Mein Code:

 MAIN_LEFT_GALLERY = CONTENT
    MAIN_LEFT_GALLERY {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 0
      select.languageField = sys_language_uid
      wrap = <div class ="gallery_reihe"> <div class = "gallery"> | </div>     
    }
    
    MAIN_RIGHT_TEXT = CONTENT
    MAIN_RIGHT_TEXT {
     table = tt_content
      select.orderBy = sorting
      select.where = colPos = 2
      select.languageField = sys_language_uid
      wrap = <div class="gallery_text"> | </div> <div class="clear"> </div> </div>
    }

Das bringt leider nicht den gewünschten Effekt, da er so wieder jeden Datensatz in das "gallery_reihe"-div schreibt, anstatt für jede Reihe ein eigenes Div anzulegen.

Kann mir irgend jemand sagen wie ich meinen Code umbauen müsste damit das funktioniert?
Bin für jede Hilfe sehr, sehr dankbar!!! 😉

zeroalpha ·

Hallo ossi,

meine spontane idee ist, packe alles in eine Spalte, lass die Elemente floaten und wenn du ein neues brauchst einfach mit einem Trenner das floaten beenden.

Chrissli ·

Theoretisch könntest du die Datenbankabfragen zusammenfassen, das würde aber vorraussetzen, dass das Sorting der zugehörigen Elemente innerhalb der Spalten identisch ist ( oder du eine ähnliche Zuordnungsmöglichkeit hast ) und du das renderObj selbst definierst. Die Steuerung der abwechselnden Spalten sollte über das Feld "colPos" und if-Abfrage im RenderObj möglich sein.

Die einfachere Alternative ist, wie bereits von zeroalpha erwähnt, die Elemente in eine Spalte zu packen und per CSS zu floaten. Hierzu würde ich das tt_content als renderObj erweitern und eine even/odd-Klasse drum herum wrappen, so dass die Elemente abwechseln Links/Rechts gerendert werden können. Oder alternativ über das Layout-Feld des CE...