Link-Service

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

deprecated ab Version 2.1.0. (siehe Dependencies-Service)

Beschreibung

Der Link-Service prüft Abhängigkeiten von Artikeln und sorgt dafür das bei Änderungen Artikel entsprechend neu generiert werden. Abhängigkeiten von Artikeln werden über die Content-Typen link, systemlink, navlink definiert. Der Link-Service prüft auch, ob sich Ergebnisse von Suchabfragen geändert haben. Die zu prüfenden Suchabfragen werden mit dem Content-Type query definiert.

Der Link-Service ist ein Scheduler, der in regelmäßigen Abständen (im Standardfall alle 10 Minuten) die Verlinkungen und Suchabfragen prüft. Stellt der Link-Service fest, das Artikel neu generiert werden müssen, wird die List der Artikel an den Publisher-Service übergeben. Dieser generiert die Artikel dann der reihe nach.

Dem Link-Service fällt noch eine weitere Aufgabe zu. Wird ein Artikel gelöscht, werden entsprechend der Link-Regeln und den Suchabfragen die nötigen Artikel generiert. Erst nachdem alle alle nötigen Seiten generiert wurden und somit sichergestellt ist, das der gelösche Artikel nicht mehr in den generierten Seiten verwendet wird, kann auch die Datei aus dem Publikationsbereich gelöscht werden. Der Link-Service stößt das Löschen aller zu löschenden Dateien an, wenn er ohne das ein Artikel generiert werden musste duchgelaufen ist. Nur in diesem Fall ist sichergestellt, das keine Seite mehr auf gelöschte Artikel verweist.

Abhängigkeiten durch Verlinkungen prüfen

Je nach Verwendetem Link (link, systemlink, navlink) wird anders auf Änderungen von Artikeln reagiert. Änderungen an Artikeln sind z.B. Änderungen am Artikelnamen, Änderungen an Artikelfelder oder auch Änderungen die sich auf die URL des Artikels beziehen (Dateiname des Artikels, Verzeichnis des Artikelpools oder Pfadänderungen, die durch das Verschieben eines Artikels in einen anderen Pool ergeben). Angenommen ein Artikel (A) verlinkt auf einen Artikel (B).

(A) --(Link-Typ)--> (B)
link
(A) wird generiert, wenn sich die URL von (B) geändert hat.
Dies ist z.B. der Fall wenn sich der Dateiname von (B) ändert, sich das Verzeichnis des Artikel-Pools von (B) ändert oder der Artikel (B) in einen andern Pool verschoben wird. Dieser Link-Typ ist z.B. für Links auf Medien sinnvoll, wo nur die URL des Mediums für Artikel (A) verwendet wird.
systemlink
(A) wird generiert, wenn sich etwas an Artikel (B) geändert hat.
Unabhängig davon welche Änderung an Artikel (B) vorgenommen wurde wird der Artikel (A) neu generiert. Damit ist sichergestellt, das Daten des Artikels (B), die von Artikel (A) verwendet werden auch auf dessen Seite aktuell gehalten werden.
navlink
(B) wird generiert, wenn sich etwas an Artikel (A) geändert hat.

Ändert sich etwas an Artikel (A) werden alle Artikeln neu generiert auf die dieser Artikel mit einem navlink verlinkt ist. Dieser Link kann für den Aufbau von Navigationsstrukturen verwendet werden. Für komplexe Navigationsstrukturen sollte aber sp:linktree verwendet werden.

Abhängigkeiten durch Suchabfragen prüfen

Artikel die über den Content-Type query Suchabfragen enthalten, werden über den Link-Service in regelmäßigen Abständen geprüft. Das Suchabfrageergebnis wird gespeichert und bei der nächsten Prüfung mit dem aktuellen Suchabfrageergebnis verglichen. Ist das Ergebnis unterschiedlich, wird der Artikel neu generiert. Enthält die Suchabfrage ein ORDER BY Statement, wird der Artikel auch neu generiert, wenn sich die Reihenfolge der beiden Suchabfragen-Ergebnisse unterschieden.