Hallo zusammen,
ich möchte eigentlich nur die Dateipfade einiger Bilder die auf einer Seite über dam eingepflegt wurden per Typoscript ausgeben lassen.
Das merkwürdige ist, dass ich es nicht einmal schaffe ein Bild per Typoscript ausgeben zu lassen. Mit folgendem Code aus dem Wiki bleibt der Marker bei mir einfach leer:
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/
}
Typo3 4.6.2
Dam 1.2.4
dam_catedit 1.2.2
dam_index 1.2.1
dam_ttcontent 1.2.2
Wie kann ich das erreichen?
Das muss doch möglich sein #angry#
Ich bin einen oder zwei Schritte weiter:
Also mit folgendem Code krieg ich das Bild ausgegeben:
bild = CONTENT
bild {
table=tt_content
select.where = colPos=0
renderObj = COA
renderObj {
10 = IMAGE
10.file.import.cObject = USER
10.file.import.cObject {
userFunc=tx_dam_tsfe->fetchFileList
refField=tx_damttcontent_files
refTable=tt_content
additional.fileList.field=image
additional.filePath=uploads/pics/
}
}
}
Das freut uns schon mal.
Den Pfad eines Bildes bekomme ich, wenn ich die uid angebe folgendermaßen:
bild_pfad = CONTENT
bild_pfad {
table = tx_dam
select {
# hier die pid des Mediafolders
pidInList = 16
join = tx_dam_mm_ref ON (tx_dam.uid = tx_dam_mm_ref.uid_local) join tt_content ON (tx_dam_mm_ref.uid_foreign = tt_content.uid)
#hier die uid des Bildelements#
where = tt_content.uid = 5
selectFields = title, copyright, file_name, file_path
}
renderObj = COA
renderObj {
20 = TEXT
20.field = file_path
20.wrap = |/
30 = TEXT
30.field = file_name
}
}
Wenn mir jetzt noch jemand sagen könnte wie das "select" aussehen müsste, damit ich z. B. den Pfad des ersten Elements in der linken Spalte der Seite mit der Pid 12 ausgeben könnte, dann wäre alles toll #paralyzed#
Bitte helfen. Danke
Hallo,
ich bin der Sache jetzt mal nachgegangen. Ohne auf die uid des Inhaltselements mit dem DAM-Bild in tx_dam_mm_ref.uid_foreign zu referenzieren, würde die SELECT-Klausel nicht funktionieren. tx_dam_mm_ref stellt die Relation zw. Lokal- und Fremdtabelle her. Deshalb klappt es in Deinem Beispiel für bild_pfad, weil hier tt_content.uid als Fremdschlüssel dient. Würdest Du die pid statt der uid des Inhaltselements nehmen, würde es an tx_dam_mm_ref scheitern.
Alternativ könnte man wie folgt an den Bildpfad kommen:
bild_pfad = TEXT
bild_pfad.cObject = USER
bild_pfad.cObject {
userFunc = tx_dam_tsfe->fetchFileList
refField = tx_damttcontent_files
refTable = tt_content
refUid.cObject = TEXT
refUid.cObject.value = 12
}
VG,
LuP
Hallo und schon mal vielen Dank,
das hat mir sehr weiter geholfen.
Mit folgendem Code bekomme ich jetzt die gewünschte Ausgabe des Pfades eines bestimmten Inhaltselements:
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
}
}
}
Allerdings versteh ichs leider nicht so ganz :o
Könnte ich irgendwie auch auf andere Daten des DAM Objekts, wie z. B. copyright oder so zugreifen?
Vielen Dank
Hallo,
wow, genial!
In Deiner Lösung hast Du die Einschränkung der UserFunc von DAM raffiniert umgegangen, indem Du vorab in der SELECT-Klausel die Anzahl der Rückgabewerte mit Angabe von begin und max auf 1 limitiert hast. Zusätzlich hast Du where = colPos=1 angegeben. Mit all diesen Bedingungen wird zwingend das erste Element aus colPos = 1 genommen und somit hast Du die uid in der UserFunc nicht angeben müssen. Klasse!
Ich habe jetzt mal die UserFunc von DAM unter die Lupe genommen. Leider werden von ihr nur Pfade zurückgeliefert.
Edit: Typo
VG,
LuP