ACordes
I'm new here

Contentstore – Inhalt iterieren

Jump to solution

Hallo,

ich möchte auf einer Artikel-Übersichtsseite Teaser eines angegebenen Ordners auslesen und ausgeben. Dazu habe ich das Absatz-Template "Artikel-Übersicht" zur Verfügung gestellt, in welchem man den auszulesenden Inhalts-Ordner referenziert (mittels Verweisvorlage).

Mein Ziel ist es jetzt, in meinem "Artikel-Übersicht"-Template die Seiten des angegebenen Ordners zu durchlaufen. Ich habe aber Probleme, an die NodeList zu kommen.

An den Ordner an sich komme ich ja mit source_folder.getNode (source_folder ist der Link). In dem Ordner liegen 3 Seiten. Also DACHTE ich, ich könnte die Seiten (NodeList) so bekommen: source_folder.getNode.getChildNodes. Ausgegeben wird mir hier aber nur der Name des Artikel-Ordners.

Wie komme ich an die ChildNodes eines Inhalts-Ordners, um sie zu durchlaufen?

0 Kudos
1 Solution

Accepted Solutions
MarcusDau
Occasional Collector

Ich habe dies mit einem Script gelöst. Dem Script wird aus der Absatzvorlage ein SiteStore-Folder f übergeben.

Hier ein Ausschnitt vom Script:

siteStore = context.getUserService().getStore(Store.SITE_STORE,true);

folder = siteStore.getStoreElement(f.getUid(),IDProvider.UidType.SITESTORE_FOLDER);

childs = folder.getChildren(PageRef.class, recursive);

iter = childs.iterator();

while(iter.hasNext()){

    PageRef pageRef = iter.next();

     ......

}

Denke, das sollte Dir weiterhelfen!

Grüße

Marcus

View solution in original post

0 Kudos
6 Replies
ACordes
I'm new here

Kleines Update: Mittels "source_folder.contentstoreref" bekomme ich immerhin das hier angezeigt: "[artikel_1:PAGESTORE]@a6bafb1".

Jetzt müsste ich es aber irgendwie schaffen, die Children des PAGESTOREs zu bekommen. Jegliche Versuche bislang sind ohne Erfolg.

Ich bin über jeden Hinweis / Denkanstoß dankbar.

0 Kudos

Hallo,

mir ist das Vorhaben noch nicht ganz klar.

Sie haben einen Ordner in der Inhalte-Verwaltung (Pagestore), der einige Artikel enthält, die sie gerne in einem Absatz "Artikel-Übersicht" anzeigen lassen wollen, oder?

Inwiefern sind hier Datenquellen (Contentstore) einbezogen? Kommen die Artikel aus solchen?

Viele Grüße

Rouven

0 Kudos

Sie haben Recht, das Ganze bezieht sich nur auf die Inhalteverwaltung, es hat mit Datenquellen nichts zu tun. Insofern dürfte mein zweiter Ansatz mit contentstoreref wenig Sinn ergeben (obwohl mir hier PAGESTORE zurückgegeben wird?).

Sie haben das Prinzip richtig nachvollzogen. Nur leider weiß ich nicht, wie ich an die Children meines referenzierten Inhalts-Ordners komme bzw. wie ich diese durchlaufe.

0 Kudos
MarcusDau
Occasional Collector

Ich habe dies mit einem Script gelöst. Dem Script wird aus der Absatzvorlage ein SiteStore-Folder f übergeben.

Hier ein Ausschnitt vom Script:

siteStore = context.getUserService().getStore(Store.SITE_STORE,true);

folder = siteStore.getStoreElement(f.getUid(),IDProvider.UidType.SITESTORE_FOLDER);

childs = folder.getChildren(PageRef.class, recursive);

iter = childs.iterator();

while(iter.hasNext()){

    PageRef pageRef = iter.next();

     ......

}

Denke, das sollte Dir weiterhelfen!

Grüße

Marcus

0 Kudos

Vielen Dank für die Antwort. Das hilft mir auf jeden Fall weiter, werde es nun auch mittels Script lösen.

0 Kudos

Jetzt habe ich doch noch eine Frage. Ich kann mir die Werte der Felder (Titel, Teaser – also einfache Textfelder) holen mit pageRef.getFormData().get(lang, "FELDNAME").get();

Zusätzlich benötige ich aber das Bild, dass im Formular gesetzt wird. Ich hänge an dem Punkt fest, an dem ich ein GraphicalMedium vom Formular bekomme. Damit kann ich ja über Picture-, Media-Object etc. alles bekommen, nur weiß ich nicht, wie ich an den relativen Pfad zum Bild komme.

Folgendes mache ich jetzt:

GraphicalMedium _picture = (GraphicalMedium) pageRef.getFormData().get(lang, "st_teaser_picture").get();

Hat jemand eine schlaue Idee, wie ich daraus jetzt ein <img> Tag bastle?

Oder kann ich mit meinem per $CMS_RENDER()$ eingebundenen Script Variablen an meine Absatzvorlage übergenen, um dort mit $CMS_REF()$ die Referenz zu bekommen?

Vielen Dank nochmal …

Edit: Das Problem lässt sich auch darauf übertragen, dass ich einen Link zur "Detailansicht", sprich der eigentlichen Page benötige. Hier weiß ich ebenfalls nicht, wie ich mir die Referenz ausgeben lasse.

Nachricht geändert durch Arne Cordes

0 Kudos