Search the FirstSpirit Knowledge Base
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?
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.
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.
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.
Diese Lösung vermeidet auf jeden Fall quadratische Laufzeiten der Generierung!
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?
Herr Bösebeck hat vorgeschlagen, über den Refernzgraphen zu gehen.
Das Vorgehen wäre dann wie folgt:
-> 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.
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.
Genau, Contentlist wäre eine Möglichkeit.
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?