magicsunday / webtrees-fan-chart
SVG ancestor fan chart module for the webtrees genealogy application — interactive D3.js visualization with zoom, export and up to 10 generations.
Package info
github.com/magicsunday/webtrees-fan-chart
Language:JavaScript
Type:webtrees-module
pkg:composer/magicsunday/webtrees-fan-chart
Fund package maintenance!
Requires
- php: 8.3 - 8.5
- ext-dom: *
- ext-json: *
- fisharebest/webtrees: ~2.2.0
- magicsunday/webtrees-module-base: ^2.2
- magicsunday/webtrees-module-installer-plugin: ^1.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- overtrue/phplint: ^9.0
- phpstan/phpstan: ^2.0
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/phpunit: ^12.0 || ^13.0
- rector/rector: ^2.0
- dev-main
- 3.6.4
- 3.6.3
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.1
- 3.5.0
- 3.4.0
- 3.3.9
- 3.3.8
- 3.3.7
- 3.3.6
- 3.3.5
- 3.3.4
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- 2.7.2
- 2.7.1
- 2.7.0
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.x-dev
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.x-dev
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- v2.1.1
- v2.1.0
- 2.0.x-dev
- v2.0.3
- v2.0.2
- v2.0.1
- 2.0
- 1.7.x-dev
- v1.7.2
- v1.7.1
- v1.7
- dev-WIP
This package is auto-updated.
Last update: 2026-05-11 08:02:55 UTC
README
Fan chart
This module provides an interactive SVG ancestor fan chart for the webtrees genealogy application. Click on any ancestor to re-center the chart on that person. Right-click to open a tooltip with detailed dates, places, and images.
Installation
Requires webtrees 2.2 and PHP 8.3 or later.
Manual installation
Important
Download the right .zip file. Each GitHub release page lists two kinds of archive:
- ✅
webtrees-fan-chart.zip— listed under Assets at the bottom of the release. This is the install-ready archive: it bundles the requiredvendor/dependencies (such aswebtrees-module-base). - ❌ "Source code (zip)" /
webtrees-fan-chart-<version>.zip— auto-generated by GitHub from the tag. This is the raw source without bundled dependencies. Uploading it tomodules_v4/will fail withInterface "MagicSunday\Webtrees\ModuleBase\…" not found(orModuleAssetUrlInterface not found).
Always pick the asset zip, never "Source code (zip)".
Important
If a previous version of this module is already installed: delete the entire modules_v4/webtrees-fan-chart folder before extracting the new ZIP. Extracting on top of an existing folder leaves stale files behind that can clash with the new release — a common cause of Interface … not found errors right after an update.
- Open the latest release page.
- Under Assets, download
webtrees-fan-chart.zip. - Upload the
.zipfile to your web server. - Unzip the package into your
modules_v4directory. - Rename the folder to
webtrees-fan-chart.
You should now see a modules_v4/webtrees-fan-chart directory containing the module files.
Using Composer
Run the following command from the root of your webtrees installation:
composer require magicsunday/webtrees-fan-chart --update-no-dev
The module will automatically install into the modules_v4 directory.
To remove the module:
composer remove magicsunday/webtrees-fan-chart --update-no-dev
If you are using the development version of webtrees (main branch):
composer require magicsunday/webtrees-fan-chart:dev-main --update-no-dev
Using Git
Clone the repository directly into your modules_v4 directory:
git clone https://github.com/magicsunday/webtrees-fan-chart.git modules_v4/webtrees-fan-chart
Update
To update to the latest version:
- Manual installation: From the latest release Assets section, download
webtrees-fan-chart.zip(not "Source code (zip)"), delete the oldmodules_v4/webtrees-fan-chartfolder, and extract the new one. - Composer: Run
composer update magicsunday/webtrees-fan-chart --update-no-dev. - Git: Run
git pullinside themodules_v4/webtrees-fan-chartdirectory.
Configuration
- Go to the Control Panel (admin section) of your webtrees installation.
- Scroll down to the Modules section and click on Charts (under Genealogy).
- Enable the Fan chart module. Optionally disable the built-in fan chart to avoid confusion.
- Click Save.
Usage
Open the Charts menu on any individual page and select Fan chart.
The form at the top lets you choose the starting person, fan size (180-360 degrees), and number of generations (2-10).
Click Show more options to access additional settings:
| Option | Description |
|---|---|
| Display mode | Choose between "Show names and images", "Show names only", or "Show images only". Images are only shown if the arc segment is wide enough. |
| Show descendants | Shows partners and children as arcs below the ancestor section. The fan size is limited to 180-270 degrees when enabled. |
| Hide empty segments | Hides chart segments for missing ancestors. |
| Show places | Displays birth and death places in the chart arcs where space allows. For descendants with many children, places are automatically suppressed. Choose the level of detail (full name or lowest 1-3 hierarchy levels). |
| Show parent marriage dates | Displays marriage dates in a narrow arc between each pair of parent arcs. When descendants are enabled, also shows the marriage date between the central person and their partners. |
| Show family colors | Colors arcs by family branch. Paternal and maternal base colors are configurable via color pickers. |
| Birth and death date precision | Show full birth and death dates (DD.MM.YYYY) for early generations. Outer generations use a compact year-only format. Marriage dates switch to year-only from generation 7 and are hidden from generation 9. Descendants with narrow arcs automatically use a compact format. |
| Number of inner levels | Controls how many generations use the wider inner-arc layout with text along the arc path. |
| Font size | Scales the text size (50-150%). |
Interacting with the chart:
| Action | Effect |
|---|---|
| Click on a person | Re-centers the chart on that person |
| Right-click on a person | Opens a detailed tooltip with dates, places, and image |
| Ctrl + scroll | Zoom in/out |
| Click and drag | Move the chart |
| Click center button | Reset view to center |
| Fullscreen button | Toggle fullscreen mode |
| PNG / SVG buttons | Export the chart as an image file |
Troubleshooting
Fatal error after a manual installation or update: Interface "MagicSunday\Webtrees\ModuleBase\…" not found (or ModuleAssetUrlInterface not found)
- You probably downloaded the GitHub-generated "Source code (zip)" instead of the install-ready asset
webtrees-fan-chart.zip. The asset bundles the requiredvendor/dependencies; the source zip does not. Open the latest release, scroll to Assets, downloadwebtrees-fan-chart.zip, and re-extract. - If you used the asset zip, make sure you deleted the previous
modules_v4/webtrees-fan-chartfolder before extracting. Stale files from an older version can shadow the new bundled vendor code and produce the same error.
The chart does not appear / shows an error
- Make sure the module is enabled in the Control Panel under Modules > Charts.
- Check that your PHP version is 8.3 or later.
- Clear your browser cache and reload the page.
Images are not displayed
- Ensure "Show highlight images" is enabled in the tree preferences (Control Panel > Family trees > Preferences).
- Verify that media files are uploaded and linked to individuals.
Places are not shown
- Enable "Show places" in the chart options (under "Show more options").
- Make sure the individuals have PLAC fields in their GEDCOM records.
Development
This section is for developers who want to contribute to the module.
Building JavaScript
Using Docker (no local Node.js required):
make install make build
Using local Node.js:
npm install npm run prepare
Running tests
# JavaScript tests npm test # Full PHP + JS quality check composer update composer ci:test

