Count Descendants

From TNG_Wiki
Jump to navigation Jump to search
Count Descendants
Summary Counts the descendants of a person, and prints tables of descendant counts by generations, occurrence of surnames by generation, and several others.
Mod Updated 7 Jan2020
Download link v13.0.0.12b2
TNG 13.0
TNG 12.0
See the Revision History for old version
Download stats
Author(s) Robin Richmond
Homepage Robin Richmond's Genealogy Database
Mod Support My Mod Support form or TNG Community Forums
Contact Developer My Mod Support form
Latest Mod
Min TNG V 10
Max TNG V 13.0.1
Files modified
Modifies the TNG inner menu of descend.php, descendvert.php, descendtext.php, desctracker.php, register.php, tngrobots.php, plus English pedconfig_help.php
Installs rrcount_descendants.php
Related Mods
There are Czeck, Danish, Dutch, German, Norwegian, and Spanish translations

Purpose of the Mod

To implement a new report that contains:

  • First and foremost, a table of counts of a person's descendants, broken out by generation,
  • The number of living people in each generation,
  • The birth year range of descendants (not spouses) for each generation, and
  • Summary counts and lists:
    • The count and a list of marriages between cousins,
    • The count and a list of spouses who married more than one descendant,
    • The count and a list of descendants who have two sets of parents among the descendants,
    • The count of descendant surnames, and a Surname Cloud,
    • The count of descendants' spouses' surnames, and a Surname Cloud,
    • And, particularly, a table of descendant surname counts, by generation.

This report really isn't a "chart" but it is treated as one, and is accessed in the Person Profile and other chart programs the the standard TNG "inner menu" along with links to various chart programs::


  1. Marriages between cousins: When cousins (of any degree) marry, their descendants are displayed twice by the native TNG descendant charts, but the Count Descendants program counts the descendants only once. They are then listed in a table below the main descendant count table. (See a visualization below.)
    • Cousins who marry are counted both as a descendant and as a spouse in the main descendant count table. To determine the number of unique people in the table, you can subtract the count of "Marriages between cousins" from the grand total in the main descendant count table. The first visualization illustrates and explains this computation.

Count of unique people: When cousins marry, they are counted both as a descendant and as a spouse. But the chart shows the count (and a list) of marriages between cousins, so this duplication can be erased by subtracting the count of marriages between cousins from the Total number of descendants and spouses.

  1. Descendants adopted by a subsequent spouse: When a descendant has a child and remarries, and the second spouse adopts the child, that child will be listed twice in descendancy charts, but will be counted only once in the Count Descendants chart. If there are any children in this situation, the count will be shown below the results table
  2. Spouses who marry more than one descendant: When this occurs, the spouse is counted only once, and the count of such spouses is listed below the results table.

Mod Options

None. This mod does add a selection list choice to the initial descendant chart field at Admin>>Setup>>Chart Settings>>Descendancy Chart. This allows the Count Descendant chart to be the default descendant chart.

Related Mods

[Show Content]
[Hide this Section]

TextPlus Charts

First, if you want to use both Count Descendants and TextPlus Charts in TNGv12 or beyond, you should install Count Descendants v12 and TextPlus Charts v19 (or later versions)

This mod coordinates with TextPlus Charts in two distinct ways.

  1. Inner menu links:
    • The Count Descendants chart program installed by this mod contains an innermenu link to the Text+ Descendant chart. That link is displayed only if the TextPlus Charts mod is installed.
    • Similarly, the Text+ Descendant Chart installed by TextPlus Charts contains a link to the Count Descendants chart, and that link is displayed only if the this mod (Count Descendants is installed.
  2. The Admin >> Setup >> Chart Settings form
    Both mods add options to the "Initial Display" selection box in the "Descendancy Chart" section of the Admin>>Settings>>Char Settings form

Show Mod Names

Like almost all of my mods, the code installed by TextPlus Charts collects information that can be used by Show Mod Names, but only if Show Mod Names is installed. TextPlus Charts is not dependent on Show Mod Names.

[Hide the Related Mods Section]


No conflicts that I know of.


In TNGv13, the mod's subfolder also contains critical files that contain the mod's language strings, which the mod does not add to standard cust_text.php files. Instead, the PHP code modified by this mod loads the language strings from files in the mod's languages/ subfolder. Read more about this technique and its procedure for handling site-specific language string overrides.

[TNGv12 considerations]

In TNGv12 only, there is a second mod subfolder, which is shared by several mods. The folder RR-shared_mod_includes_v12.0.0.4 contains Include files that help to manage mod options in many of my mods:

  1. rrshared_modsettingsblocks4.php - Mod Settings Blocks
  2. img/rrshared_wikilogo.gif - An icon that links to a mod's TNG Wiki page from a Mod Settings Block

Each mod that contains the shared folder may install some or all of its shared files, depending on whether those files already exist. Once a file from the shared folder has been installed (by any mod), that file will not be overwritten or removed by the subsequent installation or un-installation of any mod (including this one), nor will its presence or absence generate any Mod Manager errors.

If you unzip mod distribution files directly into your mods folder, then the presence of the shared subfolder and the installation of its files should be invisible to you. But if you generally copy mod subfolders to your mods folder after you have unzipped the distribution file, then you need to make sure to copy the folder RR-shared_mod_includes_v12.0.0.4 (well, unless you are confident that it is already in your mods folder because it was part of another mod).

[Hide TNGv12 considerations]

Files Installed

The program rrcount_descendants.php.

[Show Installation Details]


  • A working TNG installation.
  • An installed current version of the Mod Manager.
  • You should backup files listed in the panel on the right.


  1. Remove and delete previous version of this mod.
  2. Backup the files updated by this mod. They are listed in the panel at the upper right.
  3. Download the .zip file, Extract its .cfg file to the mods folder.
  4. Follow the normal automated installation for Mod Manager, as shown in the example Mod Manager - Installing Config Files.


  1. Try using the Mod Manager Remove capability
  2. Contact me through My Mod Support form.
[Hide Details]


This mod creates a new program, so there is no 'Before' visualization.

1. A screenshot of the main results table
  1. Compared to the native chart programs, this program moves the "Generations" selection box to a second line in the "inner menu", and replaces it with a "Chart Types" label.
    • The information icon next to the "Chart Types" label comes from the Chart Types Help mod, and pops up a description of each of the descendant charts
  2. The number of generations that has been selected for display in the chart is 10. Because there are more than 10 generations of Kuykendall descendants. the message "There are more descendants" is displayed just below the results table.
  • The two checkboxes in the second line of the Innermenu hide and display the two sets of table column shown inside the purple box.
  • The count of two living descendants in generation 8 (where the birth year range is 1835-1904) reveals data errors. You should be able to find them by search for living people born before the last year shown in that row.
  • Descendants who marry a cousin are counted as both a descendant and as a spouse - and are counted and listed with the heading "Marriages between cousins". The actual number of descendants is the Total outlined in red (1266) minus the number of "Marriages between cousins" (5; also outlined in red), or 1261.
  • Each count and "Show Them" button below the results table is shown only if there are records that match that condition.
Count descendants12-after.jpg
2. Some details from the counts below the results table

The first two "Show them" buttons have been clicked. Note that "Descendants who married cousins" always come in pairs.

Count descendants10a-after2.jpg
3. More details from the counts below the results table

This screenclip shows the descendant surname cloud (with 79 names), and a portion of the pop-up panel that results from clicking on the name "HUTCHESON". The fact that some names are capitalized and some are not is juts an artifact of the TNG site from which this screenshot was generated, where the surnames of the owner's direct ancestors are capitalized.

Count descendants10a-after3-cloud.jpg
4. AFTER: A portion of the table showing Surname Counts by Generation
Count descendants12a-after4-surnamecounts.jpg
This table can also be sorted by the count of people with each surname.
Count descendants12a-after4-surnamessorted.jpg
5. AFTER: Admin>>Setup>>Chart Settings options form

You can see the new option "Count", and the help icon. When you mouse over the help icon, the text "New Option(s)" is displayed.

Count descendants12-options.jpg

Inner Menu Links

As noted above, this mod places a link to the Descendant Count program in the Inner Menu of all of the native Descendant Chart programs. But it handles the generations count differently from the native programs:

  1. Innermenu links to other descendant charts: The native TNG Descendant Charts all pass their Generation count to any other native Descendant Charts when the second chart program is invoked from the first chart program's Innermenu. But since the Count Descendants chart can quickly print more generations than most charts, the generation count specified in the Count Descendants chart is not always passed to the other program in its Innermenu:
      • It passes the TNG system value "Initial Descendant Generations" ($pedigree['initdescgens']; typically equal to 4) to the PDF chart and the two variants of descend.php (Standard and Compact).
      • It passes its generation count to the remaining native charts (text, register), etc.), but only if its generation count is no more than the TNG system variable for the maximum number of descendant generations ($pedigree['maxdesc']; usually equal to 12).
      • It passes its generation count in full to the "Male Lines" and "Female Lines" charts (from Male Female and Parent Lines) and the TextPlus Descendant chart (from TextPlus Charts) -- if they are installed.

Language Strings

In TNGv13, this mod stores its language strings (for all languages) in the languages folder within the mods subfolder, in files named {language}_custtext.php (e.g English_custtest.php, French_UTF8-custtext.php). There is typically no need for separate file for English-UTF8.

This technique for storing custom text files has several advantages, including that translators can create, test, and edit language files without having to uninstall and reinstall the mod.

Specifying site-specific overrides to language strings is not as straightforward as it is with conventional cust_text.phpfiles. Read about the problem and the solution.

Revision History

Mod Version TNG Version Date Note
v13.0.0.12b2 13.0-13.0.1 7Jan2021
  • Language updates for Danish and Spanish.
  • Fixed capitalization of accented characters in UTF-8 surnames
  • Added inner menu links to and from the descendant vertical chart, which is (at least relatively) new to TNG
v13.0.0.12b 13 6Oct2020
  • Upgraded to TNGv13 by accommodating new new isset() and empty() function calls.
  • Fixed the primary descendant counts table, which was showing counts for "self", but wasn't putting that label in the table.
v12.0.0.12a 12.0 - 12.3 10May2020 The table of Surname counts by generation can now be sorted by the count. Internal changes include:
  1. The language strings now provide more flexibility for languages that use different ways to identify the descendant generations.
  2. The language strings have been moved from cust_text.php files to files inside the mod subfolder.
v12.0.0.10a 12.0 - 12.0.2+ 9Nov2018
  1. Counts of living people (by generation) have been added in new columns in the table of descendant.
  2. The range of descendants' birth years (by generation) has been added in a new column in the table of descendant counts.
  3. The strategy for passing the number of generations processed by Count Descendants to the other Descendant Inner Menu programs has changed, as described in the Notes section above.
  4. The phrase "Descendant Count for" has been added to the name in the page title, and the page heading.
  5. (The short-lived version 10 didn't display the new column headings correctly in all templates.)
v12.0.0.9a 12.0 - 12.0.2+ 25 Oct 2018 Added surname clouds and a breakdown of descendant surname clouds by generation. Also replaced my little blue information icon style with the new image that was distributed with TNGv12. (See the last visualization above.) The mod is now fully compatible with TNGv12, and, as described above, coordinates more closely with TextPlus Charts v15.
v10.1.0.7c 10.1 - 11.1.2+ 25 Jan 2018 Again, no functional changes; just removed the second line of cust_text.php target location strings for compatibility with anticipated changes in TNGv12.

Sites using this mod

If you download and install this mod, please add your site to the table below.

URL User Note Mod-Version TNG-Version User-language
Robin Richmond's Genealogy Database Robin Richmond Mod developer 13.0.1 English
Family tree of Marcin & Emilia Senderski Marcin Senderski Only home page is public 13.0.4 EN, PL
Brady Family Tree in Western Australia Darryl Brady Public site 10.1.1 EN, DE
MOTYER Family Genealogy John Mark Motyer Public site See here See here EN
Wortelboer Genealogy Bernard Wortelboer Public site 11.0.0 NL, EN
DJCM.DK Claus Martinussen Public site 10.1.3 DA, EN
Kemp(e) Family History Andrew Kemp Public site see User:Kempons see User:Kempons EN
Kleinmann Genealogy John Kleinmann 13.0.1 EN
Hooley Family Links Rick Hooley Public/Private See Here See Here EN
An Aotearoa Genealogy Website Merv Priestley Public & Private, modified v10.1.0.7c 12.0.2 EN
Roots & Relatives Remembered Ron Krzmarzick Public & Private See Here See Here EN,DE,CS,ES
Racine d'Alsace J-Louis Valory Private 13.0 FR
Martius Genealogy Hendrik Martius Public/Private 12.0.3 DE, EN, NL, FR
Journeys in Genealogy Patrick Thrush Public WordPress/TNG bundle 12.0.3 English
Our Family Histories Bryan S. Larson Public - T8 customized see here see here EN
The Duttons of New England Darrin Dutton Public / Private 13.0.2 EN
Weikop Slægstræ Karsten Weikop Public / Private 13.0.2 DK
Joseph Oran Holtz Genealogy Pages Jim Holt Private See Here See Here EN
Braymen / Munderloh Chris Braymen Public / Private 13.1.2 EN
[Show Older Versions]
[Hide Older Versions]
Mod Version TNG Version Date Note
v10.1.0.7b 10.1 - 11.1.2+ 11 Jun 2017 No real function changes; just changed the font size of the help button and hyperlink on the Admin>>Options>Charts screen.
v7a 10.1+ 10 May 2017 No real function changes
  1. Followed Roger Mitchell's suggestion to add borders to the results table.
  2. Added a mod Parameter that can suppress the border & heading styling.
  3. Eliminated the language .cfg file by moving the German and Dutch strings to this file.
  4. Show Mod Names is now optional, and a style class was defined in an embedded style sheet to remove a dependency on Blue Info Button
Count Descendants v6 10.0 - 10.0.3 25 May 2015 Moved the "Count" innermenu link from before the "PDF" link to the end of the inner menu, to avoid conflicts with a new mod.
Added a right-justified footer that displays the program name and version number.
For the TNGv10 variant only, fixed the database calls that were broken in v5 of the mod. [[|Download Modv6 for TNGv10.0]
Languages v5 10.0 - 10.1.1 25 May 2015 Small changes to German translation; added HTML entities to German non-UTF8.
Count Descendants v5 10.0 - 10.1.1 1 May 2015 Martin Pannier found two HTML typos that caused the copyright footer to be mispositioned.
v4a & languages file 10.0 - 10.1.1 30 Apr 2015 - The base mod with English strings is unchanged.

- The Danish, German, and Dutch translations are in a separate file.

v4 10.0 - 10.1.1 18 Apr 2015 - A new, more understandable (and more translatable) way of displaying special counts below the table of descendant counts,

- Handles Danish terminology that counts great*(n)grandparents differently,
- Adds the option in Administration >> Setup >> Charts to allow Count Descendants to be the default descendants chart, and
- Torben Devantie added Danish translations

v3 10.0 - 10.1.1 15 Apr 2015 Eliminated the duplicates caused when cousins marry each other, and displays other duplicates.
v2 10.0 - 10.1.1 12Apr2015 Bernard Wortelboer added Dutch translations and caught some untranslated strings.
v1 10.0 - 10.1 4Apr2015 Initial Release
[Hide Older Versions]