STB/stb/views/person/nachkommen.php

366 lines
16 KiB
PHP
Executable File

<?php
$thisPage="nachkommen";
include __DIR__ . "./../layout/header.php";
include __DIR__ . "./../layout/navigation.php";
include __DIR__ . "./../layout/css/navi.css";
include __DIR__ . "./../layout/css/box_tafel.css"; ?>
</head>
<body id="Anfang">
<?php
global $box, $col, $col_1, $top, $delta_l, $delta_h, $h_box_halbe, $delta_sp, $ladezeit, $child_children;
// *********** difine boxes: box is 200 wide und 60 hight
$b = 0; // Rückgabe von display_data (anzahl boxes)
$top = 120; // Anfangshöhe
$botom = 780;
$top_max = $top; // Bestimmt den Anfang des footers
$delta_l = 270; // Abstand Spalte zu Spalte
$delta_sp = 10; // space between boxes
$h_box_halbe = 30; // halbe Boxhöhe
$h_box = 2 * $h_box_halbe; // Boxhöhe
$delta_h = $h_box + $delta_sp; // Abstand (Höhe) zur Partnerbox
$t_arr = $top + $h_box_halbe; // arrow left
$col_1 = 60; // Abstand links zur ersten Spalte
$col_2 = $col_1 + (1 * $delta_l);
$col_3 = $col_1 + (2 * $delta_l);
$col_4 = $col_1 + (3 * $delta_l);
$col_5 = $col_1 + (4 * $delta_l);
// ***************** functions *************************************************
function fill($person, $info) { // fill the box
$info = "";
if (isset($person->member_id)) {
$id = $person->member_id;
if ($person->gender == 1){$g = "m";$img ="male.jpg";} else {$g = "f";$img ="female.jpg";}
if ($person->member_img != "") { $img = $person->member_img;}
$period = periode($person);?>
<div class='basic "<?php echo $g?>box"'> <!--// m- oder fbox -->
<table><tbody><tr>
<td>
<a href='familienblatt?id=<?php echo $id?>'/>
<span class="info"><img src="../../photos/<?php echo $img;?>"
title='Familienblatt anzeigen' border='0' alt='Foto Person' width='40' height='50' /></span></a></td>
<td>
<a href='nachkommen?id=<?php echo $person->member_id?>' title='neue Person' <?php
echo "<b>".$info."</b>".$person->first_name." ".$person->last_name."</a></b><br>";?>
<b><img src="../../img/<?php echo $g.".jpg";?>" /></b> <?php
echo periode($person)." => ".alter($person). "J.";?></td></tr>
</table>
</div><?php
return true;} else { return false;} // member_id vorhanden
} ?>
<!--***************** zeichne Box *******************************************
$col: Spalte 1 bis 5
$box: Box-Nr. von oben gezählt
$box_before: Anzahl Boxes vorher
$bol_f: erster Durchlauf? --> <?php
function display_box ($data_0, $data_1, $col, $box, $box_before, $bol_f) {
global $col, $col_1, $top, $delta_l, $delta_h, $h_box_halbe, $delta_sp, $child_children;
$anzahl = $anz_partner = 0; // returnwert anzahl boxes
$h_box = 2 * $h_box_halbe; // Boxhöhe = 2*30px
$delta_h = $h_box + $delta_sp; // Abstand zur Partnerbox (10px)
$boxes = $box - $box_before; // Nr. der Box
if ($boxes != 0){$boxes--;}
$t_up = $boxes * $delta_h; // Länge Verbindung zur vorherigen Box
$t = $top + ($box * $delta_h); // $top = absolute oberste Position
$t0 = $t + $h_box_halbe + $delta_h; // Partnerbox von oben (110)
$t1 = $t + $h_box; // Ende Personenbox unten (beginn Linie zum Partner)
$t2 = $t + $h_box_halbe; // Mitte Box child
$t3 = $t - $h_box_halbe - 20; // Senkrechte zur Box (Bruder/Schwester)
$t4 = $t3 - $t_up; // Senkrechte zur Box (Bruder/Schwester)
$t_p = $t + $delta_h; // top der Partnerbox (80)
$left = $col_1 + ($col * $delta_l); // Anfangsabstand links + 3 Spalten mit je delta_l (230)
$left0 = $left - 40;
$left1 = $left + 20; // senkrechte Linie zum Partner
$left2 = $left + 40; // Partnerbox von links
$left3 = $left - 20; // senkrechte Verbindungslinie Kinder
$left4 = $left1 + 215; // Pfeil Kindes-Kind
$verh = "⚭";
$gesch = "⚯";
$verstorben = "†";
$gefallen = "X";
$info = "";
// erster Durchlauf
$bol_first = $bol_f;
if (!empty($data_0)) { $bol_d0 = true;} else {$bol_d0 = false;} // data_0 nicht leer
if (!empty($data_1)) { $bol_d1 = true;} else {$bol_d1 = false;} // data_1 nicht leer
if (!$col==0){$anz_partner = count($data_1);}else {$anz_partner = 1;}
if ($col != 0) { //linke waagerechte Anknüpfung an Box (nict für Generation 0)?>
<div class="line_v" style="top:<?php echo $t2;?>px;left:<?php echo $left3;?>px;"></div><?php
if ($bol_first == true){ // Verbindungslinie von waagerechter Anknüpfung nach oben?>
<div class="line_h1" style="top:<?php echo $t2;?>px;left:<?php echo $left3;?>px;"></div>
<div class="line_v" style="top:<?php echo $t0;?>px;left:<?php echo $left0;?>px;"></div><?php
}
}
if ($bol_first == false) { // Senkrechre zur nächsten Box (Bruder/Schwester)?>
<div class="line_h1" style="top:<?php echo $t3+10;?>px;left:<?php echo $left3;?>px;"></div>
<div class="line_h" style="top:<?php echo $t4+10;?>px;left:<?php echo $left3;?>px;
height:<?php echo $t_up;?>px;">
</div><?php
}?>
<div class "sib_box" style="position:absolute; top:<?php echo $t;?>px; left:<?php echo $left;?>px;
box-shadow:4px 4px 4px #999999;"><?php
$status = $verh;
if (isset($data_0['member_id'])) {
fill($data_0, $box); // Box für Person
} else {
$gen = "m";
leereBox($gen);
$anz_partner = 1;
}
$anzahl ++; // anzahl boxes + 1 ?>
</div><?php
// ************************* Partnerbox ****************************************
$t_part = 0; // Differenz zwischen Partnerboxen
if ($anz_partner == 0) {
$bol_d1 = false;
} else {
$status = $verh;
for ($b = 0; $b < $anz_partner; $b++){
// senkrechte Verbindungslinien Partner an die Box der Person?>
<div class="line_h0" style="top:<?php echo $t1+$t_part;?>px;left:<?php echo $left1;?>px;"></div>
<div class="line_v" style="top:<?php echo $t0+$t_part;?>px;left:<?php echo $left1;?>px;"><?php
if (isset($data_1[$b]['place_of_death'])) {
if ($data_1[$b]['place_of_death'] == "gefallen"){
$status = $gefallen;
}
}
echo "<b>".$status."</b>"; ?>
</div>
<div class "sib_box" style="position:absolute;top:<?php echo $t_p+$t_part;?>px;left:<?php echo $left2;?>px;
box-shadow:4px 4px 4px #999999;"><?php
if (isset($data_1[$b]['member_id'])) {
fill($data_1[$b], $box+1);
} else {
$gen = "f";
leereBox($gen);
}
$status = $gesch;
$anzahl ++;
$t_part = $t_part + 70; // neue Differenz zwischen Partnerboxen?>
</div><?php
}
}
return $anzahl; // Anzahl der gezeichneten Boxes
}
// ****************** create an empty box with gender picture ******************
function leereBox($g) {
global $col;
echo "<div class='basic ".$g."box"."'>";
echo "<center><b><img src='../../img/".$g.".jpg'></b>&nbsp;";
if ($col==0){echo "Großeltern<br>";}
if ($col==1){echo "Eltern<br>";}
echo "unbekannt</center></div>";
}?>
<!--*********** end functions *************************************************
<div class="d-flex align-items-center">
<strong>Loading...</strong>
<div class="spinner-border ml-auto" role="status" aria-hidden="true"></div>
</div> --><?php
$strHeader = "Vorfahren und Nachkommen einer ausgewählten Person: ";
$l = strlen($strHeader)*12; // Position des Headers berechnen
$len_h = strlen($strHeader)*12;
$t = 60; ?>
<div class="container" id="myTable">
<div class="starter-template" >
<!-- **************** Auswahl der Person ************************************-->
<form action="<?php echo "?id=".$person->member_id; ?>">
<div style="z-index:2;left:<?php echo $len_h;?>px;top:<?php echo $t;?>px;height:30px;">
<p><strong><?php echo $strHeader." ";?></strong>
<select name="id" onchange="submit()" style="background-color:lightyellow;">
<option value="null"> Bitte Person auswählen<?php
foreach ($persons as $pers) {
if ($pers->member_id == $person->member_id) { ?>">
<option selected value="<?php echo $pers->member_id; ?>"> <?php
} else { ?>
<option value="<?php echo $pers->member_id;?>"> <?php
}
echo jahr($pers->day_of_birth)."&nbsp;&nbsp;".$pers->last_name.", ".$pers->first_name;?>
</option><?php
} ?>
</select>
</p>
</div>
</form>
<?php
// ********************************** Überschriften ****************************
$ueberschrift = array("Großeltern", "Eltern", "Person", "Kinder", "Enkel");
$anz_ueberschiften = count($ueberschrift);
$str_div = "<div style='position:fixed;z-index:2; top:";
$top_1 = $top-25;
$str_p0 = "<p><strong>";
$str_p1 = "</strong></p></div>";
// Überschriften - keine fixe Position?>
<div style="position:fixed;z-index:2;top:<?php echo $top-60;?>px; left:<?php echo $len_h;?>px;"></div><?php
$len_h = $col_1 + 40; // Abstand zur ersten Spalte + 40
for ($i=0; $i < $anz_ueberschiften; $i++) {
echo $str_div.$top_1."px;"."left:".$len_h."px;';>".$str_p0.$ueberschrift[$i].$str_p1; //die();
$len_h = $len_h + $delta_l;
} ?>
</div>
</div>
<!-- ********** linker Block zur Erklärung ********************************* -->
<div id="leftarrow" style="position:absolute; top:<?php echo ($top+160).'px;'.'left:'.$col_1;?>px;z-index:5;">
<strong>Weitere Vorfahren:</strong></br>
<!-- ********** sowie gelber Pfeil nach links ****************************** -->
<img border="0" src="../../img/ArrowLeft.gif" width="10" height="15" align="left"
title=" => Vorfahr" alt=" => Vorfahr" style="margin-right:5px"/><?php
// ********** Vorfahren väterlich ****************************************
if (isset($gen_00[0]->member_id)){
echo "<a href='nachkommen?id=".$gen_20[0]->member_id."'><strong>"
.$gen_00[0]->first_name." ".$gen_00[0]->last_name
."</a></strong></br>&nbsp;&nbsp; * ".date_german($gen_00[0]->day_of_birth)."</br>";
} else { echo "keine Daten</br>"; }?>
<!-- ********** zweiter gelber Pfeil nach links **************************** -->
<img border="0" src="../../img/ArrowLeft.gif" width="10" height="15" align="left"
title=" => Vorfahr" alt=" => Vorfahr" style="margin-right:5px"/><?php
// ********** Vorfahren mütterlich ***************************************
if (isset($gen_01[0]->member_id)){
echo "<a href='nachkommen?mid=".$gen_01[0]->member_id."'><strong>"
.$gen_01[0]->first_name." ".$gen_01[0]->last_name
."</a></strong></br>&nbsp;&nbsp; * ".date_german($gen_01[0]->day_of_birth)."</br></br>";
} else { echo "keine Daten</br></br></br>"; } ?>
<strong>Weitere Nachfahren:</strong></br>
<img border="0" src="../../img/ArrowRight.gif" width="10" height="15" align="left"
title=" => Vorfahr" alt=" => Vorfahr" style="margin-right:5px"/><?php
echo "Link auf Eltern der Kindes-Kinder<br><br>"?>
<!-- ********** Hinweise zur Webseite ************************************** -->
<div class="box" style='left:0px; width:250px; top:110px;'>
<p><strong><font color=blue>Hinweise zu dieser Webseite<br></font></strong></p>
<li>
Ein Click auf das <strong>Bild</strong> einer Person ruft das Familienblatt auf</br>
</li><br>
<li>
Ein Click auf den <strong>Namen</strong> erzeugt eine neue Ausgangsbasis<br>
</li><br>
<li>
Die <span style="background-color:lightyellow;
border:1px; border-style:solid; border-color:lightgrey;"> Auswahlliste</span> im Seitenkopf
erzeugt neue Ausgangsbasis
</li><br>
<li>
Familienstand:
<ul>
<li>
verheiratet: <b>&nbsp;&nbsp;⚭</b>
</li>
<li>
geschieden: <b>⚯</b><br>
</li>
<li>
gefallen: <b>X</b>
</li>
</ul>
</li>
</div>
</div>
<div><?php
echo $str_div.$botom."px;"."left:".$col_1."px;';>";?>
<img border="0" src="../../img/ArrowUp.gif" width="15" height="15" align="left"
title="Nach oben" alt="Nach oben" style="margin-right:5px"/>
<a href="#Anfang"><p><strong><font color="blue">zurück zum Seitenanfang</font></strong></p></a>
</div><?php
//************************************************************************
$i = 0; // index arrays
$j = 0; // onkel & tanten
$k = 0; // kinder
$l = 0; // enkel
$cp = 0; // child Partner
$row = $col = $b1 = $b2 = $b3 = $b4 = $b5 = 0;
// ******************* Grandfather gen_10; Grandmother_11 **********************
$box_before_0 = $box = 0; // first loop: Startbox = 0
$bol_f0 = true; //
$b1 = display_box($gen_10[0], $gen_11, $col=0, $box, $box_before_0, $bol_f0);
$bol_f0 = false;
$box_before_0 = $box; // aktuelle Box-Position
$box_before_1 = $box; // Startbedingungen neuer Zweig
$first_loop = true; // erster Gesamt-Durchlauf (steuert $box Position)
$i = 0; // Zähler für Personen und Partner
$bol_f1 = true; // erster Durchlauf
foreach ($gen_20 as $g2) {
if (!empty($g2)){
$b2 = display_box($g2, $gen_21[$i], $col=1, $box, $box_before_1, $bol_f1);
} else {
$b2 = display_box($g2, $gen_21, $col=1, $box, $box_before_1, $bol_f1);
}
$bol_f1 = false; // erster DL vorbei
$box_before_1 = $box; // aktuelle Box-Position
$box_before_2 = $box;
$j = 0;
$bol_f2 = True; // erster Durchlauf
foreach ($gen_30[$i] as $g3) {
$b3 = display_box($g3, $gen_301[$i][$j], $col=2, $box, $box_before_2, $bol_f2);
$bol_f2 = false; //erster DL vorbei - echo "Anzahl ".$b."</br>";
$box_before_2 = $box;
$box_before_3 = $box; // schon gezeichnete Boxes
$k = 0; // Anzahl Kinder 0 0
$bol_f3 = true; // true für erster Aufruf
foreach ($gen_40[$i][$j] as $g4) {
$b4 = display_box($g4, $gen_401[$i][$j][$k], $col=3, $box, $box_before_3, $bol_f3);
$bol_f3 = false; // erster Durchlauf vorbei
$box_before_3 = $box;
$box = $box + $b4; // + anzahl (Rückgabewert)
$k++;
$box_before_4 = $box;
$bol_f4 = true; // erster Durchlauf
$b5 = 0;
foreach ($gen_500[$l] as $g5) { // Kindeskinder
$box = $box + $b5;
$b5 = display_box($g5, $gen_51[$cp], $col=4, $box-2, $box_before_4, $bol_f4);
$bol_f4 = false;
$box_before_4 = $box;
$cp++;
}
$l++; // nächstes Kind
}
if ($b4 <= $b3){ $korr = $b3;} else { $korr = $b4;}
if ($k == 0){$box = $box + $b3;} // wenn Kinder = 0:
if (($k == 1) && ($b4 == 1)){$box = $box + $korr - 1;} // bei einem kind
if (($k == 1) &&( $b4 == 2)){$box = $box + $korr - 2;} // bei einem kind
$j++;
}
if ($b3 <= $b2){ $korr_1 = $b2;} else { $korr_1 = $b3;}
if (($j == 0)){$box = $box + $b2;} // wenn Kinder = 0:
if (($j == 1) && ($b3 == 0)){$box = $box + $korr_1 - 1;}
if (($j == 1) && ($b3 == 1)){$box = $box + $korr_1 - 1;} // bei einem kind
if (($j == 1) &&( $b3 == 2)){$box = $box + $korr_1 - 2;} // - $korrektur;}
if ($first_loop == true) {
$box = $box + $b2 - 2;} // beim ersten Durchlauf
$first_loop = false;
$i++;
}
$top_max = (($box + 1) * $delta_h) + 100;?>
</div>
</div>
<?php
if ($top_max <= 800) {$top_max = 800; } //1600;?>
<!-- **** Beim runterscrollen verschwindet Kopfzeile **** -->
<script
src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
crossorigin="anonymous">
</script>
<?php
include __DIR__ . "/../js/hochschieben.js";
$t_footer = $top_max;
include __DIR__ . "/../layout/footer_e.php"; ?>
</div>