hallo zusammen
ich habe per typoscript folgendes menü erstellt:
lib.mainNavi = HMENU
lib.mainNavi {
entryLevel=0
1 = TMENU
1 {
wrap = <ul>|</ul>
NO.wrapItemAndSub = <li>|</li>
expAll = 1
ACT = 1
ACT.wrapItemAndSub = <li class="active">|</li>
}
2 = TMENU
2{
wrap = <ul> | </ul>
NO.wrapItemAndSub.insertData=1
NO.wrapItemAndSub = <li>|</li>
expAll = 1
ACT = 1
ACT.wrapItemAndSub.insertData=1
ACT.wrapItemAndSub = <li class="active">|</li>
}
}
funktioniert alles richtig.
jetzt möchte ich bei JEDER seite unter "Resourcen --> Media" ein bild hinterlegen und im menü als data-image hinterlegen.
Am schluss sollte es so aussehen:
<li data-img="bildausmediafieldvonprodukte.jpg"><a href="#">Produkte</a></li>
<li data-img="bildausmediafieldvonausstellung.jpg"><a href="#">Ausstellung</a></li>
bildnamen sind natürlich erfunden, aber es geht darum, dass jedes bild aus der der jeweiliger seite geholt wird.
kann mir jemand helfen?
danke im voraus
Mit "NO.stdWrap.cObject = COA" kannst du dir die einzelnen Teile des Menus selbst zusammen basteln.
Über das FILES Objekt kannst du dann das media-Feld auslesen.
Hi,
dein Menü kann gekürzt werden auf:
lib.mainNavi = HMENU
lib.mainNavi {
entryLevel=0
1 = TMENU
1 {
wrap = <ul>|</ul>
expAll = 1
NO = 1
NO.wrapItemAndSub = <li>|</li>
CUR < .NO
CUR.wrapItemAndSub = <li class="active">|</li>
ACT < .CUR
}
2 < .1
}
Das ".insertData=1" in Level 2 kannst Du Dir sparen, da Du keine Felder wie "{field:subtitle}" in deinen wraps ausgibst.
Und das 1.NO ersetzen durch, bspw.:
NO = 1
NO {
allWrap = < li style="clear:both;">|</li>
# TMENU nicht standartmäßig verlinken, Link nur auf Seitentitel
doNotLinkIt = 1
# Menüpunkte werden durch cObject Array COA ersetzt
stdWrap.cObject = COA
stdWrap.cObject {
# Bild aus Seiteneigenschaften
20 = IMAGE
20.wrap = <div class="CSS-Klasse-für-höhe-breite-overflow:hidden-float:left">|</div>
20.file {
import.data = levelmedia:-1, slide
treatIdAsReference = 1
import.listNum = 0
}
# Seitentitel und verlinken
40 = TEXT
40.wrap = |
40.field = title
40.typolink.parameter.field = uid
}
}
HINWEIS: ab TYPO3 6.0 nötig: "treatIdAsReference = 1"
Durch "levelmedia:-1, slide" wird das auf der aktuellen Seite hinterlegte Bild, oder - wenn nicht vorhanden - das nächste Bild auf einer übergeordneten Seite der root-line genommen.
Sollte so funktionieren.
Quelle 1: https://jweiland.net/typo3/typoscript/bild-aus-den-seiteneigenschaften-auslesen-ab-typo3-60.html
Quelle 2: http://typo3-blog.net/tutorials/news/ausfuehrliches-tmenu.html