Hallo,
mit folgendem TS habe ich es nun geschafft, dass ein Bootstrap Carousel aus den Ressourcen der Seite aufgebaut wird und dabei auch noch Titel und Beschreibung der Ressource (Bild) ausgegeben werden:
lib.carousel = FILES
lib.carousel {
references {
table = pages
uid = 1
fieldName = media
}
renderObj = COA_INT
renderObj {
10 = TEXT
10.data = file:current:publicUrl
10.wrap = <div class="item"><img src="|"/>
20 = TEXT
20.data = file:current:title
20.wrap = <div class="container"><div class="carousel-caption"><h1>|</h1>
30 = TEXT
30.data = file:current:description
30.wrap = <p class="lead">|</p></div></div></div>
}
}
Mir fehlt noch die Ausnahme im Wrap für das erste Bild, denn dort muss eigentlich <div class="item active"> stehen. Ich habe schon gesucht ob ich listnum verwenden kann bzw. es ähnliche Elemente wie CUR gibt, die man aus den Menüs kennt. Bitte um Hilfe.
Gruss
Dom
P.S.: Wenn das jemand verwenden will, sollte er/sie beachten, dass noch folgendes ins Template gehört. Auf die "id=intro"(*) wird dann gemappt:
<div id="carousel" class="carousel slide">
<div id="intro" class="carousel-inner">*</div>
<a class="left carousel-control" href="#carousel" data-slide="prev">‹</a>
<a class="right carousel-control" href="#carousel" data-slide="next">›</a>
</div>
Soweit ich weiss geht das über FILES noch nicht ohne Weiteres - habe zumindest nichts gefunden.
Ich habe es so gelöst, dass ich zuerst das "image"-Feld im Register gespeichert habe. Sieht dann so aus:
renderObj = COA
renderObj {
10 = FILES
10 {
references {
table = tt_content
uid.data = field:uid
fieldName = image
}
renderObj = COA
renderObj {
10 = LOAD_REGISTER
10 {
savedString.cObject = TEXT
savedString.cObject.data = field:image
}
}
}
}
Darauf kann man dann wieder das normale "split" wie in 4.X anwenden und hat die ganzen gewohnten Funktionen.
Das Snippet stammt noch aus 6.0.1 Zeiten - wenn es mitlerweile eine einfachere Lösung gibt würde ich diese auch gern wissen!
Hallo Toifel,
danke für Deinen Tipp. Ich habe heute früh nochmal per try and error diverse Sachen ausprobiert und siehe da, dies funktioniert auch:
lib.carousel = FILES
lib.carousel {
references {
table = pages
uid = 1
fieldName = media
}
renderObj = COA_INT
renderObj {
10 = TEXT
10.data = file:current:publicUrl
10.wrap = <div class="item active"><img src="|"/>|*|<div class="item"><img src="|"/>|*|<div class="item"><img src="|"/>
20 = TEXT
20.data = file:current:title
20.wrap = <div class="container"><div class="carousel-caption"><h1>|</h1>
30 = TEXT
30.data = file:current:description
30.wrap = <p class="lead">|</p></div></div></div>
}
}
Also es wird folgendermaßen gewrappt: erstes Element|*|mittlere Elemente|*|letztes Element
Hoffe es hilft. Gruss
Dom
Stimmt, wenn Du nur den ersten und letzten Eintrag entsprechend markieren willst ist das wahrscheinlich sogar die einfachste Lösung. War in meinem Fall leider etwas anders, da ich die Anzahl der auszulesenden Bilder begrenzen musste 😉
hallo
währe super der code.
versuche das in 6.2 zu verwenden. bekomme aber immer bei img src "Error: no file object"
währe sehr dankbar um eine lösung.
habe den fehler gefunden
die zeile
10.data = file:current<i class="mmforum-iconset-20-razz"></i>ublicUrl
muss so heissen
10.data = file:current:publicUrl
das ich das nicht gleich gesehen habe grrrrr