Zum Inhalt springen

Bild aus Ressourcen in ein TMENU

Erstellt am 24. Februar 2015 · 4 Antworten · letzte Antwort am 20. April 2015

Tags: Dateien & FAL, Bilder, TYPO3 6.x, Frage

chrickenh ·

Hallo Forum,

ich habe da - mal wieder - ein Problem, bei dem ich - mal wieder - nicht weiterkomme.

Es soll ein Menü werden, das am Ende im HTML-Code so aussehen soll:

<div class="ebene1">
  <div class="pkt">Punkt 1</div>
  <div class="ebene2">
    <div class="menubild"><img src="bilder/menubild_10.jpg"></div>
    <a href="#"><div class="menubild"><img src="bilder/menubild_1.jpg"></div>Punkt 1</a>
    <a href="#"><div class="menubild"><img src="bilder/menubild_2.jpg"></div>Punkt 2</a>
  </div>
</div>

<div class="ebene1">
  <div class="pkt">Punkt 1</div>
  <div class="ebene2">
    <div class="menubild"><img src="bilder/menubild_10.jpg"></div>
    <a href="#"><div class="menubild"><img src="bilder/menubild_1.jpg"></div>Punkt 1</a>
    <a href="#"><div class="menubild"><img src="bilder/menubild_2.jpg"></div>Punkt 2</a>
  </div>
</div>

<div class="ebene1">
  <div class="pkt">Punkt 1</div>
  <div class="ebene2">
    <div class="menubild"><img src="bilder/menubild_10.jpg"></div>
    <a href="#"><div class="menubild"><img src="bilder/menubild_1.jpg"></div>Punkt 1</a>
    <a href="#"><div class="menubild"><img src="bilder/menubild_2.jpg"></div>Punkt 2</a>
  </div>
</div>

Dazu habe ich den folgenden Typoscript-Code erzeugt, der auch soweit funktioniert:

lib.mainMenu = HMENU
lib.mainMenu.entryLevel = 0

lib.mainMenu.1 = TMENU
lib.mainMenu {
	entryLevel = 0
	1 {
		expAll = 1
		NO {
			linkWrap = <div class="ebene1"><div class="pkt">|</div></div>
			doNotLinkIt = 1
		}
		IFSUB = 1
		IFSUB {
			linkWrap = <div class="ebene1"><div class="pkt">|</div><div class="ebene2"> <div class="menubild"> <img src="/fileadmin/templates/bilder/menubild_10.jpg"> </div>
			doNotLinkIt = 1
		}
	}
	
	2 < .1	
	2 {
		
		wrap = | </div> </div>
		NO {
			linkWrap = <div class="menubild"><img src="/fileadmin/templates/bilder/menubild_3.jpg"></div>|
			ATagBeforeWrap = 1
			doNotLinkIt = 0
		}
		IFSUB = 0
	}
}

Das Problem, was ich dabei habe, ist folgendes: Die Bilder sollen aus den Ressourcen der Seiteneigenschaften ausgelesen werden. Dazu habe ich schon allerhand gefunden (u.a. #118214), aber wirklich helfen konnte mir das alles nicht. Im oben genannten Beispiel wurde das Menü zwar aufgebaut aber kein Bild geladen.
Früher (4.7) hatte ich für diese Zwecke einfach per Kickstarter eine neue Seiteneigenschaft eingeführt und konnte das Bild dann relativ einfach aus dem neu erzeugten Datenbankfeld auslesen. Die Möglichkeit habe ich nun (6.2.9) nicht mehr.

Kann mir bitte jemand helfen?

Lieben Gruß
Chricken

chrickenh ·

Halli Hallo,
ich bin nun einen Schritt weiter. Aber immer noch weit weg von einer Lösung.
Ich muss auch sagen, dass mir die ganze Thematik noch nicht so recht einleuchtet.

Anhand anderer Anleitungen und der Doku sieht mein Code nun so aus:

## Menu [Begin]
lib.mainMenu = COA
lib.mainMenu.wrap = <div id="menu">|</div>
lib.mainMenu {
	5 = HMENU
	5 {
		special = directory
		special.value = 1
		1 = TMENU
		1 {
			expAll = 1
			NO = 1
			NO {
				doNotLinkIt = 1
				stdWrap >
				stdWrap {
					cObject = COA
					cObject {
						10 = TEXT
						10.field = title
						
						20 = FILES
						20 {
							references {
								table = pages
								uid.data = page:uid
								fieldName = media
							}
							renderObj = IMAGE
							renderObj {
								file.import.field = media
								file.treatIdAsReference = 1
								altText.data = file:current:title
								wrap = |
							}
						}
					}
				}
			}
		}
		2 < .1
		2 {
			wrap = <ul class="cf">|</ul>
			wrapItemAndSub = <li class="cf">|</li>
		}
	}
}
## Menu [Begin]

Nun ist es immerhin so weit, dass Bilder angezeigt werden, wenn welche in den Ressources angelegt sind. Aber die Bilder, die angezeigt werden, sind vollkommen andere. Nämlich wird das "Lorem Ipsum"-Bild mit der Wendeltreppe angezeigt.
Das Problem ist vermutlich im renderObj, aber ich komme nicht weiter, weil ich die Möglichkeiten nicht kenne. Und die Typoscript Reference hilft mir auch nicht weiter.

Kann mir jemand aus diesem Problem helfen?
Lieben Gruß
Christian

Chrissli ·

Und auf welcher Seite steht das Lorem Ipsum Bild? Nur so ins Blaue geschossen: page.uid ( Zeile 26 ) fügt die uid der Seite ein auf der man gerade steht, entsprechend stammen alle Bilder auch von dieser Seite

Edit:
Ich verwende
uid.data = field:uid
in diesem Zusammenhang

chrickenh ·

Hi Chrissli,

danke für Deine Antwort.
Das Bild befindet sich überhaupt auf keiner der Seiten.
Genauer: Es hat sich auf der schon lange gelöschten Seite mit der ID 1 befunden.

Ich hab grad mal probiert, was passiert, wenn die Zeile 26 komplett auskommentiert ist: kein Unterschied.

Lieben Gruß
Christian

chrickenh ·

Habe in einer alten Installation (4.7) per Kickstarter die benötigte Extension erzeugt, exportiert, in 6.2 importiert -> funktioniert.