Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule/Kundenindividuelle Beziehungsbezeichnungen

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
< Webtrees Handbuch‎ • Anleitung für Webmaster‎ • Erweiterungsmodule
Version vom 14. März 2023, 20:41 Uhr von Bot1 (Diskussion • Beiträge) (Bot: Automatisierte Textersetzung (-'''webtrees''' +<span class="wtname">webtrees</span>))
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 :-)..


Das Modul ...

Steckbrief

  • Modulname: Kundenindividuelle Beziehungsbezeichnungen (hh_relation_is_descriptor)
  • Autor: Hermann Hartenthaler
  • Passende webtrees-Versionen: 2.1
  • Speicherort: GitHub
  • Modulkategorie: Personenseite
  • Modulfunktion: Reiter "Großfamilie"

Beschreibung

Nuvola pen.svg Alles Folgende ist aus dem alten webtrees-Wiki und muss noch bearbeitet werden. Nuvola pen.svg

Benutzerdefinierte Beziehungen

Der Beziehungs-Deskriptor RELA, der im Beziehungs-Merkmal (ASSO, Beziehung zu einer Person) verwendet wird, soll basierend auf dem GEDCOM 5.5.1 Datei-Format Freitext sein. webtrees unterstützt jedoch nur eine Auswahlliste von Beziehungen, die im Source-Code fest hinterlegt ist. Daher muss man tatsächlich den zugrunde liegenden PHP Code ändern, um eine Beziehung, die nicht in der Liste vordefiniert ist, hinzuzufügen. Glücklicherweise ist dies recht einfach, auch wenn Sie keinen Programmierer sind, solange Sie Zugriff auf Ihre Installation und die zugehörigen Quelldateien haben. Möglicherweise müssen Sie auch die Sprach-Dateien bearbeiten, um die neu hinzugefügten Beziehungen in anderen Sprachen zu unterstützen.

Siehe Allgemeine_Leitlinien für einige Hinweise zum Anpassen von webtrees bei der Änderung des Quellcodes. Insbesondere können Ihre Änderungen von zukünftigen Updates überschrieben oder nicht in der gleichen Weise in zukünftigen Versionen unterstützt werden, je nachdem wie sich der Code entwickelt. In der Tat hat webtrees nach der Abspaltung von der Original PHPGedView Code-Basis die Unterstützung für Kontext-sensitive Geschlechts-Bezeichnungen bei Beziehungen hinzugefügt. Das hat vorangegangene Änderungen überflüssig gemacht und erforderte, wieder welche einzuprogrammieren. Siehe auch Benutzerdefinierte_Merkmale für mehr Warnungen und eine allgemeine Übersicht. Die Methode, wie Sie ein benutzerdefiniertes Merkmal hinzufügen, ist sehr ähnlich dazu, wie Sie eine Beziehung hinzufügen. Aber im Gegensatz zu benutzerdefinierten Merkmalen werden zusätzliche Beziehungen gefördert und vom Standard erlaubt. Es ist nur diese Programm-Implementierung, die sie einschränkt.

Wenn Sie denken, dass Ihre Anpassungen zum Systemkern gehören, sollten Sie das im Forum besprechen.

Änderung der Auswahlliste

Dies vorausgeschickt, werden die erforderlichen Änderungen, um die Liste der Beziehungs-Titel in der Auswahlliste anzupassen, in einer separaten Datei gemacht im Baum der Installationsquellen: library/WT/Gedcom/Code/Rela.php. Obwohl es eine PHP Quellcode-Datei ist, hat sie eine klare Struktur, die auch nicht-Programmierer einfach und fehlerfrei ändern können sollten. Es gibt zwei Hauptteile des hier betroffenen Codes. Die $TYPE Matrix-Definition der internen Code-Namen und die Funktion getValue(), die den gespeicherten Code-Namen für die Anzeige oder Ausgabe in Text konvertiert. Beide Bereiche müssen bearbeitet werden, um eine neue Beziehung zu aktivieren.

Rela.php $TYPES Matrix bearbeiten
private static $TYPES=array(
  ....
);

Die Matrix wird definiert als eine Liste von Namen in einfachen Anführungszeichen, die durch Kommas getrennt sind. Da es Codenamen sind, gibt es keine Leerzeichen zwischen den einzelnen Anführungszeichen. Verwenden Sie einen Unterstrich anstelle eines Leerzeichens. Der Konvention folgend sind die Code-Namen an englische Basis-Standard-Namen angelehnt. Während die Einträge nicht in einer bestimmten Reihenfolge vorliegen und die Reihenfolge in der Matrix und der Funktion nicht übereinstimmen müssen, legt ein guter Programmierstil nahe, sie in aufsteigender alphabetischer Reihenfolge zu halten und sie so bei der Durchsicht der Datei leichter zu finden. Es sind lediglich interne Namen, die vom PHP-Quellcode verwendet werden, um die anzuzeigende Sprachversion zu finden. Code-Namen in dieser Matrix unterscheiden Groß- und Kleinschreibung (behalten Sie die gleiche Schreibweise bei allen Vorkommen bei).

Es gibt keine wirkliche Grenze für die Anzahl der durch Kommas getrennten Code-Namen in einer Zeile. Der Konvention folgend sollten Sie Ihre Ergänzungen der Liste in richtiger Reihenfolge jeweils in eine eigene Zeile mit einem nachfolgenden Kommentar eintragen, der angibt, dass Sie den Code eingefügt haben. Also, wenn wir den Code 'sponsor' einfügen würden in der vorhandenen Zeile < 'slave', 'ward', 'witness' > dann würde das vor und nach der Änderung so aussehen:

BEFORE:
  'slave', 'ward', 'witness',
AFTER:
  'slave', 
  'sponsor', // Added by REH on 10/30/2011
  'ward', 'witness',

Der doppelte Schrägstrich (//) kennzeichnet einen nicht zu interpretierenden Textkommentar (wie eine GEDCOM Bemerkung) bis zum Ende der Zeile.

Rela.php getValue() Funktion bearbeiten

webtrees ist in U.S. Englisch geschrieben und verwendet U.S. Englisch intern. Also wird Text, der für Benutzer sichtbar sein soll, standardmäßig auf Basis der englischen Version kodiert. webtrees unterstützt viele Sprachen, einige mit kontext-abhängigen Geschlechter-Abhängigkeiten. Also den Text für das ASSOciate (Partner) Merkmal RELAtionships (Beziehungen) zu definieren, ist ein wenig komplizierter, als wahrscheinlich zuerst vermutet. Daher sehen Sie einige der Geschlechter switch-case-Anweisungen in der Code-Basis mit einigen Beziehungs-Namen.

Die getValue()-Funktion ist einfach eine große switch-case-Anweisung. Betrachten Sie es als eine "Auswahl". Bei Eingabe eines Matrix-Eintrags oder Code-Werts erzeugt sie einen Aufruf einer Text-Übersetzungs-Funktion für diesen Wert. Wenn Sie einen Eintrag in die Matrix oben hinzufügen, müssen Sie also einen case-Einstiegspunkt in die switch-Anweisung hinzufügen.

Es gibt hier zwei Arten von Einträgen. Mögliche geschlechts-abhängige Namen und unisex oder geschlechts-unabhängige Namen. Obwohl im Englischen nicht üblich, sind geschlechts-abhängige Namen in vielen anderen Sprachen geläufig. Aber es gibt sie auch im Englischen. Ein Elternteil ist unisex, während ein Vater oder Mutter traditionell eine geschlechts-abhängige Variante ist. Ebenso ist ein Patenkind unisex, während ein Patensohn oder Patentochter geschlechts-abhängig ist. Was hier wichtig ist, ist nicht, was Tradition oder eine mögliche Ausnahme ist, die Sie unterstützen möchten, sondern was ist das übliche Konstrukt zur Verwendung in anderen Sprachen. Wenn eine Sprache traditionell Varianten auf der Grundlage von Geschlechtern verwendet, unterstützen Sie das hier im Code.

Unter Fortsetzung unseres obigen Beispiels würde der Eintrag für einen sponsor in der getValue() switch-Anweisung wie folgt aussehen:

case 'slave':
  switch ($sex) {
    case 'M': return WT_I18N::translate_c('MALE',   'Slave');
    case 'F': return WT_I18N::translate_c('FEMALE', 'Slave');
    default:  return WT_I18N::translate  (          'Slave');
  }
case 'sponsor':  // Added REH 10/30/2011
  // no sex implied
  return WT_I18N::translate('Sponsor');
case 'ward':
  switch ($sex) {

Der Aufruf der Funktion WT_I18N::translate() führt zur Sprach-Übersetzung und sucht das passende Wort in der Sprachdatei. Eine Variante des Aufrufs führt das Geschlecht als ersten Parameter.

Beachten Sie, dass der Parameter innerhalb der Klammern die englische Form der Beziehung darstellt und nicht den Codewert, der in der vorangehenden case-Anweisung verwendet wird. Deshalb werden innerhalb der einfachen Anführungszeichen auch Leerzeichen und Groß- und Kleinschreibung akzeptiert. Die Code-Namen in der Matrix werden ausschließlich innerhalb der PHP-Code switch-Anweisung verwendet, um die Matrix zu indizieren. Der Name, der an die WT_I18N::translate()-Funktion übergeben wird, ist die englische Grundform, die benutzt wird, um die Sprachdateien und die übersetzte Version zu finden. Es ist nur diese letztere Form, die Sie in der Benutzeroberfläche von webtrees oder in der GEDCOM-Datei-Ausgabe sehen werden.

Lokale Sprachdateien anpassen

Vergleichen Sie die Seite Benutzerdefinierte Übersetzungen, wie lokale Sprachdateien angepasst werden. Wichtig ist, dass Sie die neuen Beziehungen auch in die Übersetzungs-Dateien und zum Quellcode hinzufügen. Neben der Basis-Sprachdatei können Sie sie auch zu anderen Sprachen hinzufügen. Wenn keine Sprachdateien geändert werden, wird standardmäßig einfach das Englisch, das im Quellcode einprogrammiert ist, für alle Ausgaben und Anzeigen verwendet. Die Änderung der Sprachdatei ist also nicht erforderlich, um Ihre Veränderung zu aktivieren, aber ein notwendiger Schritt, um andere Sprachen in der Benutzeroberfläche zu unterstützen.

Überprüfen Sie Ihre Änderungen

Um zu sehen, ob Ihre Veränderungen erfolgreich waren, sowohl in Bezug auf die neue Beziehung als auch auf die Unversehrtheit des Programms und der Code-Basis, sollten Sie immer die geänderte Funktionalität überprüfen.

Gehen Sie einfach zu einer Person und fügen ein ASSOciate Merkmal (Partner) hinzu oder bearbeiten ein EVENt (Ereignis) wie eine Geburt, Tod oder ähnliches und fügen ein ASSOciate Merkmal hinzu. Es gibt zwei Parameter für die Eingabe, die aktuelle ID einer anderen Person und die Beziehung zu ihr. Für jede Sprache, die Sie geändert haben, klicken Sie auf das Auswahlfeld der Beziehung, um zu sehen, ob Ihre zusätzlichen Beziehungen vorhanden sind (und die vorangegangenen ebenfalls). Sie müssen dazu geschlechtlich unterschiedliche Personen prüfen, um alle Versionen komplett zu sehen. Was hier erscheint, ist der Inhalt aus einer Sprachdatei oder, falls nicht übersetzt, der ursprüngliche englische Text, der im PHP-Code-Aufruf an die Translate-Funktion übergegeben wird.

Verwendung des ASSOciate-Merkmals

Der GEDCOM 5.5.1 Standard definiert ASSOciate als Merkmal der Stufe 1, das nur in einem Personen Datensatz (oberste Ebene) verfügbar ist. Es soll eine Person mit einer anderen Person direkt verbinden. Tatsächlich kennt das ASSOciate Merkmal die Xref_ID einer Person (INDI) als Parameter. Dies ist ein gangbarer Weg, um Menschen anders als mit dem FAMIlien-Datensatz zu verknüpfen.

Viele Programme, webtrees eingeschlossen, erlauben das ASSOciate Merkmal auch innerhalb von Ereignis-Merkmalen (EVEN) in Personen- (INDI) und FAMIlien-Datensätzen. Einige sogar innerhalb von Quellen (SOUR) und anderen Top-Level-Datensätzen. Wo immer von webtrees erlaubt, wird das ASSOciate Merkmal in der entsprechenden GEDCOM-Datei an dieser Stelle gezeigt. Also achten Sie darauf, dass diese Verbindungen außer als Top-Level-Merkmal in einem Personen-Datensatz möglicherweise nicht in andere Programme übernommen werden können, obwohl die Verbindungen in diesem Programm an diesen zusätzlichen Stellen unterstützt werden.

Die Verbindungs-Beschreibung (RELA) innerhalb des ASSOciate-Merkmals ist als ein Freitextfeld definiert und nicht als computerlesbarer Name. Obwohl fester Bestandteil im webtrees Code, haben die vordefinierten Namen keine besondere Bedeutung im Programm. Es ist ein reiner Deskriptor, um die Verbindung zu einer anderen Person zu beschreiben. Da es ein Deskriptor ist, wurde die Liste vordefiniert, so dass er für die Schnittstelle in andere Sprachen richtig übersetzt werden kann.

Die häufigste Verwendung des ASSOciate Merkmals liegt in traditionellen religiösen Ereignissen wie Taufe, Konfirmation/BarMitzvah/Najote und Hochzeit. Das Merkmal erlaubt es, Paten, Sponsoren und Hochzeitsgäste anzugeben. Vor allem für die Ehe ist die Liste, so wie heute im Programm definiert, für die meisten Traditionen in gängigen Religionen nicht vollständig. Daher muss ergänzt werden, was in einer Beziehung erlaubt ist.

Beachten Sie, dass ASSOciates Verbindungen in einer Richtung sind. Das bedeutet, wenn Sie einen Patenonkel im Tauf-Datensatz eines Kindes (Einzelperson) angeben, gibt es keine Möglichkeit, dies zu erfahren, wenn man etwas anderes als den Kind-Datensatz betrachtet. Sie müssen ein ASSOciate Merkmal im Patenonkel-Datensatz (Einzelpersonen) anlegen, um festzulegen, wer das Patenkind ist, damit die Verbindung bidirektional und bei beiden Personen sichtbar wird.

Beachten Sie auch, obwohl dies ein alternativer Weg ist, Personen außerhalb der Familie zu verknüpfen, dass die meisten Programme, die GEDCOM's verarbeiten, diesen Link nur für Anzeigezwecke erkennen. Daher kann z.B. das Beziehungs-Diagramm in webtrees diese Verbindungen nicht verfolgen. Auch das Sammelbehälter-Werkzeug kann keine verknüpfte Teilmenge Ihrer Datenbank extrahieren.

Vorhandene und vorgeschlagene Beziehungs-Werte

In webtrees ist die folgende Liste von Beziehungen (RELA) für das ASSOciate Merkmal definiert:

'attendant', 'attending', 'best_man', 'bridesmaid', 'buyer',
'circumciser', 'civil_registrar', 'employee', 'employer', 'foster_child',
'foster_father', 'foster_mother', 'friend', 'godfather', 'godmother',
'godparent', 'godson', 'goddaughter', 'godchild', 'guardian',
'informant', 'lodger', 'nanny', 'nurse', 'owner',
'priest', 'rabbi', 'registry_officer', 'seller', 'servant',
'slave', 'ward', 'witness',

In der PHPGedView Code-Basis ist auch noch definiert:

'twin', 'twin_brother', and 'twin_sister'

webtrees erkennt sie jedoch automatisch. Nützliche Beziehungen, die man erwägen könnte, sind beispielsweise:

'flower_girl', 'groomsman', 'maid_of_honor', 'matron_of_honor', 'officiant', 'ring_bearer', 'sponsor', and 'usher'

Manchmal ist die Beziehung einem Ereignis nicht wirklich zugeordnet, sollte jedoch bei einer Person oder Familie auf oberster Ebene stehen. Dies gilt insbesondere für enge Freunde, die teilweise wichtiger als Blutsverwandte gewesen sein können. In diesem Fall kann man überlegen, Beziehungen hinzufügen wie:

'friend', 'close_friend', 'best_friend', 'family_friend', 'fiance', and the like.

Es muss hier noch nicht enden; genau wie bei modernen sozialen Netzwerken. Sie können alle Arten von Klassifikationen oder Kreisen von Menschen zulassen. Vielleicht benötigen Sie:

'colleague', 'classmate', 'war_buddy' and so on.

Entscheidend ist, dass die Liste vordefiniert ist und Sie so die Flexibilität für die Forscher erhöhen, zur Erfassung von Informationen, die sie über Menschen in dieser besser verarbeitbaren Form sammeln. Die ASSOciate Beziehung ermöglicht genau das, indem man von Person zu Person über die definierten Beziehungs-Verknüpfungen navigiert.

Der größte Nachteil beim Hinzufügen von mehr Beziehungen ist, dass die Liste als eine Auswahlliste angezeigt wird. Je länger also die Liste ist, desto mehr Probleme kann ein Benutzer möglicherweise haben, die Beziehung zu finden, die er sucht. Die Liste beachtet keine Teilmengen bezogen auf den Kontext eines Ereignisses oder Datensatztyp, zu dem Sie die Beziehung hinzufügen. Für ein Taufereignis wird daher die vollständige Liste angezeigt, einschließlich 'Lodger', 'Seller' und dergleichen.

Anforderungen

Dieses Modul erfordert die webtrees-Version 2.1 oder höher.

Dieses Modul wurde mit der webtrees-Version 2.1.5 und allen verfügbaren Themen und allen anderen Erweiterungsmodulen getestet.

Installation

Bitte beachten Sie die folgenden Installationsanweisungen

  • Laden Sie die neueste Version von GitHub herunter.
  • Entpacken Sie das Erweiterungsmodul in das Verzeichnis /modules_v4/hh_relation_is_descriptor des webtrees-Webservers. Wenn dieses Verzeichnis bereits vorhanden ist, können Sie es einfach überschreiben.
  • Melden Sie sich als Administrator bei webtrees an, gehen Sie zu Systemsteuerung/Module/Personenseite/Reiter und suchen Sie das Modul. Es heißt "xxx". Durch einen Klick auf den Schraubenschlüssel können sie die Einstellungen des Moduls verändern. Überprüfen Sie, ob es ein Häkchen für "Aktiviert" hat. Bearbeiten Sie diesen Eintrag, um die Zugriffsrechte für jeden Stammbaum festzulegen und den Menüpunkt nach ihren Wünschen zu positionieren.
  • Klicken Sie abschließend auf "Speichern", um die Konfiguration zu sichern.

Upgrade

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

Übersetzung

Sie können helfen, dieses Modul zu übersetzen. Die Sprachinformationen sind in der Datei "resources/lang/ExtendedFamilyTranslation.php" abgelegt. Der deutsche Teil ist der aktuellste und kann als Grundlage für Ihre Übersetzung verwendet werden. Verwenden Sie einen lokalen Editor wie Notepad++, um die Übersetzungen zu erstellen. Das Zurücksenden geht per Pull-Request in GitHub (wenn Sie wissen wie das geht) oder per E-Mail an den Programmautor. Aktualisierte Übersetzungen werden in der jeweils nächsten Version dieses Moduls enthalten sein.

Folgende Sprachen werden neben Deutsch und Englisch unterstützt

  • Niederländisch
  • Tschechisch.

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

  • © 2022 Hermann Hartenthaler
  • abgeleitet von webtrees - © 2022 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.

Einzelnachweise