diff options
author | Minteck <contact@minteck.org> | 2022-01-12 18:58:54 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-01-12 18:58:54 +0100 |
commit | d0982c5250d2e33c824ddccb8bd245ca39faa724 (patch) | |
tree | 0b1fac648c4214c29f22629555ada2f3a2dcdb5d /tree | |
parent | 6dc0f517f78af1ff3f7d9fd763873194517ff4fd (diff) | |
download | genealogy-d0982c5250d2e33c824ddccb8bd245ca39faa724.tar.gz genealogy-d0982c5250d2e33c824ddccb8bd245ca39faa724.tar.bz2 genealogy-d0982c5250d2e33c824ddccb8bd245ca39faa724.zip |
Upadte
Diffstat (limited to 'tree')
-rw-r--r-- | tree/index.php | 49 | ||||
-rw-r--r-- | tree/mktree.php | 165 |
2 files changed, 214 insertions, 0 deletions
diff --git a/tree/index.php b/tree/index.php new file mode 100644 index 0000000..837c6f1 --- /dev/null +++ b/tree/index.php @@ -0,0 +1,49 @@ +<?php + +setlocale(LC_ALL, 'fr_FR.UTF-8'); +$data = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/private/data/people.json"), true); + +function getplace($place) { + $info = false; + + if (isset($place["city"])) { + $info = true; + echo("<a href='/search/city/?q=" . $place["city"] . "'>" . $place["city"] . "</a><br>"); + } + + if (isset($place["dept"])) { + $info = true; + echo("<a href='/search/dept/?q=" . $place["dept"] . "'>" . $place["dept"] . "</a><br>"); + } + + if (isset($place["country"])) { + $info = true; + echo($place["country"] . "<br>"); + } + + if (!$info) { + echo("Non renseigné"); + } +} + +if (isset($_GET['_']) && trim($_GET['_']) !== "" && isset($data[$_GET['_']])) { + $id = $_GET['_']; + $person = $data[$_GET['_']]; +} else { + header("Location: /"); + die(); +} + +$_TITLE = "Arbre généalogique | " . $person["famname"] . " " . $person["surname"] . " (#" . $id . ")"; require_once $_SERVER['DOCUMENT_ROOT'] . "/private/header.php"; ?> +<div class="container"> + <h1> + <?= $person["famname"] . " " . $person["surname"] . " <span class='text-muted'>#" . $id . "</span>" ?> + <a style="float:right;position: relative;top: 7px;" href="/person/?_=<?= $id ?>" class="btn btn-outline-primary">Voir les détails</a> + </h1> + <br> + <br> + + <iframe src="/tree/mktree.php?_=<?= $id ?>" style="border:none;width:100%;height:50vh;border-radius:5px;"></iframe> +</div> +<br> +<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/private/footer.php"; ?>
\ No newline at end of file diff --git a/tree/mktree.php b/tree/mktree.php new file mode 100644 index 0000000..d296c61 --- /dev/null +++ b/tree/mktree.php @@ -0,0 +1,165 @@ +<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/../session.php"; + +$data = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/private/data/people.json"), true); + +if (isset($_GET['_']) && trim($_GET['_']) !== "" && isset($data[$_GET['_']])) { + $id = $_GET['_']; + $person = $data[$_GET['_']]; +} else { + // TODO: handle error + die(); +} + +// Father +$found = false; +foreach ($data as $potid => $potential) { + if (isset($potential["family"]) && count($potential["family"]["children"]) > 0 && in_array($id, $potential["family"]["children"]) && $potential["sex"] !== "F") { + $found = true; + $dad = $potential["famname"] . " " . $potential["surname"]; + $dadId = $potid; + } +} + +if (!$found) { + $dad = "???"; +} + +// Mother +$found = false; +foreach ($data as $potid => $potential) { + if (isset($potential["family"]) && count($potential["family"]["children"]) > 0 && in_array($id, $potential["family"]["children"]) && $potential["sex"] === "F") { + $found = true; + $mom = $potential["famname"] . " " . $potential["surname"]; + $momId = $potid; + } +} + +if (!$found) { + $mom = "???"; +} + +// Mother's data +if (isset($momId)) { + // Father + $found = false; + foreach ($data as $potid => $potential) { + if (isset($potential["family"]) && count($potential["family"]["children"]) > 0 && in_array($momId, $potential["family"]["children"]) && $potential["sex"] !== "F") { + $found = true; + $momDad = $potential["famname"] . " " . $potential["surname"]; + $momDadId = $potid; + } + } + + if (!$found) { + $momDad = "???"; + } + + // Mother + $found = false; + foreach ($data as $potid => $potential) { + if (isset($potential["family"]) && count($potential["family"]["children"]) > 0 && in_array($momId, $potential["family"]["children"]) && $potential["sex"] === "F") { + $found = true; + $momMom = $potential["famname"] . " " . $potential["surname"]; + $momMomId = $potid; + } + } + + if (!$found) { + $momMom = "???"; + } +} else { + $momMom = "???"; + $momDad = "???"; +} + +// Father's data +if (isset($dadId)) { + // Father + $found = false; + foreach ($data as $potid => $potential) { + if (isset($potential["family"]) && count($potential["family"]["children"]) > 0 && in_array($dadId, $potential["family"]["children"]) && $potential["sex"] !== "F") { + $found = true; + $dadDad = $potential["famname"] . " " . $potential["surname"]; + $dadDadId = $potid; + } + } + + if (!$found) { + $dadDad = "???"; + } + + // Mother + $found = false; + foreach ($data as $potid => $potential) { + if (isset($potential["family"]) && count($potential["family"]["children"]) > 0 && in_array($dadId, $potential["family"]["children"]) && $potential["sex"] === "F") { + $found = true; + $dadMom = $potential["famname"] . " " . $potential["surname"]; + $dadMomId = $potid; + } + } + + if (!$found) { + $dadMom = "???"; + } +} else { + $dadMom = "???"; + $dadDad = "???"; +} + +?> +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Tree maker 🌳</title> + <link rel="stylesheet" href="../lib/tree_maker-min.css"> + <script type="text/javascript" src="../lib/tree_maker-min.js"></script> +</head> +<body> +<div id="my_tree"></div> +<script type="text/javascript"> + let tree = { + 0: { + 1: { + 3: '', + 4: '' + }, + 2: { + 5: '', + 6: '' + } + } + }; + + let treeParams = { + 0: {trad: "<b><?= $person["famname"] ?> <?= $person["surname"] ?></b>", id: "<?= $id ?>"}, + 1: {trad: "<?= $mom ?>", id: "<?= $momId ?>"}, + 2: {trad: "<?= $dad ?>", id: "<?= $dadId ?>"}, + 3: {trad: "<?= $momMom ?>", id: "<?= $momMomId ?>"}, + 4: {trad: "<?= $momDad ?>", id: "<?= $momDadId ?>"}, + 5: {trad: "<?= $dadMom ?>", id: "<?= $dadMomId ?>"}, + 6: {trad: "<?= $dadDad ?>", id: "<?= $dadDadId ?>"}, + }; + + treeMaker(tree, { + id: 'my_tree', card_click: function (element) { + if (treeParams[element.id.substr(5)].trad !== "???") window.parent.location.href = "/tree/?_=" + treeParams[element.id.substr(5)].id; + }, + treeParams: treeParams, + 'link_width': '4px', + 'link_color': '#fff', + }); +</script> +<style> + body, html { + font-family: sans-serif; + } + .tree__container__step__card__p { + background: white; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } +</style> +</body> +</html> |