fisharebest/webtrees

View on GitHub
resources/views/modules/pedigree-chart/chart-down.phtml

Summary

Maintainability
Test Coverage
<?php

declare(strict_types=1);

use Fisharebest\Webtrees\Individual;
use Illuminate\Support\Collection;

/**
 * @var Collection<int,Individual> $ancestors   Indexed by sosa number
 * @var int                        $generation  Draw this generation
 * @var int                        $generations Final generation to draw
 * @var Collection<int,string>     $links       Links to extend the tree
 * @var int                        $sosa        Draw this individual
 * @var string                     $spacer
 */
?>

<div class="d-flex flex-column">
    <div class="position-relative d-flex justify-content-center wt-pedigree-generation wt-generation-fwd-<?= $generation ?> wt-generation-rev-<?= 1 + $generations - $generation ?>">
        <!-- lines to the next generation -->
        <?php if ($generation < $generations) : ?>
            <div class="wt-pedigree-lines position-absolute"></div>
        <?php endif ?>

        <div class="d-flex flex-column align-items-center position-relative">
            <?php if ($sosa === 1) : ?>
                <?= $links->get(1) ?>
            <?php endif ?>

            <?= view('chart-box', ['individual' => $ancestors->get($sosa)]) ?>

            <?php if ($generation === $generations) : ?>
                <?= $links->get($sosa, $spacer) ?>
            <?php endif ?>
        </div>
    </div>

    <?php if ($generation < $generations) : ?>
        <div class="d-flex">
            <?= view('modules/pedigree-chart/chart-down', ['ancestors' => $ancestors, 'sosa' => $sosa * 2, 'generation' => $generation + 1, 'generations' => $generations, 'links' => $links, 'spacer' => $spacer]) ?>

            <?= view('modules/pedigree-chart/chart-down', ['ancestors' => $ancestors, 'sosa' => $sosa * 2 + 1, 'generation' => $generation + 1, 'generations' => $generations, 'links' => $links, 'spacer' => $spacer]) ?>
        </div>
    <?php endif ?>
</div>