Die Ahnenforschung ist eine faszinierende Reise in die Vergangenheit, bei der wir die Spuren unserer Vorfahren verfolgen und ihre Geschichten wieder zum Leben erwecken. Moderne Technologien, insbesondere Online-Genealogie-Plattformen, haben diese Reise revolutioniert. Eine der leistungsstärksten und flexibelsten Lösungen für die Verwaltung und Veröffentlichung Ihrer Familiendaten ist Webtrees. Als Open-Source-Webanwendung, die auf den GEDCOM-Standard setzt, bietet Webtrees eine unglaubliche Kontrolle über Ihre Daten. Doch wie bei jeder mächtigen Software gibt es manchmal Details, die nicht sofort offensichtlich sind oder die eine kleine Anpassung erfordern, um Ihr Erlebnis zu optimieren. Eine solche Frage, die immer wieder aufkommt, ist: „Wie lasse ich mir in Webtrees den Benutzernamen anzeigen?“ Dieser scheinbar kleine Wunsch hat oft tiefgreifende Gründe und kann die Zusammenarbeit und die Nachvollziehbarkeit Ihrer Forschungsarbeit erheblich verbessern.
Warum die Anzeige des Benutzernamens in Webtrees wichtig sein kann
Bevor wir uns den technischen Details widmen, lassen Sie uns klären, warum die Sichtbarkeit von Benutzernamen überhaupt von Bedeutung ist. Auf den ersten Blick mag es unwichtig erscheinen, wer eine bestimmte Information hinzugefügt oder geändert hat. Doch gerade in der gemeinschaftlichen Ahnenforschung, wo oft mehrere Familienmitglieder oder Forscher an einem Stammbaum arbeiten, gewinnt dies an Relevanz:
- Nachvollziehbarkeit und Vertrauen: Wenn Sie sehen können, wer eine Änderung vorgenommen oder eine neue Person hinzugefügt hat, schafft das Vertrauen. Sie wissen, wer der Ansprechpartner für Rückfragen zu bestimmten Daten ist, und können die Quelle einer Information besser einschätzen.
- Kollaboration und Kredit: In einem kollaborativen Umfeld ist es wichtig, die Beiträge der einzelnen Mitglieder zu würdigen. Die Anzeige des Benutzernamens gibt den Forschern den nötigen Kredit für ihre harte Arbeit und fördert die weitere Beteiligung.
- Fehlerbehebung und Qualitätssicherung: Sollte sich ein Fehler in den Daten einschleichen oder eine Information unklar sein, können Sie direkt die Person kontaktieren, die die Eingabe vorgenommen hat. Dies beschleunigt die Korrektur und trägt zur Datenqualität bei.
- Übersicht in großen Projekten: Je größer Ihr Stammbaum wird und je mehr Personen daran mitwirken, desto schneller verlieren Sie den Überblick. Die Anzeige des Benutzernamens hilft, Aktivitäten zu filtern und zu verstehen, wer welche Bereiche des Baums pflegt.
- Motivation und Engagement: Wenn Benutzer sehen, dass ihre Beiträge sichtbar sind und gewürdigt werden, fördert dies ihr Engagement und ihre Motivation, weiter zur gemeinsamen Ahnenforschung beizutragen.
Es geht also nicht nur darum, eine technische Funktion zu aktivieren, sondern darum, die Transparenz und Effizienz Ihrer genealogischen Arbeit zu steigern. Webtrees bietet von Haus aus zwar viele Mechanismen zur Nachverfolgung, aber manchmal möchte man diese Informationen präsenter im Frontend darstellen.
Webtrees und der Umgang mit Benutzerdaten
Webtrees speichert Benutzerinformationen und protokolliert Änderungen sehr detailliert. Im Admin-Bereich können Sie unter „Benutzer“ eine Liste aller registrierten Personen sehen, deren Rollen verwalten und sogar die letzten Aktivitäten einsehen. Auch im Änderungsverlauf (Change Log) einer Person oder Familie werden in der Regel der Benutzer, der die Änderung vorgenommen hat, das Datum und die Art der Änderung angezeigt. Die Herausforderung besteht oft darin, diese Informationen nicht nur im Backend, sondern auch im Frontend – also auf den öffentlich zugänglichen oder für eingeloggte Benutzer sichtbaren Seiten – darzustellen.
Standardmäßig konzentriert sich Webtrees auf die Präsentation der genealogischen Daten selbst: Personen, Familien, Ereignisse, Quellen etc. Informationen über denjenigen, der die Daten eingegeben hat, werden eher in den Hintergrund, sprich in die Änderungsverläufe oder Administrationsbereiche, verlagert. Dies dient der Übersichtlichkeit und der Wahrung der Datenschutzgrundsätze. Wenn Sie jedoch die Benutzernamen prominent anzeigen möchten, erfordert dies in der Regel eine Anpassung der Webtrees-Templates.
Die Methode der Wahl: Anpassung der Webtrees-Templates
Webtrees ist modular aufgebaut und nutzt ein Templating-System (hauptsächlich PHP-basierte Dateien), um die Ausgabe der verschiedenen Seiten zu steuern. Dies ist der Ansatzpunkt für unsere Anpassung. Bevor Sie beginnen, ist es jedoch absolut unerlässlich, folgende Punkte zu beachten:
- Backup erstellen: Erstellen Sie IMMER ein vollständiges Backup Ihrer Webtrees-Installation (Dateien und Datenbank), bevor Sie Änderungen vornehmen. Dies ist Ihre Rettungsleine, falls etwas schiefläuft.
- Keine direkten Kern-Dateien ändern: Ändern Sie niemals direkt die Dateien im Hauptverzeichnis von Webtrees oder in den Standard-Themes. Diese Änderungen gehen bei einem Update verloren und können zu Problemen führen.
- Benutzerdefinierte Themes nutzen: Die beste Methode ist die Erstellung eines benutzerdefinierten Themes oder das Kopieren eines bestehenden Themes und dessen Anpassung. Webtrees sucht zuerst in Ihrem benutzerdefinierten Theme nach einer Template-Datei; findet es sie dort nicht, greift es auf die Standard-Themes zurück.
Schritt-für-Schritt-Anleitung zur Anzeige des Benutzernamens
Die Anzeige des Benutzernamens kann an verschiedenen Stellen sinnvoll sein. Wir betrachten zwei gängige Szenarien: die Anzeige des aktuell eingeloggten Benutzers und die Anzeige des Benutzers, der eine bestimmte Änderung vorgenommen hat.
Szenario 1: Anzeige des aktuell eingeloggten Benutzers
Dies ist die einfachere Anpassung. Oft möchte man im Header, Footer oder in einem Sidebar-Bereich anzeigen, wer gerade angemeldet ist. Das ist nützlich für Benutzer, um schnell zu sehen, dass sie eingeloggt sind und welche Identität sie haben.
- Theme-Ordner finden: Navigieren Sie zu Ihrem Webtrees-Installationsverzeichnis. Suchen Sie den Ordner
themes/
. Hier finden Sie die verschiedenen Themes, z.B.default
oderbluestyle
. - Eigenes Theme erstellen (empfohlen): Kopieren Sie den gesamten Ordner eines Standard-Themes (z.B.
default
) und benennen Sie ihn um, z.B. inmy_custom_theme
. Aktivieren Sie dieses neue Theme dann im Webtrees-Adminbereich unter „Anpassung” > „Themes”. - Relevante Template-Datei identifizieren: Der Header- oder Footer-Bereich wird oft in einer globalen Layout-Datei definiert. Im
default
Theme könnte dies in Dateien wiethemes/default/views/layout_main.phtml
oderthemes/default/views/components/header.phtml
liegen, je nachdem, wo Sie den Benutzernamen platzieren möchten. Für den Footer wäre es entsprechendthemes/default/views/components/footer.phtml
. - Code hinzufügen: Öffnen Sie die identifizierte Datei (im neuen, benutzerdefinierten Theme-Ordner!). Fügen Sie an der gewünschten Stelle den folgenden PHP-Code hinzu:
<?php
// Überprüfen, ob ein Benutzer angemeldet ist
if (isset($user) && $user->isLoggedIn()) {
echo '<p>Angemeldet als: <strong>' . $user->get('username') . '</strong></p>';
} else {
echo '<p>Sie sind nicht angemeldet.</p>';
}
?>
Dieser Code-Schnipsel überprüft, ob ein Benutzer angemeldet ist (via der global verfügbaren $user
-Variable, die von Webtrees bereitgestellt wird) und gibt dessen Benutzernamen aus. Denken Sie daran, den HTML-Kontext anzupassen, damit es optisch ansprechend ist.
Szenario 2: Anzeige des Benutzernamens bei Änderungen oder Einträgen
Dies ist das Szenario, das für die Nachvollziehbarkeit in der Ahnenforschung am wichtigsten ist: Wer hat diese Person hinzugefügt oder den Namen geändert? Webtrees speichert diese Informationen im Änderungsprotokoll (Change Log). Standardmäßig können Sie das Änderungsprotokoll für jede Person oder Familie separat aufrufen. Die Frage ist, wie man es vielleicht direkter auf der Personen- oder Familienseite anzeigt.
Webtrees zeigt den Bearbeiter im Änderungsprotokoll (meistens unter dem Reiter „Änderungen” oder „Log”) bereits an. Wenn Sie jedoch möchten, dass z.B. auf der Detailseite einer Person (individual_page.phtml
) direkt angezeigt wird, wer sie zuletzt bearbeitet hat, wird es etwas komplexer, da Sie die Änderungsdaten abfragen müssen.
- Relevante Template-Datei: Für die Anzeige auf einer Personenseite ist die Datei
themes/Ihr_Theme/views/individual_page.phtml
die zentrale Anlaufstelle. Für Familienseiten wäre esfamily_page.phtml
. - Zugriff auf Änderungsdaten: Webtrees bietet Funktionen, um auf die Änderungsdaten zuzugreifen. Für eine Person würden Sie die zugehörigen Änderungen abrufen müssen. Dies erfordert, dass Sie in der Template-Datei auf das
$individual
-Objekt zugreifen können, das die aktuelle Person darstellt.
Ein vereinfachtes Beispiel, wie Sie versuchen könnten, den letzten Bearbeiter einer Person anzuzeigen (dies ist ein *konzeptionelles* Beispiel und kann je nach Webtrees-Version und verfügbarer API variieren – Sie müssten die genaue Methode zur Abfrage der letzten Änderung im Webtrees-Code oder in der Dokumentation finden):
<?php
/**
* Dies ist ein *konzeptionelles Beispiel* und erfordert möglicherweise
* tiefere Kenntnisse der Webtrees-API und der Datenstrukturen.
* Es wird angenommen, dass das $individual-Objekt hier verfügbar ist
* und eine Methode zum Abrufen der letzten Änderung oder eines Change-Logs bietet.
*/
if (isset($individual) && $individual instanceof Individual) {
// Versuch, die letzte Änderung für diese Person abzurufen
// ACHTUNG: Die genaue Methode (getLastChange(), getChanges(), etc.)
// und die Struktur des zurückgegebenen Objekts kann variieren!
// Sie müssten die Webtrees-Quellcode-Dokumentation konsultieren.
$lastChange = null;
try {
// Beispiel: Angenommen, es gibt eine Methode, die die letzte Änderung liefert
// Realistischerweise müssen Sie die Änderungen manuell abfragen und sortieren.
$changes = WebtreesCommonChange::getChangesForRecord($individual->getXref());
if (!empty($changes)) {
// Sortieren nach Datum (letzte Änderung zuerst)
usort($changes, function($a, $b) {
return $b->getTimestamp() <=> $a->getTimestamp();
});
$lastChange = $changes[0]; // Die neueste Änderung
}
} catch (Throwable $e) {
// Fehlerbehandlung, falls die Methode nicht existiert oder fehlschlägt
error_log("Fehler beim Abrufen der Änderungen: " . $e->getMessage());
}
if ($lastChange) {
$userXref = $lastChange->getUser(); // Gibt den XREF des Benutzers zurück
if ($userXref) {
$user = WebtreesCommonUser::getInstance($userXref); // Holen des Benutzerobjekts
if ($user && $user->exists()) {
echo '<p class="last-edited-by">Zuletzt bearbeitet von: <strong>' . htmlspecialchars($user->get('username')) . '</strong> am ' . htmlspecialchars($lastChange->getTimestamp()->format('d.m.Y H:i')) . '</p>';
}
}
} else {
// echo '<p class="last-edited-by">Keine Bearbeitungshistorie verfügbar.</p>';
}
}
?>
Wichtiger Hinweis zum obigen Code-Beispiel: Der direkte Zugriff auf die Änderungsdaten in einer Template-Datei ist komplex. Die korrekte Implementierung erfordert ein tiefes Verständnis der Webtrees-Interna und der verfügbaren Klassen und Methoden. Für eine stabile Lösung müsste man möglicherweise ein benutzerdefiniertes Modul entwickeln, das diese Daten vorab lädt und sie dem Template bereitstellt. Die Zeile WebtreesCommonChange::getChangesForRecord($individual->getXref());
ist ein Annahme, die möglicherweise nicht 1:1 so in Ihrer Webtrees-Version existiert oder die korrekte API-Methode ist. Konsultieren Sie immer die offizielle Webtrees-Entwicklerdokumentation oder den Quellcode für die genauen Funktionen zur Abfrage von Änderungsdaten.
Eine einfachere Methode ohne direkten Code-Eingriff in die Templating-Dateien (wenn auch nicht auf der Detailseite direkt sichtbar) ist die Nutzung des bereits vorhandenen Änderungsprotokolls: Leiten Sie Ihre Nutzer explizit auf den Reiter „Änderungen” (oder „Log”) weiter, wo die Benutzernamen bereits standardmäßig angezeigt werden. Dies ist der sicherste Weg, um die Änderungshistorie und die verantwortlichen Benutzer anzuzeigen, ohne das Risiko von Fehlern bei der Template-Anpassung einzugehen.
Die Bedeutung von CSS für die Darstellung
Nachdem Sie den PHP-Code in Ihre Template-Datei eingefügt haben, kann es sein, dass die Ausgabe noch nicht optimal aussieht. Hier kommt CSS ins Spiel. Innerhalb Ihres benutzerdefinierten Themes können Sie eine style.css
-Datei anlegen (oder die bestehende anpassen), um die neu hinzugefügten Elemente zu gestalten. Wenn Sie beispielsweise den Code aus Szenario 1 verwendet haben, könnten Sie folgende CSS-Regel hinzufügen:
.last-edited-by {
font-size: 0.9em;
color: #666;
text-align: right;
margin-top: 10px;
}
.last-edited-by strong {
color: #333;
font-weight: bold;
}
Dies stellt sicher, dass der Benutzername ansprechend und lesbar dargestellt wird.
Best Practices und wichtige Überlegungen
- Datenschutz (GDPR/DSGVO): Seien Sie sich bewusst, dass die öffentliche Anzeige von Benutzernamen oder jeglicher Art von persönlichen Daten die Anforderungen der Datenschutz-Grundverordnung (DSGVO) berühren kann, insbesondere wenn Ihre Webtrees-Instanz öffentlich zugänglich ist. Klären Sie mit Ihren Nutzern, ob sie mit der Anzeige ihrer Benutzernamen einverstanden sind. Bieten Sie gegebenenfalls die Möglichkeit, einen Pseudonym zu verwenden.
- Theme-Kompatibilität: Nicht alle Themes sind gleich. Die Struktur der Template-Dateien kann variieren. Seien Sie darauf vorbereitet, dass Sie in Ihrem spezifischen Theme die richtigen Dateien finden und die Pfade anpassen müssen.
- Webtrees-Updates: Wenn Sie Änderungen an einem benutzerdefinierten Theme vorgenommen haben, sind diese bei Webtrees-Updates in der Regel sicher. Wenn Sie jedoch aus Versehen direkt im Standard-Theme oder in Core-Dateien geändert haben, gehen diese Änderungen bei einem Update verloren.
- Leistung: Die Abfrage von Änderungsdaten auf jeder einzelnen Personenseite kann die Ladezeit der Seite beeinflussen, insbesondere bei großen Stammbäumen. Testen Sie die Leistung nach Ihren Änderungen.
- Fehlerbehebung: Wenn Sie nach Änderungen eine leere Seite oder einen Fehler sehen, überprüfen Sie Ihre PHP-Fehlerprotokolle (oft in
/var/log/apache2/error.log
oder ähnlich auf Linux-Servern oder in Ihrem Hosting-Panel). Ein kleiner Syntaxfehler kann die gesamte Seite lahmlegen.
Fazit
Die Anpassung von Webtrees, um Benutzernamen prominenter anzuzeigen, ist ein Wunsch vieler Ahnenforscher, die in kollaborativen Umgebungen arbeiten. Sie fördert Transparenz, Kreditwürdigung und die Nachvollziehbarkeit von Daten. Während die Anzeige des aktuell eingeloggten Benutzers relativ einfach über die Template-Anpassung zu realisieren ist, erfordert die Integration von Bearbeiterinformationen direkt auf den Personen- oder Familienseiten ein tieferes Verständnis der Webtrees-Datenstruktur und der PHP-Programmierung. Für die meisten Anwendungsfälle ist das standardmäßige Änderungsprotokoll, das bereits die Benutzernamen anzeigt, oft ausreichend und der sicherste Weg.
Sollten Sie sich jedoch für die fortgeschrittene Anpassung entscheiden, denken Sie immer an die Wichtigkeit von Backups, der Nutzung von benutzerdefinierten Themes und der Beachtung von Datenschutzrichtlinien. Mit diesen Vorsichtsmaßnahmen und ein wenig Experimentierfreude können Sie Webtrees genau an Ihre Bedürfnisse anpassen und Ihre Ahnenforschung noch effektiver und kollaborativer gestalten. Die Offenheit von Webtrees ist eine seiner größten Stärken – nutzen Sie sie, um Ihre genealogische Reise noch persönlicher und aussagekräftiger zu machen!