Webtrees Handbuch/Entwicklungsumgebung: Unterschied zwischen den Versionen

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen
Zeile 364: Zeile 364:
!Download
!Download
!Beschreibung
!Beschreibung
|-
|example-module
|example-module
|[https://github.com/webtrees/example-module GitHub]
|[https://github.com/webtrees/example-module GitHub]

Version vom 13. Mai 2022, 21:29 Uhr

Info
Handbuch Im Aufbau...

Bitte haben Sie noch ein wenig Geduld..

Entwicklungsumgebung

Selbst wenn Sie selbst keine Module für webtrees entwickeln wollen, werden Sie dennoch mit der Entwicklungsumgebung in Kontakt kommen. Etwa wenn Sie bei der Nutzung von webtrees auf einen Fehler stoßen oder wenn Ihnen eine Funktion nicht ausreicht. Es kann auch sein, dass Sie etwas an der deutschen Übersetzung stört. Oder sie stoßen auf Fragen, die Sie auch nach der Lektüre dieses Handbuchs nicht geklärt bekommen.

In diesem Kapitel des Handbuchs erfahren Sie, wie Sie in diesen Fällen weiterkommen. Vielleicht wollen Sie aber auch ein Modul von webtrees an ihren Bedarf anpassen oder sogar ein neues Modul entwickeln. Das kann leichter sein, als Sie vielleicht denken. Dazu im vorletzten Abschnitt dieses Kapitels mehr. Es kann aber auch sein, dass Sie nur eine Darstellung in der Bedienoberfläche anpassen möchten, das kann mit Hilfe des Moduls "CSS und JS" eventuell ganz einfach sein.

Klärung von Fragen


Eine herausragender Vorteil bei der Nutzung von webtrees ist die viel gelobte Gemeinschaft der Anwender dieses Programms. Zu jeder Frage, zu jedem Problem gibt es kurzfristige und kompetente Hilfe durch die Entwickler und andere Nutzer von webtrees.

webtrees-Forum


Das englischsprachige webtrees-Forum dient dem Austausch mit anderen webtrees-Nutzern und den Entwicklern. Dort können Sie also alle Fragen loswerden. Sie sollten sich also unbedingt im Forum als Nutzer anmelden. Dort werden auch aktuelle Informationen verteilt, etwa wenn neue Versionen von webtrees erscheinen.

Das Forum ist in verschiedene Themenstränge gegliedert

  • Help for version 2.1 - hier geht es um alle Fragen zur aktuellen Version
  • Help for 2.1 migration - hier wird der Umstieg von 2.0 auf 2.1 thematisiert
  • Help for version 2.0 - alle Fragen zur Vorgängerversion 2.0
  • Help for Version 1.7 - alle Fragen zur eingefrorenen Version 1.7 (und frühere)
  • Open discussion - Fragen mit übergeordnetem Charakter (Strategie, Genealogie allgemein)
  • Customising - Fragen rings um die Erweiterungsmodule
  • Translation - Themen, die die Übersetzung in verschiedene Sprachen betreffen
  • Request for New Feature - Wünsche betrffend neuer Funktionen für webtrees
  • Converting from PhpGedView (PGV) - Umstieg vom Vorgängerprogramm PhpGedView auf webtrees

Sie sollten sich also als erstes überlegen zu welchem Themenstrang ihre Frage am besten passt. Und dann dort ihre Frage stellen.

Hilfreich wäre, wenn Sie dabei folgende Punkte in Betracht ziehen

  • webtrees wird von vielen Freiwilligen unterstützt, die für dieses Programm programmieren und im Forum bei der Lösung von Problemen helfen. Bitte denken Sie dran, dass Sie keinen Anspruch darauf haben, dass ein Problem für Sie gelöst wird oder dass eine neue Funktion nach ihren Wünsche realisiert wird. Wenn Sie etwas ändern wollen, dann können Sie das, ggf. müssen Sie es aber selber tun.
  • Es ist einfacher, Ihnen zu helfen, wenn Sie die Adresse ihrer Website mitteilen. Sie können den Link zu ihrer Website am besten direkt in ihre Forensignatur integrieren.
  • Bei Serverproblemen hilft es, wenn Sie mitteilen, wie Ihr Server konfiguriert ist. Sie können diese Informationen auch in ihre Forensignatur einbauen.
  • Prüfen Sie, ob ihre Frage bereits beantwortet wurde. Sie können die Forenseiten über die Registerkarte "Search" durchsuchen.
  • Wenn Sie ein Problem im Zusammenhang mit der Migration von 1.7 auf 2.0 oder von 2.0 auf 2.1 haben, lesen Sie bitte zuerst die entsprechenden Abschnitte in diesem Handbuch.
  • Wenn Sie „denken“, dass Sie einen Fehler gefunden haben, deaktivieren Sie bitte zuerst alle Erweiterungsmodule, falls Sie welche verwenden. Wenn das Problem dadurch verschwindet, melden Sie den Fehler auf der GitHub-Seite des Erweiterungsmoduls oder geben Sie zumindest das benutzerdefinierte Modul als wahrscheinliche Ursache des Problems an, wenn Sie das Problem im Forum melden möchten. Wenn das Problem ohne Bezug zu einem Erweiterungsmodul ist, durchsuchen sie die Liste der bekannten webtrees-Fehler. Gehen Sie dann zum Forum zurück und fragen Sie nach, bevor Sie den Fehler auf GitHub melden. Vielleicht ist es ja auch etwas, das Sie nicht vollständig verstehen, und überhaupt kein Fehler.
  • Wenn Englisch nicht Ihre Muttersprache ist, können Sie auch in ihrer eigenen Sprache schreiben; sie sollten dann aber auch eine Übersetzung ins Englische hinzuzufügen (verwenden Sie dafür vielleicht Google Translate oder DeepL). Wenn möglich, wird man ihnen in ihrer Sprache antworten, oder es wird auch Google verwendet.
  • Verwenden Sie Forenbeiträge, Signaturen oder Avatar-Links nicht für Werbung oder Aufforderungen.
  • Posten Sie nicht zu viel und fügen Sie keine unnötigen Kommentare hinzu, die dem Forum keinen Mehrwert bringen.
  • Lesen Sie bitte auch die Hilfeseite zum Forum "Forum Help". Diese enthält weitere Tipps zur Verwendung des Forums und einige wichtige Informationen zum Hochladen von Dateien und Bildern als Anhänge.

Discourse


Im System "Discourse" von Compgen gibt es einen eher wenig genutzten Themenstrang zu webtrees. Dort erfolgt die Diskussion immer in deutscher Sprache.

Analyse und Meldung von Programmfehlern


Bei einem so umfangreichen Programm wie webtrees ist es unvermeidlich, dass es Fehler im Programm gibt. Mit jedem neuen Release werden Fehler behoben, aber es kommen auch neue dazu. Es gibt aber auch Fehlerquellen, die außerhalb von webtrees liegen, etwa wenn Sie als Webmaster eine neue Version von PHP aktivieren oder wenn ihr Webhoster Änderungen in der Systemumgebung vornimmt.

Manche Fehler sind so gravierend, dass Sie keinen Zugang mehr zu ihrer Website haben, andere führen zu einer Fehlermeldung und wieder andere führen dazu, dass sich webtrees nicht so verhält, wie Sie es erwarten. Mit diesen Arten von Fehlern beschäftigen sich die folgenden Abschnitte. Nicht hierher gehören Fehler in den genealogischen Daten selbst, also fehlerhafte GEDCOM-Strukturen (siehe "x") und unplausible oder falsche genealogische Daten.

Fehler mit einer Fehlermeldung


Es kann passieren, dass Sie bei der Nutzung des Programms einen Fehler angezeigt bekommen. Das kann in etwa so aussehen, wie im Screenshot auf der rechten Seite.

Nuvola pen.svg Screenshot mit einer Fehlermeldung ergänzen Nuvola pen.svg

Die oberste Zeile weist auf die Stelle hin, bei der der Fehler aufgetreten ist. Das muss nicht unbedingt die Stelle sein, die den Fehler verursacht. Deshalb enthält die Fehlermeldung noch weitere Zeilen, die zeigen welche Programmfunktionen zuvor aufgerufen worden sind.

Wenn die Stelle, an der der Fehler aufgetreten ist, zu einem Erweiterungsmodul gehört, dann sollten Sie als erstes dieses Erweiterungsmodul deaktivieren und testen, ob damit auch der Fehler verschwindet. Wenn Sie dann das betreffende Erweiterungsmodul wieder aktivieren und der Fehler wieder auftritt, dann haben Sie den Fehler ziemlich sicher lokalisiert und können diesen auf der GitHub-Seite des Erweiterungsmoduls als issue melden. Zuvor sollten Sie aber in der Liste der offenen issues nachsehen, ob dieser Fehler bereits gemeldet worden ist. Es kann aber auch sein, dass die Aktion, bei der es zur Fehlermeldung kam, ganz klar zur Funktion des Erweiterungsmoduls gehört, die in der Fehlermeldung angezeigt worden ist. Dann ist die Zuordnung recht klar und Sie können sich das Deaktivieren des Erweiterungsmoduls eventuell sparen, wenn Sie und die übrigen Nutzer bis zur Fehlerbehebung mit dem Fehlverhalten leben können.

Wenn die Fehlerstelle in einer Funktion des webtrees-Kerns liegt, dann melden sie diesen Fehler auf der GitHub-Seite von webtrees. Wenn der Fehler sehr gravierend ist und sie nicht bis zur Fehlerbehebung warten können, dann bleibt eventuell nur das Einspielen einer früheren Version von webtrees aus einer Datensicherung. Dies sollten Sie aber ggf. zuvor im webtrees-Forum abklären.

Nuvola pen.svg Noch beschreiben: wie legt man einen issue in GitHub an (für Core und für Erweiterungsmodul) und was sollte man melden (Was habe ich getan, was habe ich erwartet, wie sehen die obersten Zeilen der Fehlermeldung aus (etwa 10 Zeilen kopieren) Nuvola pen.svg

Sicherheitsrelevante Fehler


Fehler, die zu Problemen mit der Datensicherheit oder des Datenschutzes führen, treten nur sehr selten auf. Wenn Sie auf einen solchen Fehler in webtrees stoßen sollten, dann sollten Sie diesen umgehend melden. Allerdings auf keinen Fall unter Verwendung des Forums oder von GitHub, sondern in einer direkten E-Mail an Greg Roach.

Für die Behebung von Sicherheitsproblemen ihres Webservers sind Sie als Webmaster oder der Betreiber ihrer Website zuständig.

Gepflegte Versionen

Sicherheitsrelevante Fehler können eventuell schon seit längerer Zeit unerkannt im Code von webtrees stecken. Allerdings werden nur die webtrees-Versionen ab 2.0 noch gepflegt. Betreiber von älteren und damit nicht mehr unterstützten Versionen müssen sich selbst um die Behebung von Sicherheitslücken kümmern.

Sicherheitsprobleme können auch in PHP stecken. Dort werden nur noch Versionen ab PHP 7.4 gepflegt.

Reaktionszeiten

Sie sollten innerhalb von 24 Stunden nach ihrer E-Mail mit der Meldung des Problems mit einer Bestätigung rechnen.

Denken Sie daran, dass nicht alle E-Mails zugestellt werden und dass einige Teile der Welt keinen Internetzugang haben. Wenn Sie keine Antwort erhalten, senden Sie bitte eine Folge-E-Mail. Wenn Sie immer noch keine Antwort erhalten, versuchen Sie bitte über das Projektforum unter webtrees.net Kontakt aufzunehmen.

Abhängig von der Komplexität und Schwere des Problems wird versucht werden, innerhalb von zwei bis sieben Tagen eine Lösung zu veröffentlichen.

Offenlegung und Zuschreibung

Bitte warten Sie bis eine Version von webtrees verfügbar ist, die das gemeldeten Sicherheitsproblem behebt, bevor Sie Details zu dem Problem veröffentlichen. Wenn Sie wünschen, dass Ihnen ihre Entdeckung zugeschrieben werden soll, sagen Sie bitte Bescheid.

Unerwartetes Verhalten des Programms


Es kann vorkommen, dass sich webtrees für Sie unerwartet verhält. Eine Funktion reagiert anders als erwartet, oder eine Darstellung auf dem Bildschirm sieht nicht so aus, wie Sie es erwarten. Dies kann eine Fehlfunktion von webtrees sein, muss es aber nicht, denn vielleicht haben Sie auch eine nicht korrekte Erwartung. Demnach ist es also in so einem Fall erst einmal sinnvoll sich die entsprechende Stelle noch einmal genau anzusehen. Hierbei sollte auch dieses Handbuch helfen.

Und Sie sollten versuchen die möglichen Fehlerursachen etwas einzugrenzen. Wenn Sie Erweiterungsmodule nutzen, sollten Sie als Administrator diese erst einmal deaktivieren. Wenn das unerwartete Verhalten dann immer noch auftritt, dann können Sie sicher sein, dass das Problem bei webtrees selbst liegt. Andernfalls aktivieren Sie nacheinander die Erweiterungsmodule wieder und finden so das Modul, das für das Fehlverhalten oder für das unerwartete Verhalten verantwortlich ist.

Wenn Sie sich auch danach noch nicht sicher sind, ob es sich um einen Fehler handelt, dann sollten Sie das Problem im webtrees-Forum zur Klärung bringen.

Bitte beschreiben Sie dazu

  • was wollten Sie erreichen
  • was haben sie konkret zuletzt getan bevor der Fehler oder das unerwartete Verhalten auftrat
  • was ist passiert (am besten mit einem Screenshot dokumentiert)
  • was haben Sie erwartet, dass es stattdessen passieren soll

Bildschirm ist leer


Nuvola pen.svg Vorgehen beschreiben, wenn es zu einem "weißen" Bildschirm kommt) Nuvola pen.svg

Weitere Methoden zur Fehleranalyse


Nuvola pen.svg Analyse der diversen Log-Files beschreiben Nuvola pen.svg
Nuvola pen.svg Nutzung von Browser-Entwickler-Funktionen zur Fehleranalyse beschreiben Nuvola pen.svg

Verbesserungsvorschläge


Sicherlich fallen Ihnen bei der Nutzung von webtrees im Laufe der Zeit Dinge auf, die man noch besser gestalten oder lösen könnte. Es gibt verschiedene Wege, die Sie dann einschlagen können, um Ihre Ideen kund zu tun. Näheres dazu wird in diesem Abschnitt beschrieben. Sie sollten aber bedenken, dass webtrees von Freiwilligen gepflegt und entwickelt wird, die ohne Bezahlung und in ihrer Freizeit aktiv sind. Es gibt also keinen Anspruch darauf, dass Fehler kurzfristig behoben werden oder dass Verbesserungsvorschläge irgendwann umgesetzt werden. Wenn Sie etwas stört, sollten Sie also zuerst darüber nachdenken, was Sie selbst aktiv beitragen können.

Verbesserungsvorschläge für webtrees


Nuvola pen.svg Beschreiben: im Forum in der Kategorie "Request for New Feature" Nuvola pen.svg
Nuvola pen.svg Beschreiben: über github (issue oder pull request) Nuvola pen.svg

Verbesserungsvorschläge für die deutsche Übersetzung


Verbesserungsvorschläge für dieses Handbuch


Wenn Sie Fehler in diesem Handbuch finden oder entdecken, dass etwas fehlt oder ausführlicher beschrieben werden sollte, dann greifen Sie bitte in die Tasten, melden sich hier im GenWiki als Nutzer an und ändern oder ergänzen Sie bitte falsche oder fehlende Teile selbst. Wenn Sie sich nicht sicher sind, dann können Sie auf der parallelen Seite "Diskussion" eine Anmerkung hinterlassen.

Anpassung und Entwicklung eigener Module


Wenn Sie eigene Module entwickeln möchten, dann sollten Sie sich mit den folgenden Themen vertraut machen

  • Objektorientierte Programmierung mit PHP
  • Programmierung mit JavaScript
  • Web-Technologie (HTML, CSS, ...)
  • Nutzung von GitHub

Architektur und modularer Aufbau von webtrees


Datei:WT 2.1 ModelViewControllerDiagram.svg
Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte Assoziation, eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen Beobachter).

webtrees verwendet das Laravel-Framework. Laravel ist ein freies PHP-Webframework, das dem MVC-Muster folgt. Der Architekturansatz "Model View Controller" (MVC, englisch für Modell-Präsentation-Steuerung) sieht ein Muster zur Unterteilung einer Software in drei Komponenten vor

  • Datenmodell (englisch model)
  • Präsentation (englisch view) und
  • Programmsteuerung (englisch controller).

Das Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht.

Das Datenmodell von webtrees folgt weitgehend den im GEDCOM-Standard definierten Strukturen. Das Datenmodell wird unter anderem in den Tabellen in der Datenbank abgebildet. Direkte Zugriffe auf die Datenbank, etwa aus webtrees-Funktionen in Erweiterungsmodulen heraus, sollten, dem Architekturansatz folgend, nicht stattfinden.

Die Präsentation des Programms in der Bedienoberfläche ist weitgehend entkoppelt von den Funktionen, die die Inhalte bereitstellen, die präsentiert werden sollen. Eine im Prinzip mögliche Durchmischung von komplexen Funktionen in PHP-Code und html-Code zur Präsentation wird weitgehend vermieden. JavaScript wird nur für Funktionen in der Bedienoberfläche genutzt, nicht aber für komplexe Funktionen. Eine Ausnahme sind spezielle Erweiterungsmodule, wie etwa das TAM-Modul zur Anzeige eines topografischen Knoten-Kanten-Diagramms.

Die meisten Funktionen in webtrees werden in Modulen realisiert, die PHP-Klassen definieren und implementieren. Dadurch lassen sich diese Funktionen sehr leicht durch Erweiterungsmodule ergänzen oder ersetzen. Einzelne, als "public" gekennzeichnete, Funktionen in einer PHP-Klasse lassen sich in einem Erweiterungsmodul überschreiben und so in modifizierter Form einsetzen.

Anstatt eine Klasse durch eine eigene Klasse in einem Erweiterungsmodul zu überschreiben, könnte man natürlich auch direkt die Funktion im webtrees-Kern überschreiben. Allerdings wird eine solche Änderung beim nächsten Upgrade von webtrees wieder überschrieben und kann so verloren gehen, wenn man nicht genau aufpasst und solche Änderungen direkt im Kern penibel dokumentiert.

Struktur der webtrees-Ordner


Die Anwendung "webtrees" wird auf dem Server in einem Verzeichnis installiert, das für den Web-Server zugänglich ist. Es sind sechs Unterordner vorhanden, die in der folgenden Tabelle beschrieben werden.

Verzeichnis Inhalt
\ Im Wurzelverzeichnis von webtrees liegen Verwaltungsdateien (etwa für Composer), Favicon, Dokumentation (Readme, Lizenz), eventuell .htaccess.
\app Hier liegen alle Dateien, die den Kern von webtrees ausmachen, etwa alle Module.
\data Dieser Ordner kann als einziger von der webtrees-Anwendung beschrieben werden; hier liegen alle Mediendateien, temporäre Dateien, Cache-Verzeichnisse, exportierte GEDCOM-Dateien und die Konfigurationsdatei config.ini.php.
\modules_v4 Hier liegen alle Erweiterungsmodule.
\public Hier befinden sich der intern verwendete Editor, CSS-Dateien, Icons und zentrale JavaScript-Dateien.
\ressources Hier liegen unterstützende Elemente der Anwendung, wie Zeichensätze, Sprachdateien, Grafiken, Elemente der Bedienoberfläche und Berichtsvorlagen (XML).
\vendor Alle verwendeten Bibliotheken der genutzten Drittmodule sind in diesem Ordner versammelt.
Nuvola pen.svg In der obigen Tabelle müssen alle Begriffe noch mit Links zu den passenden Stellen im Handbuch versehen werden Nuvola pen.svg
Nuvola pen.svg Installation in einem Docker-Container beschreiben Nuvola pen.svg

Codierungsstile und -standards


webtrees folgt einigen der PHP Standard Recommendations (PSR). Eine PSR ist eine als Empfehlung verfasste Spezifikation, welche durch die PHP Framework Interoperability Group (PHP FIG) veröffentlicht wird. Eine PSR empfiehlt ausschließlich die Form der Programmierung mit PHP, nicht jedoch neue Features in PHP. Ziel der PSRs ist es, die Interoperabilität von Komponenten zu ermöglichen, Quellcode universell lesbar und verständlich zu machen und bewährte Konzepte in der Programmierung zu standardisieren.

Nummer Name Beschreibung Status bzgl. webtrees
PSR-0 Autoloading Standard Benennung von Komponenten in Bezug auf Hersteller, Namespace und Klasse sowie zugehörigen Verzeichnisnamen, so dass Komponenten bei Verwendung im PHP-Code bei Bedarf einheitlich automatisch nachgeladen werden können. veraltet; abgelöst durch PSR-4
PSR-1 Basis Coding Standard Allgemeiner Programmierstil, der z. B. die Tags am Anfang eines PHP-Codes, den verwendeten Zeichensatz (UTF-8) sowie die Benennung von Klassen/Methoden regelt; erfordert die Umsetzung von PSR-0. ja
PSR-2 Coding Style Guide Legt fest an welchen Stellen im Code Zeilenumbrüche bei Klammerausdrücken zu verwenden sind, Einrückungen und Leerzeichen oder die Sichtbarkeit von Eigenschaften und Methoden; erfordert die Umsetzung von PSR-1. ja
PSR-3 Logger Interface Einheitliches Interface für Logmeldungen, zu verwendende Loglevel, Exceptions, das Format von Logmeldungen und zu verwendende Hilfsklassen in diesem Umfeld nicht verwendet, aber geplant
PSR-4 Improved Autoloading Erweiterung der Autoloading-Spezifikation aus PSR-0 ja
PSR-5 PHPDoc Eine vollständige und formale Definition der PHPDoc-Syntax nicht relevant
PSR-6 Caching Interface Interfaces für das Konzept des Caching ja
PSR-7 HTTP Message Interfaces Einheitliches Interface für HTTP-Nachrichten und Umgang mit URIs ja
PSR-8 Huggable Interface Aprilscherz nicht relevant
PSR-9 Security Disclosure Vereinheitlichung von sicherheitsrelevanten Meldungen innerhalb von Projekten (inaktive PSR) ?
PSR-10 Security Advisories Vereinheitlichung der Kommunikation sicherheitsrelevanter Meldungen mit der Öffentlichkeit (inaktive PSR) ?
PSR-11 Container Interface Interface für Dependency Injection Containers ja
PSR-12 Extended Coding Style Guide Erweitert PSR-1 und PSR-2 um weitere Regeln zum Programmierstil ja
PSR-13 Hypermedia Links Spezifikation bzgl. einheitlicher Darstellung von hypermedialen Links. ?
PSR-14 Event Manager Einheitliche Schnittstellen für die Implementierung von Events. ?
PSR-15 HTTP Handlers Gemeinsame Schnittstellen für HTTP-Server-Request-Handler und HTTP-Server-Middleware-Komponenten, die HTTP-Nachrichten verwenden ja
PSR-16 Simple Cache Vereinfachte Schnittstelle für Caching-Bibliotheken ?
PSR-17 HTTP Factories Standard für Fabrikmethoden zur Erstellung von PSR-7-kompatiblen Objekten ja
PSR-18 HTTP Client Standard zum Senden und Empfangen von HTTP-Anfragen ?
PSR-19 PHPDoc tags Katalog von PHPDoc-Tags nicht relevant
PSR-20 Clock Standardmethode für den Zugriff auf die Uhrzeit; ermöglicht die Interoperabilität während des Testens, wenn ein Verhalten getestet wird, das zeitbasierte Nebenwirkungen hat. ?

JavaScript wird in webtrees entsprechend dem "Semi-Standard" programmiert.

Beispiele für Erweiterungsmodule


Um den Einstieg in die Programmierung von Erweiterungsmodulen einfacher zu machen, gibt es einige Beispielmodule, die als Vorlagen für eigene Module genutzt werden können.

Modul Download Beschreibung
example-module GitHub einfaches Basis-Modul
example-module-custom-tags GitHub Definition von benutzerspezifischen GEDCOM Tags
example-module-theme GitHub Erweiterung eines Themen-Moduls
example-module-middleware GitHub xx
example-module-footer GitHub Erweiterung der Fußzeilen auf der Webseite
example-module-server-config GitHub Änderungen an den Einstellungen des Webservers
Nuvola pen.svg Ein Beispielmodul exemplarisch beschreiben Nuvola pen.svg

Neben den Beispielmodulen ist aber auch das Studium anderer Erweiterungsmodule bei der Einarbeitung in die Programmierung für webtrees sehr hilf- und lehrreich. Bei spezifischen Fragen zu einzelnen Funktionen kann auch das Forum genutzt werden.

Anpassungen mit dem Modul "CSS und JS"