TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

DAM Dateipfade/Bildpfade ausgeben


Autor Nachricht
Verfasst am: 09. 02. 2012 [12:19]
Thorsten1508
Themenersteller
Dabei seit: 25.05.2010
Beiträge: 23
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:
TYPOSCRIPT
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 banghead.gif
Profil
Verfasst am: 13. 02. 2012 [14:31]
Thorsten1508
Themenersteller
Dabei seit: 25.05.2010
Beiträge: 23
Ich bin einen oder zwei Schritte weiter:

Also mit folgendem Code krieg ich das Bild ausgegeben:
TYPOSCRIPT
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:
TYPOSCRIPT
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 icon_rolleyes.gif

Bitte helfen. Danke
Profil
Verfasst am: 14. 02. 2012 [09:02]
LuP
Dabei seit: 12.04.2007
Beiträge: 279
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:
TYPOSCRIPT
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
Profil
Verfasst am: 15. 02. 2012 [07:57]
Thorsten1508
Themenersteller
Dabei seit: 25.05.2010
Beiträge: 23
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:

TYPOSCRIPT
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 icon_redface.gif

Könnte ich irgendwie auch auf andere Daten des DAM Objekts, wie z. B. copyright oder so zugreifen?

Vielen Dank
Profil
Verfasst am: 15. 02. 2012 [08:39]
LuP
Dabei seit: 12.04.2007
Beiträge: 279
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



[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 15.02.2012 um 09:02.]
Profil