Dependencies-Service

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

Ab Version 2.1.0

Beschreibung

Der Dependencies-Service hat die Aufgabe alle Änderungen des Systems zu überwachen und alle Artikel, die von den Änderungen betroffen sind, neu zu generieren.

Um entscheiden zu können welche Artikel neu generiert werden müssen, wird während der Generierung ermittelt welche Daten das Template anfordert. Gespeichert werden ID und Feldname der angeforderten Daten. Diese gepeicherte ID-Feldname Kombination wird dann auf Änderungen überwacht. Für jeden Publikationsbereich werden diese Daten separat gespeichert.


Auf Änderungen reagieren

Die Überwachung der Felder elements und allElements ist im Standard-Fall deaktiviert, da in alt-Systemen eine zu höhe Anzahl an Abhängigkeiten existieren könnten.
  • Neues Element
    • Es werden alle Artikel neu generiert, für die das Feld elements des übergeordneten Pools des neuen Elementes überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allElements aller übergeordneten Pools des neuen Elementes überwacht wird.
  • Neuer Pool
    • Es werden alle Artikel neu generiert, für die das Feld pools des übergeordneten Pools des neuen Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allPools aller übergeordneten Pools des neuen Pools überwacht wird.
  • Neues Element / Neuer Pool
    • Enthält das neue Element / der neue Pool Verknüpfungen wird geprüfen ob die Verknüpfungsziele Suchabfragen besitzen. In diesem Fall werden die Suchabfragen der Artikels ausführen. Bei Änderungen von Suchergebnissen werden die entsprechenden Verknüpfungsziele neu generiert.
    • Suchergebnisse beliebiger Suchabfragen können sich geändert haben. Diese Abhängigkeiten werden durch regelmäßiges ausführen der Suchabfragen und Prüfung von Änderungen der Suchergebnisse erkannt. Es werden die Artikel neu generiert die eine Suchabfrage verwenden, dessen Suchergebnis sich geändert hat.
    • Existieren Verknüpfungen auf andere Elemente, werden alle Artikel neu generiert auf die verlinkt wurde und die das Feld referrerLinks verwendet haben.
  • Element geändert
    • Wenn sich der Dateiname geändert hat, werden alle Artikel neu generiert, für die das Feld filename oder url des geänderten Elementes überwacht wird.
    • Wenn sich der originale Dateiname geändert hat, werden alle Artikel neu generiert, für die das Feld originalFilename des geänderten Elementes überwacht wird.
  • Template-Suffix geändert
    • Wenn sich der Suffix eines Template geändert hat, werden alle Artikel neu generiert, für die das Feld suffix des geänderten Templates überwacht wird. Weiter werden alle Artikel neu generiert bei denen sie der Dateiname der Seite aufgrund des geänderten Suffix ändert. Alle so generierten Artikel besitzen dadurch eine neue URL, so das anschließend alle Artikel neu generiert werden, für die das Feld url der generierten Artikel überwacht wird.
  • Pool geändert
    • Wenn sich das Verzeichnis geändert hat, werden alle Artikel neu generiert, für die das Feld dir des geänderten Pools überwacht wird. Weiter werden alle Artikel des geänderten Pools und alle Artikel aller Unterpools neu generiert. Alle so generierten Artikel besitzen dadurch eine neue URL, so das anschließend alle Artikel neu generiert werden, für die das Feld url der generierten Artikel überwacht wird.
    • Bei Änderung von Personalisierungsdaten werden alle Artikel neu generiert, die diese Personalisierungsdaten verwendet.
  • Element / Pool geändert
    • Es werden alle Artikel neu generiert, für die das Feld * des geänderten Elementes/Pools überwacht wird.
    • Es werden alle Artikel generiert, für die die neuen, geänderten oder gelöschten Content-Felder des geänderten Elementes/Pools überwacht werden.
    • Enthält das Element / der Pool neue Verknüpfungen wird geprüfen ob die Verknüpfungsziele Suchabfragen besitzen. In diesem Fall werden die Suchabfragen der Artikels ausführen. Bei Änderungen von Suchergebnissen werden die entsprechenden Verknüpfungsziele neu generiert.
    • Wurden bestehende Verknüpfungen des Elementes / des Pools gelöscht wird geprüfen ob die Verknüpfungsziele Suchabfragen besitzen. In diesem Fall werden die Suchabfragen der Artikels ausführen. Bei Änderungen von Suchergebnissen werden die entsprechenden Verknüpfungsziele neu generiert.
    • Suchergebnisse beliebiger Suchabfragen können sich geändert haben. Diese Abhängigkeiten werden durch regelmäßiges ausführen der Suchabfragen und Prüfung von Änderungen der Suchergebnisse erkannt. Es werden die Artikel neu generiert die eine Suchabfrage verwenden, dessen Suchergebnis sich geändert hat.
    • Sind Verknüpfungen erzeugt, geändert oder gelöscht worden, werden alle Artikel neu generiert auf die verlinkt wird/wurde und die das Feld referrerLinks verwendet haben.
  • Artikel publiziert
    • Es werden alle Artikel neu generiert, für die das Feld url des publizierten Artikels überwacht wird.
    • Suchergebnisse beliebiger Suchabfragen können sich geändert haben. Diese Abhängigkeiten werden durch regelmäßiges ausführen der Suchabfragen und Prüfung von Änderungen der Suchergebnisse erkannt. Es werden die Artikel neu generiert die eine Suchabfrage verwenden, dessen Suchergebnis sich geändert hat.
  • Artikel depubliziert
    • Es werden alle Artikel neu generiert, für die das Feld url des depublizierten Artikels überwacht wird.
    • Suchergebnisse beliebiger Suchabfragen können sich geändert haben. Diese Abhängigkeiten werden durch regelmäßiges ausführen der Suchabfragen und Prüfung von Änderungen der Suchergebnisse erkannt. Es werden die Artikel neu generiert die eine Suchabfrage verwenden, dessen Suchergebnis sich geändert hat.
  • Element gelöscht
    • Es werden alle Artikel neu generiert, für die das Feld elements des übergeordneten Pools des gelöschten Elementes überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allElements aller übergeordneten Pools des gelöschten Elementes überwacht wird.
  • Pool gelöscht
    • Es werden alle Artikel neu generiert, für die das Feld pools des übergeordneten Pools des gelöschten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allPools aller übergeordneten Pools des gelöschten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, die noch die Personalisierungsdaten des Pools verwenden.
  • Element / Pool gelöscht
    • Alle Artikel, die das gelöschte Element / den gelöschten Pool verwendet haben werden neu generiert.
    • Alle Suchabfragen dessen Treffer das gelöschte Elemente / den gelöschten Pool enthalten, werden ausgeführt und Artikel, die diese Suchabfragen verwenden werden neu generiert.
    • Suchergebnisse beliebiger Suchabfragen können sich geändert haben. Diese Abhängigkeiten werden durch regelmäßiges ausführen der Suchabfragen und Prüfung von Änderungen der Suchergebnisse erkannt. Es werden die Artikel neu generiert die eine Suchabfrage verwenden, dessen Suchergebnis sich geändert hat.
  • Element verschoben
    • Es werden alle Artikel neu generiert, für die das Feld parent des verschobenen Elementes überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld path des verschobenen Elementes überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld elements des ursprünglichen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld elements des neuen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allElements aller ursprünglichen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allElements aller neuen übergeordneten Pools überwacht wird.
    • Suchergebnisse beliebiger Suchabfragen können sich geändert haben. Diese Abhängigkeiten werden durch regelmäßiges ausführen der Suchabfragen und Prüfung von Änderungen der Suchergebnisse erkannt. Es werden die Artikel neu generiert die eine Suchabfrage verwenden, dessen Suchergebnis sich geändert hat.
  • Pool verschoben
    • Es werden alle Artikel neu generiert, für die das Feld parent des verschobenen Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld path des verschobenen Pools und seinen Unterpools und Unterelementen überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld pools des ursprünglichen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld pools des neuen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allPools aller ursprünglichen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allPools aller neuen übergeordneten Pools überwacht wird.
    • Wenn sich der Verzeichnispfad des neue übergeordneten Pools von dem des ursprünglichen übergeordneten Pools unterscheidet, werden alle Artikel des Pools und alle Artikel aller Unterpools neu generiert. Alle so generierten Artikel besitzen dadurch eine neue URL, so das anschließend alle Artikel neu generiert werden, für die das Feld url der generierten Artikel überwacht wird.
    • Suchergebnisse beliebiger Suchabfragen können sich geändert haben. Diese Abhängigkeiten werden durch regelmäßiges ausführen der Suchabfragen und Prüfung von Änderungen der Suchergebnisse erkannt. Es werden die Artikel neu generiert die eine Suchabfrage verwenden, dessen Suchergebnis sich geändert hat.
  • Neuer Symlink
    • Es werden alle Artikel neu generiert, für die das Feld stepParent des originalen Elementes überwacht wird, für den der Symlink angelegt wurde.
    • Es werden alle Artikel neu generiert, für die das Feld elements des übergeordneten Pools des neuen Symlink überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allElements aller übergeordneten Pools des neuen Symlink überwacht wird.
  • Symlink gelöscht
    • Es werden alle Artikel neu generiert, für die das Feld stepParent des originalen Elementes überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld elements des übergeordneten Pools des gelöschten Symlink überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allElements aller übergeordneten Pools des gelöschten Symlink überwacht wird.
  • Symlink verschoben
    • Es werden alle Artikel neu generiert, für die das Feld stepParent des originalen Elementes überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld elements des ursprünglichen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld elements des neuen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allElements aller ursprünglichen übergeordneten Pools überwacht wird.
    • Es werden alle Artikel neu generiert, für die das Feld allElements aller neuen übergeordneten Pools überwacht wird.

Zu überwachende Felder protokollieren

Bestimmte Feldnamen, die auf Änderungen identisch reagieren müssen werden zu einem symbolischen Feldnamen zusammengefasst. Z.B. wird url, absoluteUrl und relativeUrl zu dem Feldnamen url zusammengefasst. Auch Funktionsaufrufe wie url(publisher) werden überwacht.

Es gibt Felder, bei denen auf jede Änderung die Seite neu generiert werden muß. Für diese Felder wird der Feldname * protokolliert.

Hier die vollständige Liste aller überwachten Felder

Feldnamen protokollierter Feldnamen neu Generierung
name name
  • Name des Elements wurde geändert
comment comment
  • Kommentar des Elements wurde geändert
type type
  • Typ des Elements wurde geändert
version *
  • jede Änderung
changedBy *
  • jede Änderung
changed *
  • jede Änderung
url

absoluteUrl

relativeUrl

isPublished

hasValidUrl

external(für Resource-Artikel)

url
  • Dateiname geändert
  • Verzeichnis eines übergeordneten Pools geändert
  • Übergeordneter Pool verschoben
  • Artikel publiziert
  • Artikel depubliziert

Dieses Feld wird auch protokolliert wenn nicht direkt die URL des Artikels, sondern die URL eines Mediums des Artikels verwendet wird.

referrerLinks referrerLinks
  • Neue Verknüpfung auf das Element
  • Verknüpfung auf das Element wurde gelöscht
publicationStates *
  • jede Änderung
Content-Felder Name des Feldes
  • Änderung des entsprechenden Feldes (nur erste Ebene)
Für die frei definierbaren Content-Felder wird dessen Feldname protokolliert. Feldnamen werden nur für die erste Ebene protokolliert. Wird z.B. in einem Template das Feld ${article}.mylist[0].mytext abgefragt, so der Feldname mylist protokolliert. Die Seite wird dann auch generiert, wenn sich etwas unterhalb von mylist ändert.
Artikel-Felder
filename filename
  • Dateiname des Elements wurde geändert
originalFilename originalFilename
  • Originaler Dateiname des Elements wurde geändert
Medien-Artikel-Felder
filesize *
  • jede Änderung
filename *
  • jede Änderung
mime *
  • jede Änderung
format *
  • jede Änderung
isImage *
  • jede Änderung
width *
  • jede Änderung
height *
  • jede Änderung
media *
  • jede Änderung
Template-Felder
source source
  • Änderungen im Template-Quelltext
suffix suffix
  • Änderung des Template-Suffix
Artikel-Pool-Felder
dir dir
  • Änderung des Verzeichnisses
Pool-Felder
parent parent
  • Element wurde in einen anderen Pool verschoben
stepParents stepParents
  • Für das Element wurde ein Symlink angelegt oder gelöscht
path path
  • Übergeordneter Pool wurde in einen anderen Pool verschoben
elements

sortedElements hasChildren

elements
Die Überwachung dieses Feldes ist im Standard-Fall deaktiviert, da in alt-Systemen eine zu höhe Anzahl an Abhängigkeiten existieren könnten.
  • In dem Pool wurde ein Element angelegt
  • In dem Pool wurde ein Element gelöscht
  • Ein Element wurde in den Pool verschoben
  • Ein Symlink wurde in dem Pool erzeugt
  • Ein Symlink wurde in dem Pool gelöscht
allElements allElements
Die Überwachung dieses Feldes ist im Standard-Fall deaktiviert, da in alt-Systemen eine zu höhe Anzahl an Abhängigkeiten existieren könnten.
  • In dem Pool oder einem untergeordnetem Pool wurde ein Element angelegt
  • In dem Pool oder einem untergeordnetem Pool wurde ein Element gelöscht
  • Ein Element wurde in den Pool oder einem untergeordnetem Pool verschoben
  • Ein Symlink wurde in dem Pool oder einem untergeordnetem Pool erzeugt
  • Ein Symlink wurde in dem Pool oder einem untergeordnetem Pool gelöscht
pools

sortedPools hasChildren

pools
  • In dem Pool wurde ein Pool angelegt
  • In dem Pool wurde ein Pool gelöscht
  • Ein Pool wurde in den Pool verschoben
allPools allPools
  • In dem Pool oder einem untergeordnetem Pool wurde ein Pool angelegt
  • In dem Pool oder einem untergeordnetem Pool wurde ein Pool gelöscht
  • Ein Pool wurde in den Pool oder einem untergeordnetem Pool verschoben