Hier nun eine verbesserte Version des Bootstrap Carousels. Diese Version zeigt alle Bilder an, die in den Seiten-Eigenschaften definiert sind. Zusätzlich werden die Metainformation des jeweiligen Bildes dargestellt. Ich habe mich dabei an der Vorlage unter Blog Teamgeist-Medien orientiert.
lib.field_headerimage = COA lib.field_headerimage { wrap ( <div id="skiplink"> <a class="skip" title="Direkt zur Navigation springen" href="#navigation">Zur Navigation springen</a><br> <a class="skip" title="Direkt zum Content springen" href="#content">Zum Content springen</a> </div> <div id="blogo"> <a href="/"><img src="fileadmin/user_upload/Logo_trans.png" /></a> </div> <div id="hslider" class="carousel slide carousel-fade" data-ride="carousel" data-interval="5000">|</div> ) #Hier hole ich die Bilder aus den Seiteneigenschaften(Ressourcen/Media) um die Navigation zu erstellen. 10 = FILES 10 { stdWrap.wrap = <ol class="carousel-indicators">|</ol> references { data = levelmedia:-1, slide treatIdAsReference = 1 } renderObj = TEXT renderObj { wrap = <li data-target="#hslider" data-slide-to="|" class="active"></li>|*|<li data-target="#hslider" data-slide-to="|"></li> value = {register:FILE_NUM_CURRENT} insertData = 1 } #Ende renderObj } #Ende 10 #Hier nochmal das gleiche Spiel nur mit Ausgabe der Bilder 20 = FILES 20 { stdWrap.wrap = <div class="carousel-inner">|</div> references { data = levelmedia:-1, slide treatIdAsReference = 1 } renderObj = COA renderObj { wrap = <div class="item active">|</div>|*|<div class="item">|</div> 3 = IMAGE 3 { stdWrap.wrap = | stdWrap.required = 1 file.import.data = file:current:originalUid # Setze den Link der im Bild eingestellt ist um das Bild stdWrap.typolink.parameter.data = file:current:link altText.data = file:current:alternative titleText.data = file:current:alternative } #Ende 3 # Hier Titel und Beschreibung für das Bild, wird auch vom Link umgeben. 6 = COA 6 { # alles nur, wenn Titel gesetzt ist if.isTrue.data = file:current:title wrap = <div class="carousel-caption">|</div> stdWrap.required = 1 stdWrap.typolink.parameter.data = file:current:link 4 = TEXT 4.wrap = <h3>|</h3> 4.data = file:current:title 8 = TEXT 8.wrap = <p>|</p> 8.data = file:current:description } #Ende 6 } #Ende renderObj } #Ende 20 } #Ende headerimage
Letztendlich wird hier ein Carousel genau nach Beschreibung aufgebaut. Im Wrap ein paar vorbereitende Zeilen (inclusive überlagertem Logo) und dann der Kopf des Carousels mit der Geschwindigkeitsangabe und der Klasse zum Starten.
Danach wird dann unter 10 der Carousel-Indicator aufgebaut, dabei geht Typoscript durch alle Bilder. Wenn man den Indicator nicht haben möchte, dann kann man den ganzen 10er Block einfach weglassen.
Anschließend werden unter 20 die Bilder eingebunden und ggf. mit den Metadaten versehen.