Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule/Tagging-Service-Manager

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen

Webtrees Icon
Info
Handbuch-Abschnitt noch im Aufbau
Bitte haben Sie noch ein wenig Geduld oder bringen sich auch gern selber mit ein :-)..


Der Standard-Sammelbehälter von webtrees kann durch ein Erweiterungsmodul ergänzt werden, das Datensätze tagged.

Steckbrief

  • Modulname: huhwt-tsm (tagging service module)
  • Autor: huhwt (EW.H)
  • Passende webtrees-Versionen: 2.1
  • Speicherort
  • Modulkategorie: Genealogie
  • Modulfunktion: Menü "Sammelbehälter" - Unterfunktion in der Listenansicht
Info
Dieses Modul setzt PHP 8.2 für den Server zwingend voraus.


Beschreibung

Das Erweiterungsmodul TSM ist eine Ergänzung zum CCE -Huhwt-Sammelbehälter-. Es setzt auf die im Sammelbehälter befindlichen Referenzen auf Datensätze auf, operiert mit diesen aber unter einem ganz eigenen Blickwinkel, so dass es ratsam erschien, diese Funktion in einem eigenen Modul zu kapseln. Zugänglich ist es nur über eine Menü-Aktion in der CCE-Listensicht (man kann natürlich die Adresse als Bookmark ablegen und dann TSM auch unabhängig aufrufen).

Hintergrund

webtrees kennt das Konzept der 'Gemeinsamen Notizen'. Im Datenbestand sind diese als eigene Datensatzart geführt, im GEDCOM-Standard 5.5.1 haben sie mit NOTE ein eigenes Kennzeichen als Level-0-TAG; GEDCOM 7 benennt das Kennzeichen gar in SNOTE um, damit es sich eindeutig von den ergänzenden Anmerkungen abgrenzen lässt, welche ebenfalls mit einem NOTE-Kennzeichen geführt werden, bloß eben als nachgeordnetes Merkmal zu anderen relevanten Fakten auf Ebene 1 und tiefer.

Tatsächlich spannen die gemeinsamen Notizen eine zusätzliche Informationsdimension auf, da sie mit übergeordneten Inhalten gefüllt werden können, welche nicht nur die Details einer Person, Familie usw. beschreiben. Man kann mit diesen 'Gemeinsamen Notizen' - im weiteren Verlauf kurz als sNOTE bezeichnet - zum Beispiel Eigenschaften charakterisieren wie 'ist Zwilling', 'verbüßte Gefängnisstrafe', 'Ausgewandert nach Amerika', 'mehr als 6 Kinder' … Im Prinzip ist jede prägnant formulierte Charakterisierung möglich, welche sich ansonsten erst aus einer tiefer gehenden Analyse des Gedcom-Datensatzes ableiten ließe. Man kann dann damit eine ganze Gruppe von Gedcom-Entitäten hervorheben und diese gezielt über die 'Notizen'-Liste abrufen.

Einführen kann man eine solche sNOTE in der Admin-Ebene als 'Unverbundene Notiz', sie lässt sich dann in der Einzelansicht einer Gedcom-Entität im 'Notizen'-Reiter zuweisen. Das ist jeweils ein mehrstufiger Prozess, man muss sich von einem Dialog zum nächsten hangeln - alles in allem reichlich schwerfällig … Der Abruf über die 'Notizen'-Liste ist zwar grundsätzlich nützlich, erfasst aber eben nur die Gedcom-Entitäten, welche bereits mit einer sNOTE getaggt sind. Für alle anderen gilt, dass man sie zwar mit der Suche, anderen Listen-Funktionen oder durch Traversieren im Stammbaum erfassen, dann aber einzeln explizit aufrufen muss, damit man den sNOTE-TAG zuweisen kann …

Wie wäre es nun, wenn man gleich ganze Gruppen von Gedcom-Entitäten mit einem Klick taggen könnte? Und diese nach anderen Kriterien ausgewählt sind, also nicht bereits mit einem sNOTE markiert?

Letzteres trifft grundsätzlich auf die Datensätze im Sammelbehälter zu. Man führt dort Gedcom-Entitäten nach Belieben zusammen, mit CCE - dem 'Clippings-Cart-Enhanced'-Modul - mit einer bis dahin nicht realisierten Reichweite. CCE enthält auch Mechanismen, welche die Selektion und das Handling definierter Teilmengen von Datensätzen erleichtern.

Für eine effiziente Bearbeitung ist es sinnvoll, wenn man gewisse Konventionen einführt. Um schnell viele Datensätze bearbeiten zu können, ist eine Strukturierung sinnvoll.

Hier setzt nun dieses Modul an:

  • Eine für TSM relevante sNOTE muss mit einem konkreten Präfix versehen sein - wenn nicht anders definiert: TAG:
  • Es ist sinnvoll, verschiedene "Geschmäcker" von Inhalten auch mit verschiedenen Kennungen voneinander abzugrenzen, deshalb kann man eigene Präferenzen vorgeben (in der Admin-Ansicht - huhwt-tsm Einstellungen)
    • Anmerkung: Hat man mit den webtrees -Bordmitteln bereits einen Bestand von sNOTE aufgebaut, kann man diese problemlos mit einem TSM-konformen Präfix ergänzen ('Notizen-Liste', Notiz bearbeiten, dort den Text ergänzen).
  • Eine an die CCE-'Sammelbehälter-Listenansicht' angelehnte Ansicht erlaubt das Zuweisen und Zurücknehmen von Tags und ein abschließendes Zurückschreiben der geänderten Datensatz-Inhalte auf die Datenbank mit einem Klick

CCE gibt den Datenbestand vor, in mancher Beziehung ist TSM als Teilfunktion von CCE zu charakterisieren. Die Funktionalität von TSM ist aber doch so weit außerhalb des Fokus von CCE und mit soviel zusätzlichem und anderem Aufwand verbunden, dass es sinnvoll erschien, es in einem eigenem Modul zu kapseln.

Technische Grundlage

Der Sammelbehälter ist eine SESSION-Struktur mit dem Schlüssel 'cart'. Analog dazu wird eine weitere SESSION-Struktur 'tags' eingeführt. Beiden gemeinsam ist, dass nur Datensatz-Kennungen vorgehalten werden, ergänzende inhaltliche Merkmale wie z.B. Personen-Namen und Familien-Informationen usw. werden erst beim Aufbau der jeweiligen Listenansicht gezogen. Damit ist sichergestellt, dass alle aufgeführten Datensätze sowohl tatsächlich in der Datenbank vorhanden sind, als auch, dass die jeweils relevanten Zugriffs-Richtlinien eingehalten werden.

Ohne 'cart'-Inhalte gibt es keine 'tags'. Beim Aufruf von TSM wird jeweils der Inhalt von 'cart' in 'tags' kopiert und mit den hier relevanten Inhalten angereichert.

Da es sich um SESSION-Strukturen handelt, kann man erwarten, dass sie solange bestehen, wie eine webtrees -Sitzung andauert. Sobald man sich abmeldet, wird auch die korrespondierende SESSION-Struktur gelöscht, man muss nach Neu-Anmeldung also erst wieder den Sammelbehälter befüllen, um mit TSM weitermachen zu können. Solange man in seiner webtrees -Sitzung angemeldet ist, übersteht die SESSION-Struktur aber auch, dass man den Rechner in den Ruhezustand versetzt oder in den Energiesparmodus schickt.

Es gibt eine grundlegende Restriktion: 'cart' wie auch 'tags' werden TREE-spezifisch geführt, hat man in seiner webtrees -Installation mehrere Stammbäume angelegt und wechselt von einem zum anderem, so sind dann andere Inhalte zu finden. Modul-Präferenzen hingegen gelten für eine webtrees -Installation insgesamt, hinterlegte TSM-Präfixe sind also in allen Stammbäumen gültig und überall sichtbar und wirksam.

Aufruf

TSM tritt nicht direkt selbst in der Menü-Leiste in Erscheinung, vielmehr wird nach der Installation eine zusätzliche Menü-Option in die CCE-Aktionsauswahl eingeblendet: 'Übertragen an den Tagging-Service'. Diese erscheint nur dann, wenn der Sammelbehälter nicht leer ist - direkte Folge der vorstehend beschriebenen inhaltlichen Abhängigkeit der 'tags'- von der 'cart'-Struktur.


Listenansicht

WT 2.1 Erweiterungsmodul Tagging-Service-Manager Listenansicht-Start.png

Der untere Teil der Listenansicht führt wie bei der Sammelbehälter-Übersicht die Datensätze-Gruppierungen auf ( - Personen, - Familien usw.).

Der obere Teil der Listenansicht führt die bekannten Markierungen auf und unterstützt Operationen damit.

Der obere Teil gliedert sich in 3 Abschnitte:

  • Der Aktions-Block - er erstreckt sich über die volle Breite und führt durch Klick auf die (dunkel - je nach Thema) unterlegten Texte und Symbole unterstützende Operationen.
    1. Kopftext 'Auflistung Markierungen'
    2. Aktion 'Speichern'
    3. Aktion 'Neu laden'
    4. Aktion 'Aktive Kennung'

Darunter sind zwei Übersichts-Blöcke:

  • Der linke Block 'Aktive Markierung' führt die Markierungen auf, mit denen dann Operationen auf den Datensätzen ausgeführt werden.
  • Der rechte Block 'Datensätze Markierungen' führt alle Markierungen auf, welche der darüber im Aktions-Block als 'Aktive Kennung' ausgewiesenen entsprechen - im gegebenen Beispiel wäre das TAG.



Nun sieht man, dass man - nichts sieht, bisher sind noch gar keine sNOTE in der Datenbank hinterlegt. Das ändert man, indem man auf das +-Zeichen unten im rechten Block klickt. Es öffnet sich ein Popup, in welchem man eine sNOTE definiert:

Popup 'Eine neue Markierung erstellen' (Neuanlage sNOTE)
Popup 'Neuanlage'
Der Markierungstext ist mit TAG: vorbelegt, der Untertitel weist darauf hin, dass dies eine zwingende Voraussetzung ist. Beides folgt daraus, dass TAG die 'Aktive Kennung' ist.

Klickt man nun in das Textfeld, wird die Einfügemarke automatisch hinter 'TAG: ' positioniert, so dass man direkt den anschließenden Text eingeben kann.


Löscht man die Vorbelegung TAG: bzw. überschreibt sie mit einem anderen Test, wird dies mit einer Fehlermeldung quittiert und die Aktion abgebrochen.


Wie rechts dargestellt, kann man die Sichtbarkeit der Markierung wenn gewünscht an gewisse Berechtigungslevel knüpfen. Die Handhabung entspricht damit grundsätzlich dem Procedere, wie es im webtrees-Core für sNOTE üblich ist.

Option: Privatisierungs-Einstellung


Nach dem Klick auf 'Speichern' wird die neu angelegte sNOTE in die Datenbank eingetragen, zum Abschluss gibt es eine Erfolgsmeldung.

Bearbeitung

Nach Neuanlage einer weiteren sNOTE stellt sich die Listenansicht nun wie folgt dar:

Eine Markierung wird ausgewählt, indem man sie im rechten Aktionsblock anklickt. Das übernimmt sie in den linken Aktionsblock, in beiden Blöcken wird sie nun farbig hervorgehoben, im linken darüber hinaus fett dargestellt. Klickt man sie erneut rechts an, werden die Vorgänge rückgängig gemacht, sie ist nicht mehr die Aktive Markierung und wird aus dem linken Block entfernt. Klickt man dagegen rechts eine andere Markierung an, wird auch diese in den linken Block übernommen und mit einer anderen Farbe markiert. Die fette Darstellung wechselt zur neu hinzugefügten Markierung. Solcherart kann man bis zu 6 Markierungen gleichzeitig in den linken Block übernehmen. Entfernt man die aktuelle Aktive Markierung und es sind links noch andere Markierungen enthalten, bekommt die davor Aktive Markierung wieder diesen Status. Klickt man links auf eine andere Markierung, wird diese dadurch zur neuen Aktive Markierung und fett gesetzt, die bisherige ist wieder normal gesetzt.

Unter dem Aktionsblock folgen die Abschnitte mit den Datensatz-Gruppierungen. Solange ein Datensatz keine Verknüpfung zu einer sNOTE aufweist, steht dort im mittleren Bereich (ohne), gibt es Verknüpfungen zu sNOTE, deren Text mit TAG: beginnt, werden sie dort komplett mit aufgeführt.

Die 'Aktive Markierung' wirkt nun dergestalt, dass bei einem Klick auf einen Datensatz in den nachfolgenden Abschnitten die Markierung fallweise in den mittleren Bereich ergänzend aufgenommen wird - falls dort vorher (ohne) stand, wird dies ersetzt - bzw. falls sie dort schon enthalten war, aus dem Bereich entfernt wird.

Das Im-Mittleren-Bereich-Enthalten-Sein steht also für die Verknüpfung eines Datensatzes mit der betreffenden sNOTE.

Zur besseren Erkennbarkeit der bestehenden Verknüpfungen werden alle solche, die aktuell ausgewählt sind, vergrößert und mit gleicher Farbe hervorgehoben dargestellt.

Speichern

Nun hat man seine Markierungen zugewiesen und damit Verknüpfungen definiert, sie stehen aber noch nicht in der Datenbank; eine Kontrolle eines Datensatzes in der einschlägigen Einzelansicht - z.B. in der Ansicht einer Person - zeigt dort noch nichts. Die Verknüpfungen sind bislang rein virtuell. Sie persistent in die Datenbank zu übernehmen, das bewirkt die Schaltfläche 'Speichern' links im Aktions-Block. Anfangs inaktiv und damit nicht klickbar, wird sie mit der ersten Zuweisung/Rücknahme einer Aktiven Markierung frei gegeben. Der Klick auf diese Schaltfläche bewirkt, dass der aktuelle Zustand der Datensätze an den Server übergeben und dort alle geänderten Zustände in entsprechende Aktionen auf der Datenbank umgesetzt werden: Hat man eine Markierung zugewiesen, wird die Verknüpfung in die relevanten Dateien eingetragen und hat man sie entfernt, werden die bestehenden Verknüpfungen gelöscht.

An sich sind Veränderungen der Datenbank ein 2-stufiger Prozess - die Veränderung wird vorbereitet, eine Meldung ausgegeben, dass Änderungen anhängig sind und erst nach Bestätigung, dass die Änderung vorgenommen werden soll, laufen dann die Aktionen ab, welche tatsächlich den Datenbank-Zustand ändern. Dabei werden dann die Änderungen auch in einer Protokolldatei eingetragen, so dass im Nachhinein erkennbar bleibt, wer wann welche Veränderungen am Datenbestand vorgenommen hat.

In TSM werden unter Umständen viele Änderungen angestoßen und es scheint nicht wirklich zumutbar, jede einzeln bestätigen zu müssen. Es gibt zwar eine Option in den Benutzer-Einstellungen, den Zwischenschritt Bestätigung zu überspringen, es schien aber nicht angemessen, eine solche Benutzer-Einstellung als Bedingung für den Einsatz des Moduls vorzugeben. Statt dessen wird stillschweigend die Bestätigung vorausgesetzt und das Zurückschreiben erfolgt unmittelbar. Dabei werden die Einträge in die Protokolldatei beibehalten, so dass die Aktionen dieses Moduls nachvollziehbar bleiben.

Einstellungen - Admin-Funktion

"TAG" ist die Vorbelegung für den Präfix. Eingangs wurde bereits erwähnt, dass es sinnvoll sein kann, für verschiedene Markierungs-Kategorien auch verschiedene Präfix-Ausprägungen zu haben. Diese kann man in den Modul-Einstellungen vorgeben. Man findet diese dort als Administrator.

Darstellung in der allgemeinen Admin-Ansicht aller Module
Darstellung in der Admin-Modul-Ansicht


Ein Klick auf das Schraubenschlüssel-Symbol öffnet den TSM-Einstellungs-Dialog.

WT 2.1 Erweiterungsmodul Tagging-Service-Manager Einstellungen-Start.png

Hier gibt man die gewünschten Präfixe vor. Wenn man mehrere festlegen möchte, trennt man die verschiedenen Kürzel einfach mit einem Komma voneinander ab. Anmerkung: Nur den eigentlichen Text eingeben, der : und das nachgestellte Leerzeichen werden in der Listenansicht automatisch hinzugefügt!

In der nächsten Zeile gibt man vor, welches der primäre Präfix sein soll - dieser wird beim Aufruf der Listenansicht immer als die 'Aktive Kennung' gezeigt (und kann dann dort gegen einen anderen Präfix ausgetauscht werden).

Hat man zusätzliche Kürzel angegeben, erscheinen die entsprechenden Auswahl-Optionen erst nach dem Speichern der Ansicht.


Eingabe weiterer Tag-Präfixe ...
... diese können durch Anklicken zur primären 'Aktiven Kennung' werden


'Aktive Kennung' wechseln

Im Aktions-Block der Listenansicht wird als 4. Element die aktuelle 'Aktive Kennung' angegeben. Den Austausch gegen eine andere in den Einstellungen hinterlegte Kennung leitet man durch Klick auf die Überschrift 'Aktive Kennung' ein - es öffnet sich ein Popup:

Datei:WT 2.1 Erweiterungsmodul Tagging-Service-Manager Aktive Kennung-2
... die andere wird durch Anklicken zur neuen 'Aktiven Kennung' ...


Upgrade

Ersetzen Sie zum Aktualisieren einfach die bestehenden Dateien durch diejenigen aus der neuesten Version.

Übersetzung

Sie können helfen, dieses Modul zu übersetzen. Es verwendet das po/mo-System. Sie können über einen Pull-Request in GitHub (wenn Sie wissen wie das geht) oder per E-Mail an den Programmautor weitere Übersetzungen beitragen. Aktualisierte Übersetzungen werden in der jeweils nächsten Version dieses Moduls enthalten sein.

Folgende Sprachen sind verfügbar

  • Englisch
  • Deutsch
  • Niederländisch.

Unterstützung

Sie können Fehler oder Wünsche für Erweiterungen auf der "issue"-Seite bei GitHub melden,

Sie können bei Fragen auch das webtrees-Forum mit dem Themenbereich "Customising" nutzen.

Lizenz

  • © 2024 huhwt - EW.H
  • abgeleitet von webtrees - © 2024 webtrees-Entwicklungsteam

Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, veröffentlicht von der Free Software Foundation, entweder in Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version, weitergeben und/oder modifizieren.

Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, aber OHNE JEGLICHE GEWÄHRLEISTUNG; ohne auch nur die stillschweigende Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Einzelheiten finden Sie in der GNU General Public License, die Sie unter http://www.gnu.org/licenses/ finden.