Entschuldigung den Titel hat es nicht gespeichert: Menü/Sitemap mit Bilder aus Content-Elementen
Hallo Forum,
ich suche nach einer Möglichkeit über eine Sitemap/Menü das erste Bild der jeweiligen Seite anzeigen zu lassen. Mit den Bildern aus den Seiteneigenschaften ist das kein Problem, allerdings schaffe ich es nicht, das jeweils erste Bild aus dem Content zu laden. Ich habe Seite mit einem Content-Element »Menüs« angelegt. Der Ausgangspunkt zeigt auf eine Seite mit Unterseiten. Auf jeder Unterseite sind mehrere Text mit Bild oder Bilder Elemente eingebunden. Nun versuche ich das jeweils erste Bild zu laden. Ich möchte ungern den Redakteuren erklären, je ein Bild in die Seiteneigenschaft zu laden.
Vielleicht kann mir einer von euch weiterhelfen? Mit folgendem Typoscript bekomme ich zumindestens ein paar Bilder angezeigt, aber auch nur scheinbar alle nur von einem Contentelement und nicht nur je das erste:
tt_content.menu.20.4 >
tt_content.menu.20.4 < tt_content.menu.20.1
tt_content.menu.20.4.wrap = <ul>|</ul>
tt_content.menu.20.4.1.wrap = |
tt_content.menu.20.4.1.NO {
wrapItemAndSub = |
linkWrap = |
allWrap = |
ATagBeforeWrap = 0
doNotLinkIt = 1
stdWrap.htmlSpecialChars = 0
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10 {
field = title
wrap = <li>|
typolink.parameter.field = uid
}
30 = FILES
30 {
references {
table = tt_content
fieldName = image
}
renderObj = IMAGE
renderObj {
file {
width = 263c
height = 155c
maxW = 263c
maxH = 155c
import.data = file:current:publicUrl
}
altText.field = title
imageLinkWrap = 1
imageLinkWrap {
enable = 1
typolink.parameter.field = uid
}
}
stdWrap.wrap = |</li>
}
40 >
}
Vielen Dank für die Hilfe!
Beste Grüße
Fabian
tt_content.menu zielt auf die "pages" Tabelle, im FILES hast du deshalb noch gar kein tt_content Objekt und das "images"-Feld ist wahrscheinlich leer, da es das Feld nicht in pages gibt.
tt_content.menu.20.4 >
tt_content.menu.20.4 < tt_content.menu.20.1
tt_content.menu.20.4.wrap = <ul>|</ul>
tt_content.menu.20.4.1.wrap = |
tt_content.menu.20.4.1.NO {
wrapItemAndSub = |
linkWrap = |
allWrap = |
ATagBeforeWrap = 0
doNotLinkIt = 1
stdWrap.htmlSpecialChars = 0
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10 {
field = title
wrap = <li>|
typolink.parameter.field = uid
}
30 = CONTENT
30 {
table = tt_content
select {
pidInList.field = uid //uid aus "pages" benutzen
orderBy = sorting
limit = 1
}
renderObj = FILES
renderObj {
references {
table = tt_content
fieldName = image
}
renderObj = IMAGE
renderObj {
file {
width = 263c
height = 155c
maxW = 263c
maxH = 155c
import.data = file:current<i class="typo3forum-iconset-20-razz"></i>ublicUrl
}
altText.field = title
imageLinkWrap = 1
imageLinkWrap {
enable = 1
typolink.parameter.field = uid
}
}
stdWrap.wrap = |</li>
}
40 >
}
Hallo, danke für den Tipp. Soweit funktioniert es mit der Ausgabe. Allerdings werden mit dem TypoScript von Dir alle Bilder der Inhaltselemente ausgegeben. Ich benötige eigentlich immer nur das erste Bild aus dem jeweiligen ersten CE der Seite.
Ich habe das ganze jetzt mal mit einem Counter probiert, allerdings habe ich hier das Problem, dass nur das allererste Bild der ersten Seite angezeigt wird. Der Counter müsste meiner Meinung nach, bei der nächsten Seite zurückgesetzt werden. Ich finde aber die Möglichkeit nicht ... Danke für die Hilfe!
tt_content.menu.20.4 >
tt_content.menu.20.4 < tt_content.menu.20.1
tt_content.menu.20.4.wrap = <ul>|</ul>
tt_content.menu.20.4.1.wrap = |
tt_content.menu.20.4.1.NO {
wrapItemAndSub = |
linkWrap = |
allWrap = |
ATagBeforeWrap = 0
doNotLinkIt = 1
stdWrap.htmlSpecialChars = 0
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10 {
field = title
wrap = <li>|
typolink.parameter.field = uid
}
30 = CONTENT
30 {
table = tt_content
select {
pidInList.field = uid //uid aus "pages" benutzen
orderBy = sorting
limit = 1
}
renderObj = FILES
renderObj {
references {
table = tt_content
fieldName = image
}
renderObj = COA
renderObj {
10 = LOAD_REGISTER
10 {
Counter.data = register:Counter
Counter.stdWrap.wrap = |+1
Counter.prioriCalc = intval
}
20 = IMAGE
20 {
file {
width = 263c
height = 155c
maxW = 263c
maxH = 155c
import.data = file:current:publicUrl
}
altText.field = title
imageLinkWrap = 1
imageLinkWrap {
enable = 1
typolink.parameter.field = uid
}
stdWrap.wrap = |
stdWrap.if {
value.data = register:Counter
isGreaterThan = 2
}
Counter.data = register:Counter
Counter.stdWrap.wrap = |+1
Counter.prioriCalc = intval
}
}
stdWrap.wrap = |</li>
}
40 >
}