This webtrees custom module adds an Extended family tab to the individual page. It shows the core and extended family of a selected person and lets site administrators decide which relationship groups are visible, in which order they are shown, and how much detail is displayed.
This Readme contains the following main sections
- Purpose
- Scope
- Main features
- Family parts
- Configuration
- Architecture
- Screenshots
- Requirements
- Installation
- Upgrade
- Translation
- Credits
- Support
- License
The standard webtrees individual page focuses on a person's direct family context. This module adds a broader relationship view that helps users understand the wider family network around a proband.
It is based on the Eskimo kinship system, which distinguishes the nuclear family from collateral relatives such as uncles, aunts, cousins, nephews, and nieces.
A German module description is available in the webtrees manual at genealogy.net.
The module adds one individual-page tab named Extended family. It does not create new GEDCOM records and it does not store relationship data in a separate database table. Instead, it derives the shown family groups from the existing webtrees data.
The tab can show direct relatives, in-laws, relatives by marriage, partner chains, and descendant groups.
For parent-child links, GEDCOM FAMC/PEDI values are used where available, so biological, adoptive, foster, Rada, and step relationships can be kept separate in the affected family parts.
Users can optionally filter the visible relatives by
- sex or gender category
- living or deceased status
Administrators can decide whether these filter controls are shown to regular users.
The module supports
- configurable family parts and display order
- separate administrator control for family parts available to users and family parts rendered by default
- optional per-individual user selection of family parts in the tab
- compact and enriched layouts
- optional thumbnail, birth, and death information with configurable thumbnail size
- optional labels with generation shift and coefficient of relationship
- optional labels for special situations, such as adopted child, foster child, triplet, stillborn, infant death, challenged linkage, Levirate, and Sororate
- optional SOSA labels for the proband and biological ancestors
- relationship grouping that distinguishes biological, social, and step relationships where the underlying GEDCOM data provides this information
- optional summary counts
- optional summary statistics for selected direct-line generations, including ancestor/descendant rows, biological counts, generation length, lifespan, oldest persons, and detected ancestor/descendant implex
- optional handling of partner chains
- optional family part for godparents, witnesses, and other linked persons from
ASSO,_ASSO, and configured proprietary event tags - optional print/PDF button that opens a print-optimized view for the currently selected filter
- optional "copy to clippings cart" action with support for huhwt-cce or the module's internal fallback action
- optional mouseover information for each shown person's relationship path to the proband
- configurable tab loading, either on first click by Ajax or directly with the individual page
- configurable handling of empty family parts
- full or shortened display name of the proband
- configurable place-name format in event boxes, including full place names, city-only display, and city plus ISO country code
Special labels are derived from GEDCOM patterns such as
1 BIRT / 2 _ASSO @I123@ / 3 RELA triplet1 ASSO @I123@ / 2 RELA triplet1 BIRT / 2 AGE STILLBORN1 DEAT / 2 AGE INFANT1 FAMC @F123@ / 2 STAT CHALLENGED
The labels Levirate and Sororate are derived from the computed family context when partners of the same person are same-sex siblings.
The default presentation order is based on the generation shift relative to the proband. The special family part for godparents, witnesses, and other linked persons is generation-independent and is placed at the end.
- great-grandparents: generation +3
- grandparents: generation +2
- grandaunts and granduncles: generation +2
- uncles and aunts: generation +1
- uncles and aunts by marriage: generation +1
- parents: generation +1
- parents-in-law: generation +1
- co-parents-in-law: generation 0
- partners and partner chains: generation 0
- siblings: generation 0
- siblings-in-law: generation 0
- co-siblings-in-law: generation 0
- cousins: generation 0
- children: generation -1
- children-in-law: generation -1
- nephews and nieces: generation -1
- grandnephews and grandnieces: generation -2
- grandchildren: generation -2
- grandchildren-in-law: generation -2
- great-grandchildren: generation -3
- great-grandchildren-in-law: generation -3
- godparents, witnesses, and other linked persons: all generations
Every family part can be enabled, disabled, and reordered in the webtrees control panel. For the quick selection by degree in the control panel, the family part "godparents and witnesses" is treated as degree 9 because linked persons can be very remote from the proband.
The family part "godparents and witnesses" also searches configured proprietary name tags in
individual and family events.
The initial list is _GODP, _WITN, _WITNESS, _SPON, and _SPONSOR.
It has its own counters, including sex/gender counts, but its entries are not included in the total number of extended-family members.
The generation and relationship-coefficient badges are not shown for this family part because linked people can belong to any generation.
Administrators can configure the module in the webtrees control panel under the individual-page tab modules.
The most important settings are
- which family parts are shown
- the order of the family parts
- whether user filter options are available
- whether empty family parts are hidden or shown
- whether summary counts are displayed
- whether extended summary statistics are displayed
- whether partner chains count toward totals
- whether the compact or enriched design is used
- which thumbnail size is used in the enriched design
- whether labels, SOSA numbers, and relationship parameters are displayed
- whether relationship-path mouseover information is available for shown people
- how place names are displayed in event boxes
- whether the Print/PDF button is available
- whether the Extended family tab is loaded immediately with the individual page or later when it is opened
- whether the clippings cart action is available
- whether the clippings cart button uses huhwt-cce or the internal Extended Family action
For family parts, administrators configure two related choices:
- available to users: the family parts that can be selected in the tab
- shown by default: the family parts that are rendered when no user-specific selection is active
The per-individual family-part selector in the tab stores the selection only in the current webtrees session. This means a user can temporarily choose different family parts for one individual without changing module defaults. If the administrator later changes the default selection, an already active user-specific selection remains active until the user resets it to the default or the session ends. Family parts that are no longer available to users cannot be shown through an older user-specific selection.
By default, the Extended family tab is loaded later when the user opens it. This keeps the initial individual page request faster, but the user waits for the extended-family calculation when opening the tab. Administrators can disable this behavior if they prefer the tab content to be calculated immediately with the individual page.
If the Print/PDF button is enabled, users can open a print-optimized page for the currently selected filter variant. The browser's print dialog can then be used to print the report or save it as a PDF.
If the clippings cart button is enabled and huhwt-cce is available, administrators can choose between the recommended huhwt-cce action and the internal Extended Family action. If huhwt-cce is not available, the module uses its internal action and shows a warning in the control panel. The internal action copies the currently selected filter variant to the standard webtrees clippings cart.
Person-level relationship distances use the WikiTree Degree concept: parents, children, partners, and siblings are each one Degree away. Optional gold-colored Degree labels show each person's shortcut-free paths in a tooltip. The summary can additionally show Degree shells from Degree 0 (the proband) onward, with linked people grouped by path. This Degree table is placed directly below the direct-line table and both captions are visually separated from the following content. These display options do not change which people belong to the extended family. If additional partner-chain people are configured not to count as members, their Degree labels remain visible in the partner chains but they are excluded from the Degree shells, loop detection, and clippings-cart export. Technical details are documented in docs/architecture.md.
The module is implemented as a webtrees custom tab module.
The calculation logic is separated from the presentation layer: ExtendedFamilyTabModule integrates with webtrees, ExtendedFamily builds the computed family view, and family-part classes under src/Factory/ExtendedFamilyParts/ derive the individual relationship groups.
More details are documented in docs/architecture.md.
Compact tab design
Enriched design with photo, birth information, and death information
Partner chain view
Control panel settings
This module requires webtrees version 2.1 or later. It has the same system requirements as webtrees.
To use the functions related to the clippings cart, it is recommended to install the custom module clippings cart enhanced.
The current module version is tested with webtrees 2.2.6, all available themes, and all other custom modules.
The last version of this module for webtrees 2.0 is 2.0.16.58.
Install and use Custom Module Manager for an easy and convenient installation of webtrees custom modules.
- Open the Custom Module Manager view in webtrees
- scroll to "Extended Family", and click on the "Install Module" button.
Manual installation:
- Make a database backup.
- Download the latest release.
- Unzip the package into the
webtrees/modules_v4directory of your web server. - Rename the folder to
hh_extended_family. - Login to webtrees as administrator.
- Go to Control Panel / Modules / Individual page / Tabs.
- Enable the module named Extended family.
- Save the module settings.
To update the module, replace the hh_extended_family files with the files from the latest release.
You can help translate this module.
The translation strings are stored as gettext files in resources/lang/*.po.
The German translation in resources/lang/de.po is usually the most complete version and can be used as the reference for new translations.
But there is an prepared default.pot file if you like to start translating from scratch.
Updated translations can be contributed by pull request or by e-mail. They will be included in a future release of the module.
There are currently translations for
- Catalan by @bernatbanyuls
- Chinese Simplified and Chinese Traditional by @olor (=iyoua)
- Czech by @jpretired
- Dutch by @TheDutchJewel
- French by @PalmyreSG1, @fa10175, and @geugeu1
- German by @Hartenthaler
- Hindi by @mrqd9
- Norwegian BokmΓ₯l by @eyolf
- Russian by @aurbo
- Slovak by @ro-la
- Spanish by @yako1984 and @bernatbanyuls
- Swedish by Simon W
- Ukrainian by @z-yurets
- Vietnamese by @ngohuuthuan
Special thanks go to the developers whose earlier work inspired and shaped this module.
- Vytautas Krivickas / vytux.com and Nigel Osborne / kiwtrees.net for the historical foundations of this extended-family tab module and especially for the idea and implementation trail behind the cousins family part.
- OpenAI Codex for many rounds of code analysis, implementation support, refactoring, documentation work, and release preparation.
- JetBrains PhpStorm for long-time support during earlier development phases of this module.
- Issues: You can report errors by creating an issue in this GitHub repository.
- Feature requests: You can suggest improvements by creating an issue in this GitHub repository.
- Forum: General webtrees support can be found in the webtrees forum.
This module uses GPL-3.0-or-later as a license.
- Copyright (C) 2026 Hermann Hartenthaler
- Derived from webtrees - Copyright 2026 webtrees development team.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.



