Zum Inhalt springen

DAM Bild mit Typoscript ausgeben/rendern

Erstellt am 19. März 2012 · 3 Antworten · letzte Antwort am 21. März 2012

Tags: Frage

Thorsten1508 ·

Hallo,
ich kapier es einfach nicht. Es muss doch möglich sein ein über DAM eingepflegtes Bild abhängig vom aktuellen Datensatz ausgeben zu lassen.

Konkretes Beispiel:
Ich hab ne kleine Extension mit der ich ein eigenes Inhaltselement erstelle. Das Element hat u. a. ein Bild das über DAM eingepflegt wird.

Laut Doku sollte so ein Bild folgendermaßen ausgegeben werden können:

bild = IMAGE
 bild.file.import.cObject = USER
 bild.file.import.cObject {
     userFunc=tx_dam_tsfe->fetchFileList
     refField=tx_damttcontent_files
     refTable=tt_content
     additional.fileList.field=image
     additional.filePath=uploads/pics/
 }

Leider wird auf diese Weise nichts ausgegeben. Ich erreiche nur eine Ausgabe wenn ich über eine select Abfrage das Inhaltselement bestimme:

bildpfad=CONTENT
bildpfad {
table = tt_content
select {  
pidInList = 123
where = colPos=1
begin = 0
max = 1
languageField = sys_language_uid
}
renderObj = COA
renderObj {
   20 = TEXT
   20.cObject = USER
   20.cObject {
    userFunc = tx_dam_tsfe->fetchFileList
    refField = tx_damttcontent_files
    refTable = tt_content
    }
}
}

Siehe dazu auch einen anderen Fred von mir:
#109310

Wie stelle ich es an, dass ich einfach das Bild zum aktuellen Datensatz ausgeben lassen kann?

Vielen Dank,
Thorsten

zue ·

Hi,
tx_dam_tsfe->fetchFileList sucht sich die Referenzen ausgehend von der uid des aktuellen tt_content-Datensatzes raus. In Deinem ersten Beispiel gibt es die nicht, weil ja kein aktueller tt-content-Datensatz vorhanden ist. Deshalb funktionert auch das zweite.

Du kannst diese uid aber auch explizit über TypoScript setzen (Grobes Beispiel)

tt_content.stdWrap.append = USER
tt_content.stdWrap.append {
	userFunc = tx_dam_tsfe->fetchFileList
	refField=tx_damttcontent_files
	refTable=tt_content
	## gibt Referenzen zur der tt_content uid 1 aus
	refUid = 1
}

Und damit das ganze dynamisch wird, schönerweise auch mit stdWrap-Eigenschaften:

tt_content.stdWrap.append = USER
tt_content.stdWrap.append {
	userFunc = tx_dam_tsfe->fetchFileList
	refField=tx_damttcontent_files
	refTable=tt_content
	## gibt DAM-Referenzen zum aktuellen
	## tt_content Datensatz aus
	refUid.field = uid
}

Evtl hilft das schon weiter?

Thorsten1508 ·

Hallo und vielen vielen Dank 😃

Ja das hat mir weitergeholfen. Bzw. war es ja schon die Lösung die Du gepostet hast.

Mit folgendem TS Code bekomme ich das jeweilige Bild ausgegeben:

bild = IMAGE
bild.file.import.cObject = USER
bild.file.import.cObject {
     userFunc=tx_dam_tsfe->fetchFileList
     refField=tx_damttcontent_files
     refTable=tt_content
     refUid.field = uid
     }

Ich kapier halt nicht, dass überall dieser eine Codeschnipsel zu finden ist und der Teil mit "refUid.field = uid" nirgends erscheint...

Also nochmal vielen vielen Dank

zue ·

Freut mich, dass es so "einfach" zu lösen war. Wundert mich zwar, weil das Weglassen von "refUid.field = uid" dem Standardwert entspricht, ich kenn aber nicht Deine "Umgebung" des TypoScripts.

Ich kannte diese Funktionalität aber auch erst, weil ich mich vor ca. einer Woche damit beschäftigt hatte, und mir die PHP-Klasse zu Gemüte geführt habe.

Was sicher auch sein kann: Die Dokumentation hinkt hinterher, den ich habe noch eine alte Version vom DAM laufen, bei der es noch nicht möglich ist diesen Wert explizit zu setzen.

Und zu Deinem andere Thread: Ja, diese Klasse holt Dir lediglich die Pfadnamen als Komma-separierte Liste (falls mehrere Bilder vorhanden sind). Was fehlt sind (und so macht das DAM ja eigentlich nur Sinn) die Metainfos aus dem DAM-Datensatz (title, alt, caption)

Da ich da gerade noch am Knabbern bin, könnte ich eventuell demnächst eine Lösung haben. Bei Interesse würde ich diese auch Posten, stelle mir aber gerade die Frage an welcher Stelle in diesem Forum?