Version: GSB 7Dynamische Seiten
Dynamische Seiten, automatisch generierte Übersichtsseiten oder Ergebnisseiten von Suchanfragen werden auf der Basis von speziellen Software-Komponenten zur Laufzeit zusammengestellt. Beispielsweise könnte ein Webauftritt eine Übersichtsseite enthalten, die eine Liste der zehn aktuellsten Veröffentlichungen enthält (vgl. Abbildung 9). Um diese Seite nicht nach jeder Veröffentlichung erneut anpassen zu müssen, bietet es sich an, diese Aufgabe vom System durchführen zu lassen.
Weiterführende Informationen
Die zentralen Dokumenttypen zur Modellierung von dynamischen Seiten sind im Paket Core.Content.FunctionalEntities definiert und in der folgenden Übersicht aufgeführt:
- DynDocSearchEnt und SearchResultSet ermöglicht die Definition der Query-Bedingungen zur dynamischen Zusammenstellung relevanter Dokumente).
- GenericDynCatalog realisiert einen dynamischen Katalog. Das heißt, die über das DynDocSearchEnt oder SearchResultSet ermittelten Dokumente können z.B. lexikographisch sortiert und unter dem jeweiligen Anfangsbuchstaben angezeigt werden.
- GenericTable realisiert eine tabellarische Zusammenstellung der dynamisch ermittelten Dokumente (vgl. Abbildung 9)
- GenericJSPEnt ermöglicht die Implementierung individueller Businesslogik.
Die Ermittlung einer dynamischen Zusammenstellung erfolgt auf der Basis von Lucene Queries. Nähere Informationen zur Suche bzw. zur Lucene und/oder Solr Anbindung finden sich im Dokument GSB7/Suche.
Weiterführende Informationen zur Konfiguration dynamischer Seiten finden sich in den folgenden Dokumenten:
- GSB7/SL_Handbuch_Site_Manager beschreibt die Organisation und Konfiguration der dynamischen Seiten der Standardlösung.
- GSB7/SL_Konfigurationshandbuch dokumentiert die Konfiguration der in der Standardlösung vorhandenen dynamischen Seiten.
- GSB_CMDetails enthält die Spezifikation des Content Modells. Im Paket: Core.Content.FunctionalEntities sind die relevanten Dokumenttypen zur Modellierung dynamischer Seiten aufgeführt.
- Die Ermittlung der dynamischen Zusammenstellung erfolgt mit Hilfe von Lucene Queries. Allgemeine Informationen zur Open Source Suchmaschine Lucene finden sich auf der WebSite zum Jakarta Projekt unter der URL http://jakarta.apache.org/lucene/docs/index.html.
Suchanfragen
Dynamische Seiten werden mithilfe der Suchanfragen bzw. Dokumente des Typs DynDocSearchEnt oder SearchResultSet erstellt. Die DynDocSearchEnt- und SearchResultSet-Dokumente liefern eine Liste von LanguageEnt-Dokumenten zurück, die zur Laufzeit anhand einfacher Suchkriterien ermittelt werden.
Die Dokumente des Typs DynDocSearchEnt undSearchResultSet bieten folgende Konfigurationsmöglichkeiten:
- der Bereich bzw. das Verzeichnis, das untersucht werden soll,
- Dokumenttypen, die inklusive oder exklusive ihrer abgeleiteten Dokumente gesucht werden sollen,
- Dokumenttypen, die explizit nicht berücksichtigt werden sollen.
- Dauer, für die das Suchergebnis mindestens gecacht werden soll
- das Sortierkriterium
- eine frei definierbare Suchanfrage
Die frei definierbare Suche kann im Feld „additionalQuery“ eine Anfrage enthalten, die auf der Lucene Suchsyntax basiert. Dazu wird eine Suchanfrage in Ausdrücke und Operatoren unterteilt. Ein einzelner Ausdruck ist ein Wort wie z.B. "Hallo". Eine Phrase ist eine Gruppe von Wörtern, von Anführungszeichen umschlossen, wie "Hallo Welt". Mehrere Ausdrücke können mit Hilfe boolescher Operatoren verbunden werden. Die Suchmaschine unterstützt Felddaten (z.B. Dokumenttitel und Inhalt). Bei einer Suchanfrage kann man entweder ein Feld spezifizieren oder das Standardfeld benutzen. Die Feldnamen hängen von der spezifischen Implementierung ab.
Weiterführende Informationen
Weiterführende Informationen zum Thema finden sich in den folgenden Dokumenten:
- GSB_CMDetails,Paket: Core.Content.FunctionalEntities, Dokumenttyp DynDocSearchEnt und SearchResultSet
- GSB7/SL_Handbuch_Site_Manager beschreibt die Konfiguration von Suchanfragen.
Invalidierung von Timern
Dynamische Seiten erstellen aktuelle Übersichtsseiten automatisch auf der Basis von Suchanfragen. Damit nicht bei jedem Abruf einer Seite eine Suchanfrage ausgeführt und durch das System gerendert werden muss, werden dynamische Seiten nach dem ersten Aufruf für einen gewissen Zeitraum im Cache des Systems abgelegt. Hierdurch gewinnt das Gesamtsystem signifikant an Performance.
Der Zeitraum, wie lange eine dynamische Seite im Cache abgelegt wird, kann konfiguriert werden. In der Regel werden dabei Konfigurationseinstellungen gewählt, welche die zugehörigen Suchanfragen alle
- 15 Minuten
- 60 Minuten
- 3 Stunden
- 6 Stunden
- 24 Stunden
aktualisieren.
Der Nachteil dieser Einstellungen ergibt sich in der Redaktionsumgebung, wenn der Redakteur bei einer Änderung die voreingestellte Zeit abwarten muss, um die Änderungen in der Vorschau kontrollieren zu können.
Um im Redaktionsbetrieb unnötige Verzögerungen zu vermeiden, wurden die dynamischen Seiten um einen Mechanismus erweitert, durch den der Timer einer dynamischen Seite in der Vorschau gezielt zurückgesetzt werden kann. Dadurch wird die Darstellung im Cache gelöscht, so dass nach einem erneuten Laden der Seite der aktuelle Sachstand angezeigt wird.
Auf der Live Site steht den Administratoren innerhalb der CoreMedia Administration eine spezielle Seite zur Verfügung, über die die Timer einzelner Seiten gezielt zurückgesetzt werden können.
Darüber hinaus steht - sofern der TypDynDocSearchEnt sowie eine nur Lucene basierte Suche eingesetzt wird - SiteAdministratoren und Redakteuren mit dem Timer Invalidation Manager (TIM) innerhalb des Mandanten GSBAdmin eine Möglichkeit zur ad hoc – Invalidierung dynamischer Seiten zur Verfügung.
Weiterführende Informationen
Weiterführende Informationen zum Thema finden sich in den folgenden Dokumenten:
- GSB7/SL_Konfigurationshandbuch beschreibt die Konfiguration zur Invalidierung der Timer im Preview durch die Redakteure.
- [DeveloperManual DeveloperManual] beschreibt die CoreMedia-Administrationsseiten, die unter anderem auch die Invalidierung von Timern durch die Administratoren ermöglichen
Tabellen und Listen
Die Elemente einer automatisch generierten Übersichtsseite können mithilfe von Suchanfragen (DynDocSearchEnt oder SearchResultSet) bestimmt werden. Die Darstellung der zurück gelieferten Dokumente kann beispielsweise durch die Zuweisung eines Darstellungstemplates im Navigationsziel erfolgen. Damit werden dann die Ergebnisdokumente des Layout-Dokuments jeweils einzeln und nacheinander dargestellt.
Häufig möchte man aber die Ergebnisdokumente in einer Tabelle oder Übersichtsseite in einem gemeinsamen Layout darstellen. Zu diesem Zweck dient der Dokumenttyp GenericTable.
GenericTable-Dokumente ermitteln die verfügbaren/darzustellenden Dokumente mithilfe von Suchanfragen und/oder stellen die verlinkten Dokumente in der angegebenen Tabellenstruktur dar.
Weiterführende Informationen
Weiterführende Informationen zum Thema finden sich in den folgenden Dokumenten:
- GSB_CMDetails: Paket: Core.Content.FunctionalEntities, Dokumenttypen GenericTable, DynDocSearchEnt und SearchResultSet
- GSB7/SL_Handbuch_Site_Manager beschreibt die Konfiguration einer generischen Tabelle.
- GSB7/SL_EditorDoctypes beschreibt den Dokumenttyp anhand der Standardlösung.
Kataloge und Glossare
Kataloge bzw. Lexika bieten für diverse Dokumenttypen die Möglichkeit, diese in einem Katalog zu präsentieren. Neben Begriffen (reines Begriffslexikon) werden häufig
- Bilder bzw. Multimedia-Dokumente
- Downloads oder
- Personenverzeichnisse
in einem Katalog präsentiert. Neben einem Gesamtkatalog existiert ebenso die Möglichkeit, Themenkataloge zu erstellen, die eine Teilmenge der Einträge des Gesamtkatalogs darstellen. Im Gesamtkatalog werden alle Beiträge aufgenommen wohingegen in den Themenkatalogen nur die Beiträge zu finden sind, die mit den Themen-Klassifizierungen dem aktuellen Thema zugeordnet sind. Zu diesem Zweck dient der Dokumenttyp GenericDynCatalog.
Der in Abbildung 10 exemplarisch dargestellte Katalog stellt ein Glossar zur Verfügung, das Glossar-Einträge alphabetisch, mithilfe der speziellen Katalog-Navigationslogik sortiert, darstellt.
Die Darstellung im unteren Bereich des Glossars ist dreigeteilt: Im Kopf befinden sich die Buchstaben des Alphabets. Links darunter befindet sich eine alphabetisch sortierte Liste aller Glossareinträge mit gleichem erstem Buchstaben. In der Liste wird jeweils die Überschrift ausgegeben, die mit einem Hyperlink zum entsprechenden Glossareintrag verknüpft ist. In diese Liste werden alle in Frage kommenden Glossareinträge mit dem ausgewählten Anfangsbuchstaben aufgenommen.
Beim Aufruf des Glossars ist der untere Bereich leer. Es werden erst Einträge in den linken Teil des unteren Bereichs eingefügt, wenn im oberen Bereich ein Buchstabe ausgewählt wurde.
Falls ein Eintrag auf der obersten Ebene selektiert wird, werden auf der zweiten Ebene die Dokumente des zugehörigen Unterordners dargestellt. Falls auf der zweiten Ebene ein Dokument selektiert wird, so wird die zweite Ebene ausgeblendet, und in der dritten Ebene wird dieses Dokument separat dargestellt.
Ein Katalog auf der Basis eines GenericDynCatalog-Dokuments hat drei Ebenen, dabei können gleichzeitig entweder zwei oder drei sichtbaren Ebenen des Katalogs dargestellt werden. Der in Abbildung 10 dargestellte Katalog stellt die drei Katalogebenen gleichzeitig dar.
Bei einem Katalog auf zwei Ebenen wird die oberste Katalogebene entweder
- zusammen mit der zweiten Ebene oder
- mit der dritten Katalogebene
auf einer Seite dargestellt.
Die oberste Ebene des Katalogs (z. B. alphabetische Links, Jahreszahlen) wird durch die Verlinkung der Suchordner-Dokument bzw. der Titel festgelegt.
Weiterführende Informationen
Weiterführende Informationen zum Thema finden sich in den folgenden Dokumenten:
- GSB_CMDetails: Paket: Core.Content.FunctionalEntities, Dokumenttypen GenericDynCatalog, DynDocSearchEnt und SearchResultSet
- GSB7/SL_Handbuch_Site_Manager beschreibt den Dokumenttyp GenericDynCatalog und seine Konfiguration.
- GSB7/SL_EditorDoctypes beschreibt den Dokumenttyp GenericDynCatalog anhand der Konfiguration für die Standardlösung
Web-Archive
Das allgemeine Interesse an Dokumenten wie Kurznachrichten oder Pressemeldungen auf Webauftritten ist in der Regel nur für einen begrenzten Zeitraum besonders hoch. Danach nimmt das Interesse an derartigen Dokumenten meistens deutlich ab, sodass nur noch in Einzelfällen auf diese Dokumente zugegriffen wird.
Archive stellen einen gängigen Weg dar, das aktuelle Angebot von älteren Veröffentlichungen zu trennen. Innerhalb der einzelnen Archive kann dann auf Basis der „Expertensuche“ gezielt nach bestimmten Dokumenten gesucht werden.
Die Archivierung von Dokumenten auf den Websites der Mandanten geschieht automatisiert anhand der Mandantenkonfiguration. Eine Verschiebung innerhalb des CMS findet nicht statt. Um für unterschiedliche Dokumenttypen eine Archivierung auf der Live Site zu ermöglichen, muss bei der Konfiguration der Dokumenttypen berücksichtigt werden, dass die entsprechenden Attribute der Dokumenttypen (moveToArchive und dateOfIssue) im Editor verfügbar gemacht werden. Bei der Erstellung eines Dokuments kann dann zum Beispiel das Attribut „moveToArchive“ mit dem Datum vorbelegt werden, dass sich aus dem aktuellen und dem für diesen Dokument-Typen konfigurierten Archivierungszeitraum ergibt. Diese Vorbelegung kann entweder mit einem bestimmten Wert initialisiert oder vom Redakteur durch einen Dokumenten-spezifischen Wert überschrieben werden.
Ein konkretes Archiv kann dann auf der Basis der dynamischen Dokumentauswahl (DynDocSearchEnt oder SearchResultSet) realisiert werden. Hier kann beispielsweise der Site-Administrator konfigurieren, ob
- ausschließlich nicht archivierte Dokumente
- ausschließlich archivierte Dokumente
- sowohl archivierte als auch nicht-archivierte Dokumente
bei der Suche berücksichtigt werden sollen.
Weiterführende Informationen
Weiterführende Informationen zum Thema finden sich in den folgenden Dokumenten:
- GSB_CMDetails: Paket: Core.Content.FunctionalEntities, Dokumenttypen DynDocSearchEnt, SearchRssultSet und DocumentEnt
- GSB7/SL_SearchResultSet beschreibt die Konfiguration der im Mandaten Standardlösung vorhandenen Archive
Sitemap
CoreMedia bietet standardmäßig keine adäquate Möglichkeit, eine Sitemap automatisch zu erstellen. Der GSB besitzt Erweiterungen, die eine automatische Erstellung einer Sitemap ermöglichen.
Basierend auf den definierten Navigationselementen (NavNode) und einem eindeutig festgelegten Sitemap-Knoten sowie einem speziellen Sitemap-Darstellungstemplate wird der Aufbau der Sitemap über ein GenericJSPEnt-Dokument spezifiziert. Innerhalb des GenericJSPEnt-Dokument kann sehr einfach festgelegt werden, welche Elemente in der Sitemap dargestellt werden sollen und welche Navigationstiefe innerhalb der Sitemap berücksichtigt werden soll.
Weiterführende Informationen
Weiterführende Informationen zum Thema finden sich in den folgenden Dokumenten:
- GSB7/Basiskonfiguration_Mandant beschreibt exemplarisch die Konfiguration einer Sitemap
- GSB7/SL_Handbuch_Site_Manager beschreibt das Anlegen einer Sitemap
- GSB_CMDetails: Paket: Core.Content.FunctionalEntities, Dokumenttyp GenericJSPEnt