Search the FirstSpirit Knowledge Base
Hallo zusammen,
ich würde gerne die Metadaten eines Ordners in der gelben Struktur auslesen. Die Metadaten-Vorlage habe ich soweit angepasst, dass der Redakteur hier einen Titel angeben kann (meta_gallery_name).
In meiner Absatzvorlage kann der Redakteur einen Ordner über FS_REFERENCE auswählen:
<FS_REFERENCE name="st_folder" allowEmpty="no" hFill="yes" useLanguages="no">
<FILTER>
<ALLOW type="mediafolder"/>
</FILTER>
<LANGINFOS>
<LANGINFO lang="*" label="Ordner mit Bildern"/>
</LANGINFOS>
<PROJECTS>
<LOCAL name=".">
<SOURCES>
<FOLDER name="neue_galerie" store="mediastore"/>
</SOURCES>
</LOCAL>
</PROJECTS>
</FS_REFERENCE>
Im HTML-Bereich wird anhand der Ordners eine Liste mit im Ordner enthaltenen Bildern generiert, welche dann mittels for-Schleife ausgeben werden. Der Zugriff auf die Metadaten eines Bildes klappt hervorragend mit:
$CMS_FOR(x, media_list)$
...
Variante 1
$CMS_VALUE(ref(x).meta("meta_image_title"))$
// Variante 2
$CMS_VALUE(x.media.meta("meta_image_title"))$
...
$CMS_END_FOR$
Versuche ich dasselbe mit der Referenz auf den Ordner (st_folder), funktioniert das nicht. Weder $CMS_VALUE(st_folder.media.met("meta_gallery_name"))$ noch $CMS_VALUE(ref(st_folder).meta("meta_gallery_name"))$ funktioniert.
Kann mir jemand sagen, wie ich auf die Metadaten des Ordners zugreifen kann?
Danke!
Hallo Fabian,
hier hilft letztlich ein Blick in die Doku der Eingabekomponente "FS_REFERENCE": Oben rechts im grauen Kasten findest Du bei "Zu den Methoden" den Datentyp der FS_REFERENCE: TargetReference. Das .meta kann man nur auf einem Store-Objekt direkt aufrufen. Also musst Du erstmal an den MediaFolder kommen. Das geht ganz einfach mit .get()
$CMS_VALUE(st_folder.get().meta("meta_gallery_name"))$
Allgemeiner Hinweis zu Deinem Ansatz (nur Angabe eines Ordners): Das kann man theoretisch so machen, hat aber einen Nachteil: Die einzelnen Bilder werden hier nirgendwo direkt referenziert sondern durch reine Template-Logik ausgegeben. Dadurch sind sie nicht im Referenzgraph enthalten. Das muss nicht unbedingt schlecht sein (je nach Anwendungsfall), muss aber ggf. auch beim Freigabeworkflow berücksichtigt werden.
Viele Grüße
Michael
Hallo Fabian,
hier hilft letztlich ein Blick in die Doku der Eingabekomponente "FS_REFERENCE": Oben rechts im grauen Kasten findest Du bei "Zu den Methoden" den Datentyp der FS_REFERENCE: TargetReference. Das .meta kann man nur auf einem Store-Objekt direkt aufrufen. Also musst Du erstmal an den MediaFolder kommen. Das geht ganz einfach mit .get()
$CMS_VALUE(st_folder.get().meta("meta_gallery_name"))$
Allgemeiner Hinweis zu Deinem Ansatz (nur Angabe eines Ordners): Das kann man theoretisch so machen, hat aber einen Nachteil: Die einzelnen Bilder werden hier nirgendwo direkt referenziert sondern durch reine Template-Logik ausgegeben. Dadurch sind sie nicht im Referenzgraph enthalten. Das muss nicht unbedingt schlecht sein (je nach Anwendungsfall), muss aber ggf. auch beim Freigabeworkflow berücksichtigt werden.
Viele Grüße
Michael
Super, vielen Dank für deine Antwort mbergmann!
Zum Referenzgraph: was bedeutet das? :smileyconfused: Welche Nachteile entstehen mir daraus?
Am Ende soll halt eine Bildergalerie stehen, bei der der Redakteur nicht erst händisch jedes einzelne Bild z.B. einem FS_CATALOG hinzufügen muss.