Ich hab ein Bilder Karusell implementiert um mit Hilfe des Content Element "nur Bilder" im Frontend ein Bootstrap Bilder Karusell einzubinden. Dabei habe ich mich an folgende Anleitung gehalten http://www.ambranet.de/blogpost/cms/bootstrap-karussell-bilderslider-aus-typo3-contentelementen.html
Soweit funktioniet alles so wie es soll, mein Problem ist nur, dass die Bilder zweimal ausgegeben werden. Einmal wie gewünscht als Karusell und einmal im default modus, also wie wenn ich normal Bilder mit dem Content Element eingefügt hätte. Habe quasi doppelten Content.
Ich müsste also Typo3 sagen, dass wenn im Layoutmodus "Karusell" ausgewählt wurde, er die Defaultvariante nicht rendern soll.
Kann mir dabei evtl. jemand weiterhelfen??
Hier ist mein Code:
# Code 1 #################
lib.carousel = COA
##### 1. Zugriff auf die Bilder
lib.carousel.10 = FILES
lib.carousel.10.references {
table = tt_content
#####UID der Bilder
uid.data=field:uid
fieldName = image
}
##### 2. Ausgabeiteration der Buttons steuern
lib.carousel.10.renderObj = TEXT
lib.carousel.10.renderObj {
value = {register:FILE_NUM_CURRENT}
insertData = 1
dataWrap = <li data-target="#carousel-example-generic{cObj:parentRecordNumber}" data-slide-to="|" class="active"></li>|*|<li data-target="#carousel-example-generic{cObj:parentRecordNumber}" data-slide-to="|" class="">
</li>|*|<li data-target="#carousel-example-generic{cObj:parentRecordNumber}" data-slide-to="|" class=""></li>
}
##### 3. Container um den gesamten lib.carousel.10
lib.carousel.10.stdWrap.wrap3 = <ol class="carousel-indicators">|</ol>
lib.carousel.20 < lib.carousel.10
lib.carousel.20.renderObj = COA
##### 4 Das Bild wird geladen
lib.carousel.20.renderObj.10 = IMAGE
lib.carousel.20.renderObj.10 {
file.import.data = file:current:publicUrl
file.width.field = imagewidth
file.height.field = imageheight
##### 4.1 Das Bild erhält Alt-Text und Titel aus den Bildeigenschaften
altText.data = file:current:alternative
altText.htmlSpecialChars = 1
titleText.data = file:current:title
titleText.htmlSpecialChars = 1
}
lib.carousel.20.renderObj.15 >
##### 4.2 Aus dem Feld "Description“ wird ein Caption-Text erzeugt, der einen Link mit der im Linkfeld eingetragenen Adresse erhält
lib.carousel.20.renderObj.20 = TEXT
lib.carousel.20.renderObj.20 {
stdWrap.data = file:current:description
stdWrap.removeBadHTML = 1
stdWrap.typolink.parameter.data = file:current:link
##### 4.3 Container um die Caption
dataWrap = <div class="carousel-caption active">|</div>|*|<div class="carousel-caption">|</div>|*|<div class="carousel-caption">|</div>
}
##### 4.4 Container um die Bilder und Captions, das erste Element erhält eine andere Klasse als die anderen
lib.carousel.20.renderObj.wrap = <div class="item active">|</div>|*|<div class="item">|</div>|*|<div class="item">|</div>
##### 4.5 Container um den gesamten lib.carousel.20
lib.carousel.20.stdWrap.wrap3 = <div class="carousel-inner">|</div>
##### 5. Container um des gesamte Element
lib.carousel.stdWrap.dataWrap (
<div id="carousel-example-generic{cObj:parentRecordNumber}" data-interval="false" class="carousel slide" data-ride="carousel">
|
<a class="left carousel-control" href="#carousel-example-generic{cObj:parentRecordNumber}" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a class="right carousel-control" href="#carousel-example-generic{cObj:parentRecordNumber}" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
)
# Code 3 #####################
# Das Standard-Imagerenderung wird in einer Variablen gespeichert.
lib.imagerendering < tt_content.image.30
#Das Imagerendering wird zum CASE-Objekt. Wenn im Feld Section Frame die Option #Slider angewählt wird, werden die Bilder als Slider ausgelesen. Ansonsten wird #das Imagerendering in den Standardzustand zurückversetzt.
tt_content.image.30 = CASE
tt_content.image.30 {
key.field = layout
100 < lib.carousel
default < lib.imagerendering
}
# Stellt bei "Text mit Bild" die Textausgabe wieder her.
tt_content.textpic.30 =< lib.imagerendering
Dankeschön schon mal...:-)