Skip to content

hartenthaler/hh_extended_family

Repository files navigation

🌳 webtrees module for Extended Family (hh_extended_family)

Latest Release License: GPL v3

webtrees major version webtrees major version

Maintainability

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.

πŸ“š Contents

This Readme contains the following main sections

🎯 Purpose

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.

πŸ”Ž Scope

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.

πŸ’‘ Main features

The module supports

  • configurable family parts and display order
  • 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 triplet
  • 1 ASSO @I123@ / 2 RELA triplet
  • 1 BIRT / 2 AGE STILLBORN
  • 1 DEAT / 2 AGE INFANT
  • 1 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.

πŸ‘₯ Family parts

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.

βš™οΈ Configuration

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

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.

🧭 Architecture

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.

πŸ–Ό Screenshots

Compact tab design

Screenshot of compact extended family tab

Enriched design with photo, birth information, and death information

Screenshot of enriched extended family tab

Partner chain view

Screenshot showing chain of partners

Control panel settings

Screenshot of control panel settings

πŸ“Œ Requirements

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.

πŸ“₯ Installation

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:

  1. Make a database backup.
  2. Download the latest release.
  3. Unzip the package into the webtrees/modules_v4 directory of your web server.
  4. Rename the folder to hh_extended_family.
  5. Login to webtrees as administrator.
  6. Go to Control Panel / Modules / Individual page / Tabs.
  7. Enable the module named Extended family.
  8. Save the module settings.

⬆️ Upgrade

To update the module, replace the hh_extended_family files with the files from the latest release.

🌍 Translation

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

❓ Support

  • 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.

πŸ“„ License

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.

About

webtrees - showing the extended family of an individual (like cousins and uncles, aunts, ...)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors