Questions & Answers

nicbel
I'm new here

Template Programmierung - Inhalte-Verwaltung durchlaufen

Hallo community,

รคhnlich wie bei dem Beitrag Medienordner auslesen versuche ich alle Inhaltsseiten vom Wurzelknoten an zu durchlaufen. Leider will es nicht funktionieren. Die Synthax in einem Skript wรคre:

import de.espirit.firstspirit.access.store.Store;

import de.espirit.firstspirit.access.store.pagestore.Page;

us = context.getUserService();

langs = context.getProject().getLanguages();

store = us.getStore(Store.Type.PAGESTORE, false);

context.logInfo("" + store.getClass());

children = store.getChildren(Page.class,true);

childIt = children.iterator();

while(childIt.hasNext()) { ...}

Aber wie sieht das im Template aus?

0 Kudos
10 Replies
gockel
Crownpeak employee

Hallo,

hier stellt sich mir zunรคchst die Frage nach dem Sinn hinter einer solchen Iteration, die im Hinblick auf die in FS verwaltbaren Mengengerรผste und der damit einhergehenden Performance als absolut kritisch zu bewerten ist.

Kรถnnten Sie die dahinterstehenden Anforderungen vielleicht erlรคutern.

0 Kudos

An jeder Inhaltsseite sollen Schlagworte gepflegt werden und รผber eine Absatzvorlage sollen Schlagworte ausgewรคhlt werden kรถnnen und in der Ausgabe eine Linkliste erscheinen mit allen Inhalten welche die ausgewรคhlten Schlagworte haben.

0 Kudos
boesebeck
Crownpeak employee

Hallo,

ich wรผrde die Liste der Schlagworte innerhalb einer Tabelle ablegen, die dann รผber eine ContentList / ComboBox / Linkliste in einer Seite eingebunden wird. So kรถnntest du spรคter รผber den Referenzgraph auf den Datensatz herrausfinden wo der Datensatz verlinkt/referenziert wird.

0 Kudos

Diese Lรถsung vermeidet auf jeden Fall quadratische Laufzeiten der Generierung!

Peter
0 Kudos

Die Schlagworte liegen in einer Datenbank und kรถnnen im Seitentemplate รผber das Objekt

CMS_INPUT_LIST ausgewรคhlt werden. Aber damit habe ich doch noch keine Zuordnung zur Seitenreferenz geschaffen. Brauche ich nicht dann noch eine Zuordnungstabelle Referenz und Schlagworte? Wie kann ich im Seitenvorlagen-Template einrichten, dass ich direkt in die Datenquelle schreibe?

0 Kudos

Herr Bรถsebeck hat vorgeschlagen, รผber den Refernzgraphen zu gehen.

Das Vorgehen wรคre dann wie folgt:

  • Auf der Seite werden Schlagworte verlinkt.
  • Jedes Schlagwort ist ein Eintrag in den Datenquellen (de.espirit.or.schema.Entity).
  • รœber de.espirit.firstspirit.access.store.templatestore.Schema#getIncomingReferences(Entity) bekommt man alle Knoten, die ebenfalls dieses Schlagwort referenzieren.
  • Fรผr referenzieredeKnoten aus dem Inhaltebereich muss dann noch auf die gleiche Weise der รœbergang in die Struktur gemacht werden.

-> Damit hat man dann eine Menge von Knoten, die dieses Strukturelement referenzieren. Daraus kann man dann mit normalen Templatemitteln die von Ihnen gewรผnschten Links erzeugen.

Es bietet sich an, diese Logik in einer Bibliothek zu kapseln, wo man auch ein Caching einbauen kann, damit bei der Generierung die Listen fรผr ein Schlagwort nicht mehrfach aufgebaut werden mรผssen.

Peter
0 Kudos

Hallo Herr Jodeleit,

sie meinen die Datenbank-Eintrรคge (Schlagwรถrter) werden รผber eine  Contentlist in die Seitenvorlage eingebunden und kรถnnen dort ausgewรคhlt  werden. Diese Referenzierung kann dann hinterher ausgelesen werden.

0 Kudos

Genau, Contentlist wรคre eine Mรถglichkeit.

Peter
0 Kudos

Ich hatte vor die Auswertung im Template zu machen. Quasi eine Absatzvorlage fรผr Linklisten die alle Referenzen mit den angegebenen Schlagwรถrtern ausgeben. Habe aber Probleme mit der Synthax. Wie komme ich zum Beispiel an das Schema um die Knoten auszulesen?

0 Kudos

Type a product name