blob: 21d146b0a9be5aaddd17f13eb9ad3b4a0862b031 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
<?php global $system; global $systemCommonName; global $systemID; $title = "System tree · " . $systemCommonName; require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php';
$members = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemID-members.json"), true);
$members = scoreOrder($members, $systemID);
$subsystems = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemID-subsystems.json"), true) ?? [];
function getMember(string $id) {
global $systemID;
global $members;
$member = null;
foreach ($members as $m) {
if ($m["id"] === $id) $member = $m;
}
return $member;
}
function memberHasSubsystem(array $member) {
global $subsystems;
$has = false;
foreach ($subsystems as $subsystem) {
if ($subsystem["source_type"] === "member" && $subsystem["source"] === $member["id"]) {
$has = true;
}
}
return $has;
}
function memberPartOfSubsystem(array $member) {
global $subsystems;
$is = false;
foreach ($subsystems as $subsystem) {
if (in_array($member["id"], $subsystem["members"])) {
$is = true;
}
}
return $is;
}
function getMemberSubsystem(array $member) {
global $subsystems;
$subsystem = null;
foreach ($subsystems as $ss) {
if ($ss["source_type"] === "member" && $ss["source"] === $member["id"]) {
$subsystem = $ss;
}
}
return $subsystem;
}
?>
<br>
<div class="container" id="page-content">
<h2>System tree for the <?= $systemCommonName ?></h2>
<a class="tree-root member-link" href="/<?= $system ?>">
<img src="/assets/uploads/<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/" . $system . ".png") ? $system : "" ?>.png" style="width:24px;"> <span style="vertical-align: middle;"><?= $systemCommonName ?></span></a>
<?php $first = true; ?>
<?php foreach ($subsystems as $subsystem): if ($subsystem["source_type"] === "trait"): ?>
<div class="tree-l0">
<div class="tree-l0-separator<?= $first ? " tree-first-separator" : "" ?>"> </div>
<div class="tree-inner">
<a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/-/subsystem/<?= $subsystem["source"] ?>">
<img src="/assets/uploads/ss-<?= $subsystem["source"] ?>.png" style="width:24px;border-radius:5px;"> <span style="vertical-align: middle;"><?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemID-subsystem-$subsystem[source].json") ? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemID-subsystem-$subsystem[source].json"), true)["name"] : $subsystem["source"] ?></span>
</a>
</div>
<?php $ssfirst = true; foreach ($subsystem["members"] as $ssm): $ssmember = getMember($ssm); ?>
<div class="tree-l1">
<div class="tree-l0-separator"> </div>
<div class="tree-l1-separator<?= $ssfirst ? " tree-first-separator" : "" ?>"> </div>
<div class="tree-inner">
<a class="member-link" href="/<?= $ssmember["name"] ?>">
<img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $ssmember['name'] . ".png") ? "-" . $ssmember['name'] : "" ?>.png" style="width:24px;"> <span style="vertical-align: middle;"><?= $ssmember["display_name"] ?? $ssmember["name"] ?></span>
</a>
</div>
</div>
<?php $ssfirst = false; endforeach; ?>
</div>
<?php $first = false; endif; endforeach; ?>
<?php foreach ($members as $member): if (!memberPartOfSubsystem($member)): ?>
<div class="tree-l0">
<div class="tree-l0-separator<?= $first ? " tree-first-separator" : "" ?>"> </div>
<div class="tree-inner">
<a class="member-link" href="/<?= $member["name"] ?>">
<img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . resolveMember($member['name']) . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <span style="vertical-align: middle;"><?= $member["display_name"] ?? $member["name"] ?></span>
</a>
</div>
<?php if (memberHasSubsystem($member)): ?>
<?php $ssfirst = true; foreach (getMemberSubsystem($member)["members"] as $ssm): $ssmember = getMember($ssm); ?>
<div class="tree-l1">
<div class="tree-l0-separator"> </div>
<div class="tree-l1-separator<?= $ssfirst ? " tree-first-separator" : "" ?>"> </div>
<div class="tree-inner">
<a class="member-link" href="/<?= $ssmember["name"] ?>">
<img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $ssmember['name'] . ".png") ? "-" . $ssmember['name'] : "" ?>.png" style="width:24px;"> <span style="vertical-align: middle;"><?= $ssmember["display_name"] ?? $ssmember["name"] ?></span>
</a>
</div>
</div>
<?php $ssfirst = false;endforeach; ?>
<?php endif; ?>
</div>
<?php $first = false; endif; endforeach; ?>
</div>
<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/footer.php'; ?>
|