Example #1
0
function create_rel_array($gednr)
{
    // creates array of ancestors of person with gedcom nr. $gednr
    global $dbh, $db_functions;
    $family_id = $gednr;
    $ancestor_id2[] = $family_id;
    $ancestor_number2[] = 1;
    $marriage_number2[] = 0;
    $generation = 1;
    $genarray_count = 0;
    // *** Loop ancestor report ***
    while (isset($ancestor_id2[0])) {
        unset($ancestor_id);
        $ancestor_id = $ancestor_id2;
        unset($ancestor_id2);
        unset($ancestor_number);
        $ancestor_number = $ancestor_number2;
        unset($ancestor_number2);
        unset($marriage_number);
        $marriage_number = $marriage_number2;
        unset($marriage_number2);
        // *** Loop per generation ***
        $kwcount = count($ancestor_id);
        for ($i = 0; $i < $kwcount; $i++) {
            if ($ancestor_id[$i] != '0') {
                $person_manDb = $db_functions->get_person($ancestor_id[$i]);
                $man_cls = new person_cls();
                $man_cls->construct($person_manDb);
                $man_privacy = $man_cls->privacy;
                if (strtolower($person_manDb->pers_sexe) == 'm' and $ancestor_number[$i] > 1) {
                    @($familyDb = $db_functions->get_family($marriage_number[$i]));
                    // *** Use privacy filter of woman ***
                    $person_womanDb = $db_functions->get_person($familyDb->fam_woman);
                    $woman_cls = new person_cls();
                    $woman_cls->construct($person_womanDb);
                    $woman_privacy = $woman_cls->privacy;
                    // *** Use class for marriage ***
                    $marriage_cls = new marriage_cls();
                    $marriage_cls->construct($familyDb, $man_privacy, $woman_privacy);
                    $family_privacy = $marriage_cls->privacy;
                }
                //*** Show person data ***
                $genarray[$genarray_count][0] = $ancestor_id[$i];
                $genarray[$genarray_count][1] = $generation - 1;
                $genarray_count++;
                // increase by one
                // *** Check for parents ***
                if ($person_manDb->pers_famc) {
                    @($familyDb = $db_functions->get_family($person_manDb->pers_famc));
                    if ($familyDb->fam_man) {
                        $ancestor_id2[] = $familyDb->fam_man;
                        $ancestor_number2[] = 2 * $ancestor_number[$i];
                        $marriage_number2[] = $person_manDb->pers_famc;
                        $genarray[][2] = $genarray_count - 1;
                        // save array nr of child in parent array so we can build up ancestral line later
                    }
                    if ($familyDb->fam_woman) {
                        $ancestor_id2[] = $familyDb->fam_woman;
                        $ancestor_number2[] = 2 * $ancestor_number[$i] + 1;
                        $marriage_number2[] = $person_manDb->pers_famc;
                        $genarray[][2] = $genarray_count - 1;
                        // save array nr of child in parent array so we can build up ancestral line later
                    }
                }
            }
        }
        // loop per generation
        $generation++;
    }
    // loop ancestors
    return @$genarray;
}
Example #2
0
 function person_data($person_kind, $id)
 {
     global $dbh, $db_functions, $tree_id, $dataDb, $user, $language, $humo_option, $family_id, $uri_path;
     global $family_expanded, $change_main_person;
     global $childnr, $screen_mode, $dirmark1, $dirmark2;
     global $templ_person;
     global $sect, $arial12;
     // *** RTF export ***
     unset($templ_person);
     $personDb = $this->personDb;
     $privacy = $this->privacy;
     // *** Settings for mobile version, show details in multiple lines ***
     if ($person_kind == "mobile") {
         $family_expanded = true;
     }
     // *** $personDb is empty by N.N. person ***
     if ($personDb) {
         $tree_prefix_quoted = $personDb->pers_tree_prefix;
         $db_functions->set_tree_prefix($tree_prefix_quoted);
         $process_text = '';
         $temp = '';
         //*** PRIVACY PART ***
         $privacy_filter = '';
         if ($privacy) {
             if ($screen_mode == "mobile") {
                 return __('PRIVACY FILTER');
             } elseif ($screen_mode != "PDF") {
                 $privacy_filter = ' ' . __('PRIVACY FILTER');
             } else {
                 return;
             }
             // makes no sense to ask for login in a pdf report.....
         } else {
             // *** Quality (function show_quality can be found in script: family.php) ***
             // Disabled because normally quality belongs to a source.
             //if ($personDb->pers_quality=='0' or $personDb->pers_quality){
             //	$quality_text=show_quality($personDb->pers_quality);
             //	$process_text.= ' <i>'.ucfirst($quality_text).'</i>';
             //}
             // *** Show extra names of BK ***
             if ($personDb->pers_gedcomnumber) {
                 $eventnr = 0;
                 $name_qry = $db_functions->get_events_person($personDb->pers_gedcomnumber, 'name');
                 foreach ($name_qry as $nameDb) {
                     $eventnr++;
                     $text = '';
                     if ($nameDb->event_gedcom == '_AKAN') {
                         $text .= __('Also known as') . ': ';
                     }
                     // *** MyHeritage Family Tree Builder ***
                     if ($nameDb->event_gedcom == '_AKA') {
                         $text .= __('Also known as') . ': ';
                     }
                     if ($nameDb->event_gedcom == 'NICK') {
                         $text .= __('Nickname') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_ALIA') {
                         $text .= __('alias name') . ': ';
                     }
                     // For Pro-Gen
                     if ($nameDb->event_gedcom == '_SHON') {
                         $text .= __('Short name (for reports)') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_ADPN') {
                         $text .= __('Adopted name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_HEBN') {
                         $text .= __('Hebrew name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_CENN') {
                         $text .= __('Census name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_MARN') {
                         $text .= __('Married name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_GERN') {
                         $text .= __('Nickname') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_FARN') {
                         $text .= __('Farm name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_BIRN') {
                         $text .= __('Birth name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_INDN') {
                         $text .= __('Indian name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_FKAN') {
                         $text .= __('Formal name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_CURN') {
                         $text .= __('Current name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_SLDN') {
                         $text .= __('Soldier name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_FRKA') {
                         $text .= __('Formerly known as') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_RELN') {
                         $text .= __('Religious name') . ': ';
                     }
                     if ($nameDb->event_gedcom == '_OTHN') {
                         $text .= __('Other name') . ': ';
                     }
                     if ($eventnr > 1) {
                         $templ_person["bknames" . $eventnr] = ', ';
                         $process_text .= ', ';
                         $text = lcfirst($text);
                     } else {
                         $templ_person["bknames" . $eventnr] = '';
                         $text = ucfirst($text);
                     }
                     $templ_person["bknames" . $eventnr] .= $text;
                     if ($templ_person["bknames" . $eventnr] != '') {
                         $temp = "bk_names" . $eventnr;
                     }
                     $process_text .= $text;
                     if ($nameDb->event_date) {
                         $templ_person["bk_date" . $eventnr] = date_place($nameDb->event_date, '') . ' ';
                         if ($templ_person["bk_date" . $eventnr] != '') {
                             $temp = "bk_date" . $eventnr;
                         }
                         $process_text .= $templ_person["bk_date" . $eventnr];
                     }
                     $templ_person["bk_event" . $eventnr] = $nameDb->event_event;
                     if ($templ_person["bk_event" . $eventnr] != '') {
                         $temp = "bk_event" . $eventnr;
                     }
                     $process_text .= $nameDb->event_event;
                     $source = show_sources2("person", "pers_event_source", $nameDb->event_id);
                     if ($source) {
                         if ($screen_mode == 'PDF') {
                             $templ_person["bk_source" . $eventnr] = $source;
                             $temp = "bk_source" . $eventnr;
                         } else {
                             $process_text .= $source;
                         }
                     }
                     if ($nameDb->event_text) {
                         $templ_person["bk_text" . $eventnr] = ' ' . $nameDb->event_text;
                         $temp = "bk_text" . $eventnr;
                         $process_text .= $templ_person["bk_text" . $eventnr];
                     }
                 }
                 unset($name_qry);
             }
             // *** Own code ***
             if ($user['group_own_code'] == 'j' and $personDb->pers_own_code) {
                 if ($temp) {
                     $templ_person[$temp] .= ", ";
                 }
                 //$templ_person["own_code"]='('.ucfirst($personDb->pers_own_code).')';
                 $templ_person["own_code"] = ucfirst($personDb->pers_own_code);
                 $temp = "own_code";
                 if (!$process_text or $family_expanded == true) {
                     $text = '<b>' . __('Own code') . ':</b> ';
                 } else {
                     $text = ', <b>' . lcfirst(__('Own code')) . ':</b> ';
                 }
                 //	if ($process_text) $process_text.=', ';
                 //$process_text.='<span class="pers_own_code">'.$templ_person["own_code"].'</span>';
                 $process_text .= '<span class="pers_own_code">' . $text . $templ_person["own_code"] . '</span>';
             }
             // ****************
             // *** BIRTH    ***
             // ****************
             $text = '';
             if ($personDb->pers_birth_date or $personDb->pers_birth_place) {
                 $templ_person["born_dateplacetime"] = date_place($personDb->pers_birth_date, $personDb->pers_birth_place);
                 if ($templ_person["born_dateplacetime"] != '') {
                     $temp = "born_dateplacetime";
                 }
                 $text = $templ_person["born_dateplacetime"];
             }
             // *** Birth time ***
             if (isset($personDb->pers_birth_time) and $personDb->pers_birth_time) {
                 $templ_person["born_dateplacetime"] = ' ' . __('at') . ' ' . $personDb->pers_birth_time . ' ' . __('hour');
                 $temp = "born_dateplacetime";
                 $text .= $templ_person["born_dateplacetime"];
             }
             if ($user["group_texts_pers"] == 'j') {
                 $work_text = process_text($personDb->pers_birth_text);
                 if ($work_text) {
                     //$templ_person["born_text"]=", ".$work_text;
                     $templ_person["born_text"] = " " . $work_text;
                     $temp = "born_text";
                     $text .= $templ_person["born_text"];
                 }
             }
             // *** Birth source ***
             $source = show_sources2("person", "pers_birth_source", $personDb->pers_gedcomnumber);
             if ($source) {
                 if ($screen_mode == 'PDF') {
                     $templ_person["born_source"] = $source;
                     $temp = "born_source";
                 } elseif ($screen_mode == 'RTF') {
                     $rtf_text = strip_tags($templ_person["born_source"], "<b><i>");
                     $sect->writeText($rtf_text, $arial12, new PHPRtfLite_ParFormat());
                 } else {
                     $text .= $dirmark1 . $source;
                 }
             }
             // *** Birth declaration/ registration ***
             if ($personDb->pers_gedcomnumber) {
                 $temp_text = witness($personDb->pers_gedcomnumber, 'birth_declaration');
                 if ($temp_text) {
                     //if($temp) { $templ_person[$temp].=" ("; }
                     $templ_person["born_witn"] = ' (' . __('birth declaration') . ': ' . $temp_text . ')';
                     $temp = "born_witn";
                     $text .= $templ_person["born_witn"];
                 }
             }
             // *** Check for birth items, if needed use a new line ***
             if ($text) {
                 if (!$process_text or $family_expanded == true) {
                     $text = '<b>' . ucfirst(__('born')) . '</b> ' . $text;
                 } else {
                     $text = ', <b>' . __('born') . '</b> ' . $text;
                 }
                 if ($process_text and $family_expanded == true) {
                     $text = '<br>' . $text;
                 }
                 $process_text .= $text;
             }
             // ***************
             // *** BAPTISE ***
             // ***************
             $text = '';
             if ($personDb->pers_bapt_date or $personDb->pers_bapt_place) {
                 $templ_person["bapt_dateplacetime"] = date_place($personDb->pers_bapt_date, $personDb->pers_bapt_place);
                 if ($templ_person["bapt_dateplacetime"] != '') {
                     $temp = "bapt_dateplacetime";
                 }
                 $text = $templ_person["bapt_dateplacetime"];
             }
             if ($user["group_texts_pers"] == 'j') {
                 $work_text = process_text($personDb->pers_bapt_text);
                 if ($work_text) {
                     //if($temp) { $templ_person[$temp].=", "; }
                     //$templ_person["bapt_text"]=$work_text;
                     $templ_person["bapt_text"] = ' ' . $work_text;
                     $temp = "bapt_text";
                     //$text.=", ".$work_text;
                     $text .= $templ_person["bapt_text"];
                 }
             }
             if ($user['group_religion'] == 'j' and $personDb->pers_religion) {
                 $templ_person["bapt_reli"] = " (" . __('religion') . ': ' . $personDb->pers_religion . ')';
                 $temp = "bapt_reli";
                 $text .= ' <span class="religion">(' . __('religion') . ': ' . $personDb->pers_religion . ')</span>';
             }
             // *** Baptise source ***
             $source = show_sources2("person", "pers_bapt_source", $personDb->pers_gedcomnumber);
             if ($source) {
                 if ($screen_mode == 'PDF') {
                     $templ_person["bapt_source"] = $source;
                     $temp = "bapt_source";
                 } else {
                     $text .= $source;
                 }
             }
             // *** Show baptise witnesses ***
             if ($personDb->pers_gedcomnumber) {
                 $temp_text = witness($personDb->pers_gedcomnumber, 'baptism_witness');
                 if ($temp_text) {
                     if ($temp) {
                         $templ_person[$temp] .= " (";
                     }
                     $templ_person["bapt_witn"] = __('baptism witness') . ': ' . $temp_text . ')';
                     $temp = "bapt_witn";
                     $text .= ' (' . __('baptism witness') . ': ' . $temp_text . ')';
                 }
             }
             // *** check for baptise items, if needed use a new line ***
             if ($text) {
                 if (!$process_text or $family_expanded == true) {
                     $text = '<b>' . ucfirst(__('baptised')) . '</b> ' . $text;
                 } else {
                     $text = ', <b>' . __('baptised') . '</b> ' . $text;
                 }
                 if ($process_text and $family_expanded == true) {
                     $text = '<br>' . $text;
                 }
                 $process_text .= $text;
             }
             // *** Show age of living person ***
             if (($personDb->pers_bapt_date or $personDb->pers_birth_date) and !$personDb->pers_death_date and $personDb->pers_alive != 'deceased') {
                 $process_age = new calculate_year_cls();
                 $age = $process_age->calculate_age($personDb->pers_bapt_date, $personDb->pers_birth_date, '');
                 $templ_person["age_liv"] = $age;
                 if ($templ_person["age_liv"] != '') {
                     $temp = "age_liv";
                 }
                 $process_text .= $dirmark1 . $age;
                 // *** komma and space already in $age
             }
             // ******************
             // *** DEATH      ***
             // ******************
             $text = '';
             if ($personDb->pers_death_date or $personDb->pers_death_place) {
                 $templ_person["dead_dateplacetime"] = date_place($personDb->pers_death_date, $personDb->pers_death_place);
                 if ($templ_person["dead_dateplacetime"] != '') {
                     $temp = "dead_dateplacetime";
                 }
                 $text = $templ_person["dead_dateplacetime"];
             }
             // *** Death time ***
             if (isset($personDb->pers_death_time) and $personDb->pers_death_time) {
                 //$templ_person["dead_dateplacetime"]=' '.$personDb->pers_death_time;
                 $templ_person["dead_dateplacetime"] = ' ' . __('at') . ' ' . $personDb->pers_death_time . ' ' . __('hour');
                 $temp = "dead_dateplacetime";
                 $text .= $templ_person["dead_dateplacetime"];
             }
             if ($user["group_texts_pers"] == 'j') {
                 $work_text = process_text($personDb->pers_death_text);
                 if ($work_text) {
                     //$text.=", ".$work_text;
                     //if($temp) { $templ_person[$temp].=", "; }
                     $templ_person["dead_text"] = ' ' . $work_text;
                     $temp = "dead_text";
                     $text .= $templ_person["dead_text"];
                 }
             }
             // *** Show age, by Yossi Beck ***
             if (($personDb->pers_bapt_date or $personDb->pers_birth_date) and $personDb->pers_death_date) {
                 $process_age = new calculate_year_cls();
                 $age = $process_age->calculate_age($personDb->pers_bapt_date, $personDb->pers_birth_date, $personDb->pers_death_date);
                 $templ_person["dead_age"] = $age;
                 if ($templ_person["dead_age"] != '') {
                     $temp = "dead_age";
                 }
                 $text .= $dirmark1 . $age;
                 // *** comma and space already in $age
             }
             $pers_death_cause = '';
             if ($personDb->pers_death_cause == 'murdered') {
                 $pers_death_cause = ', ' . __('death cause') . ': ' . __('murdered');
             }
             if ($personDb->pers_death_cause == 'drowned') {
                 $pers_death_cause = ', ' . __('death cause') . ': ' . __('drowned');
             }
             if ($personDb->pers_death_cause == 'perished') {
                 $pers_death_cause = ', ' . __('death cause') . ': ' . __('perished');
             }
             if ($personDb->pers_death_cause == 'killed in action') {
                 $pers_death_cause = ', ' . __('killed in action');
             }
             if ($personDb->pers_death_cause == 'being missed') {
                 $pers_death_cause = ', ' . __('being missed');
             }
             if ($personDb->pers_death_cause == 'committed suicide') {
                 $pers_death_cause = ', ' . __('death cause') . ': ' . __('committed suicide');
             }
             if ($personDb->pers_death_cause == 'executed') {
                 $pers_death_cause = ', ' . __('death cause') . ': ' . __('executed');
             }
             if ($personDb->pers_death_cause == 'died young') {
                 $pers_death_cause = ', ' . __('died young');
             }
             if ($personDb->pers_death_cause == 'died unmarried') {
                 $pers_death_cause = ', ' . __('died unmarried');
             }
             if ($personDb->pers_death_cause == 'registration') {
                 $pers_death_cause = ', ' . __('registration');
             }
             //2 TYPE registration?
             if ($personDb->pers_death_cause == 'declared death') {
                 $pers_death_cause = ', ' . __('declared death');
             }
             if ($pers_death_cause) {
                 $templ_person["dead_cause"] = $pers_death_cause;
                 $temp = "dead_cause";
                 $text .= $pers_death_cause;
             } else {
                 if ($personDb->pers_death_cause) {
                     if ($temp) {
                         $templ_person[$temp] .= ", ";
                     }
                     $templ_person["dead_cause"] = __('death cause') . ': ' . $personDb->pers_death_cause;
                     $temp = "dead_cause";
                     $text .= ', ' . __('death cause') . ': ' . $personDb->pers_death_cause;
                 }
             }
             // *** Death source ***
             $source = show_sources2("person", "pers_death_source", $personDb->pers_gedcomnumber);
             if ($source) {
                 if ($screen_mode == 'PDF') {
                     $templ_person["dead_source"] = $source;
                     $temp = "dead_source";
                 } else {
                     $text .= $source;
                 }
             }
             // *** Death declaration ***
             if ($personDb->pers_gedcomnumber) {
                 $temp_text = witness($personDb->pers_gedcomnumber, 'death_declaration');
                 if ($temp_text) {
                     if ($temp) {
                         $templ_person[$temp] .= " (";
                     }
                     $templ_person["dead_witn"] = __('death declaration') . ' ' . $temp_text . ')';
                     $temp = "dead_witn";
                     $text .= ' (' . __('death declaration') . ' ' . $temp_text . ')';
                 }
             }
             // *** Check for death items, if needed use a new line ***
             if ($text) {
                 if (!$process_text or $family_expanded == true) {
                     $text = '<b>' . ucfirst(__('died')) . '</b> ' . $text;
                 } else {
                     $text = ', <b>' . __('died') . '</b> ' . $text;
                 }
                 if ($process_text and $family_expanded == true) {
                     $text = '<br>' . $text;
                 }
                 $process_text .= $text;
             }
             // ****************
             // *** BURIED   ***
             // ****************
             $text = '';
             if ($personDb->pers_buried_date or $personDb->pers_buried_place) {
                 $templ_person["buri_dateplacetime"] = date_place($personDb->pers_buried_date, $personDb->pers_buried_place);
                 if ($templ_person["buri_dateplacetime"] != '') {
                     $temp = "buri_dateplacetime";
                 }
                 $text = $templ_person["buri_dateplacetime"];
             }
             if ($user["group_texts_pers"] == 'j') {
                 $work_text = process_text($personDb->pers_buried_text);
                 if ($work_text) {
                     //if($temp) { $templ_person[$temp].=", "; }
                     $templ_person["buri_text"] = ' ' . $work_text;
                     $temp = "buri_text";
                     //$text.=", ".$work_text;
                     $text .= $templ_person["buri_text"];
                 }
             }
             // *** Buried source ***
             $source = show_sources2("person", "pers_buried_source", $personDb->pers_gedcomnumber);
             if ($source) {
                 if ($screen_mode == 'PDF') {
                     $templ_person["buri_source"] = $source;
                     $temp = "buri_source";
                 } else {
                     $text .= $source;
                 }
             }
             // *** Buried witness ***
             if ($personDb->pers_gedcomnumber) {
                 $temp_text = witness($personDb->pers_gedcomnumber, 'burial_witness');
                 if ($temp_text) {
                     //$templ_person[$temp].=" (";
                     $templ_person["buri_witn"] = ' (' . __('burial witness') . ' ' . $temp_text . ')';
                     $temp = "buri_witn";
                     $text .= $templ_person["buri_witn"];
                 }
             }
             // *** Check for burial items, if needed use a new line ***
             if ($text) {
                 if ($personDb->pers_cremation) {
                     $buried_cremation = __('cremation');
                     $templ_person["flag_buri"] = 1;
                 } else {
                     $buried_cremation = __('buried');
                     $templ_person["flag_buri"] = 0;
                 }
                 if (!$process_text or $family_expanded == true) {
                     $text = '<b>' . ucfirst($buried_cremation) . '</b> ' . $text;
                 } else {
                     $text = ', <b>' . $buried_cremation . '</b> ' . $text;
                 }
                 if ($process_text and $family_expanded == true) {
                     $text = '<br>' . $text;
                 }
                 $process_text .= $text;
             }
             // *** HZ-21 ash dispersion (asverstrooiing) ***
             $name_qry = $db_functions->get_events_person($personDb->pers_gedcomnumber, 'ash dispersion');
             foreach ($name_qry as $nameDb) {
                 $process_text .= ', ' . __('ash dispersion') . ' ';
                 if ($nameDb->event_date) {
                     $process_text .= date_place($nameDb->event_date, '') . ' ';
                 }
                 $process_text .= $nameDb->event_event . ' ';
                 //SOURCE and TEXT.
                 //CHECK PDF EXPORT
             }
             // **************************
             // *** Show professions   ***
             // **************************
             if ($personDb->pers_gedcomnumber) {
                 $eventnr = 0;
                 $event_qry = $dbh->query("SELECT * FROM humo_events\n\t\t\t\tWHERE event_tree_id='" . $tree_id . "' AND event_person_id='" . $personDb->pers_gedcomnumber . "' AND event_kind='profession'\n\t\t\t\tORDER BY substring( event_date,-4 ), event_order");
                 $nr_occupations = $event_qry->rowCount();
                 while ($eventDb = $event_qry->fetch(PDO::FETCH_OBJ)) {
                     $eventnr++;
                     if ($eventnr == '1') {
                         if ($nr_occupations == '1') {
                             $occupation = __('occupation');
                             $templ_person["flag_prof"] = 0;
                         } else {
                             $occupation = __('occupations');
                             $templ_person["flag_prof"] = 1;
                         }
                         if ($family_expanded == true) {
                             $process_text .= '<br><span class="profession"><b>' . ucfirst($occupation) . ':</b> ';
                         } else {
                             if ($process_text) {
                                 $process_text .= '. <span class="profession">';
                             }
                             if ($temp) {
                                 $templ_person[$temp] .= ". ";
                             }
                             $process_text .= '<b>' . ucfirst($occupation) . ':</b> ';
                             //$templ_person["prof_exist"]=ucfirst($occupation).': ';
                             //$temp="prof_exist";
                         }
                     }
                     if ($eventnr > 1) {
                         $process_text .= ', ';
                         if ($temp) {
                             $templ_person[$temp] .= ", ";
                         }
                     }
                     if ($eventDb->event_date or $eventDb->event_place) {
                         $templ_person["prof_date" . $eventnr] = date_place($eventDb->event_date, $eventDb->event_place) . '; ';
                         $temp = "prof_date" . $eventnr;
                         $process_text .= $templ_person["prof_date" . $eventnr];
                     }
                     $process_text .= $eventDb->event_event;
                     $templ_person["prof_prof" . $eventnr] = $eventDb->event_event;
                     $temp = "prof_prof" . $eventnr;
                     if ($eventDb->event_text) {
                         $work_text = process_text($eventDb->event_text);
                         if ($work_text) {
                             //if($temp) { $templ_person[$temp].=", "; }
                             if ($temp) {
                                 $templ_person[$temp] .= " ";
                             }
                             $templ_person["prof_text" . $eventnr] = $work_text;
                             $temp = "prof_text" . $eventnr;
                             //$process_text.=", ".$work_text;
                             $process_text .= " " . $work_text;
                         }
                     }
                     // *** Profession source ***
                     $source = show_sources2("person", "pers_event_source", $eventDb->event_id);
                     if ($source) {
                         if ($screen_mode == 'PDF') {
                             $templ_person["prof_source"] = $source;
                             $temp = "prof_source";
                         } else {
                             $process_text .= $source;
                         }
                     }
                 }
                 if ($eventnr > 0) {
                     $process_text .= '</span>';
                 }
             }
             // ***********************
             // *** Show residences ***
             // ***********************
             if ($personDb->pers_gedcomnumber and $user['group_living_place'] == 'j') {
                 $text = '';
                 $eventnr = 0;
                 $event_qry = $db_functions->get_addresses_person($personDb->pers_gedcomnumber);
                 $nr_addresses = count($event_qry);
                 foreach ($event_qry as $eventDb) {
                     $eventnr++;
                     if ($eventnr == '1') {
                         if ($process_text) {
                             if ($family_expanded == true) {
                                 $text .= '<br>';
                             } else {
                                 $text .= '. ';
                             }
                         }
                         if ($nr_addresses == '1') {
                             $residence = __('residence');
                             $templ_person["flag_address"] = 0;
                         } else {
                             $residence = __('residences');
                             $templ_person["flag_address"] = 1;
                         }
                         if ($temp) {
                             $templ_person[$temp] .= ". ";
                         }
                         //$templ_person["address_exist"]=ucfirst($residence).': ';
                         //$temp="address_exist";
                         $text .= '<b>' . ucfirst($residence) . ':</b> ';
                     }
                     if ($eventnr > 1) {
                         $text .= ', ';
                         if ($temp) {
                             $templ_person[$temp] .= ", ";
                         }
                     }
                     if ($eventDb->address_date) {
                         $text .= date_place($eventDb->address_date, '') . ' ';
                         // default, without place, place is processed later.
                         $templ_person["address_date" . $eventnr] = date_place($eventDb->address_date, '') . ' ';
                         $temp = "address_date" . $eventnr;
                     }
                     if ($user['group_addresses'] == 'j' and $eventDb->address_address) {
                         $text .= ' ' . $eventDb->address_address . ' ';
                         // PDF Export?
                     }
                     if ($eventDb->address_zip) {
                         $text .= ' ' . $eventDb->address_zip . ' ';
                         // PDF Export?
                     }
                     $text .= $eventDb->address_place;
                     $templ_person["address_address" . $eventnr] = $eventDb->address_place;
                     if ($templ_person["address_address" . $eventnr] != '') {
                         $temp = "address_address" . $eventnr;
                     }
                     if ($eventDb->address_phone) {
                         $text .= ', ' . $eventDb->address_phone;
                     }
                     // *** Address text ***
                     if ($eventDb->address_text) {
                         $work_text = process_text($eventDb->address_text);
                         if ($work_text) {
                             if ($temp) {
                                 $templ_person[$temp] .= ", ";
                             }
                             $templ_person["address_text" . $eventnr] = $work_text;
                             $temp = "address_text" . $eventnr;
                             $text .= ", " . $work_text;
                         }
                     }
                     $source = show_sources2("person", "pers_address_source", $eventDb->address_id);
                     if ($source) {
                         if ($screen_mode == 'PDF') {
                             $templ_person["address_source"] = $source;
                             $temp = "address_source";
                         } else {
                             $text .= $source;
                         }
                     }
                 }
                 if ($text) {
                     $process_text .= '<span class="pers_living_place">' . $text . '</span>';
                 }
             }
             // *** Person source ***
             $source = show_sources2("person", "person_source", $personDb->pers_gedcomnumber);
             if ($source) {
                 if ($screen_mode == 'PDF') {
                     $templ_person["pers_source"] = $source;
                     $temp = "pers_source";
                 } else {
                     $process_text .= $source;
                 }
             }
             // *** Extended addresses for HuMo-gen and dutch Haza-data program (Haza-data plus version) ***
             if ($user['group_addresses'] == 'j') {
                 // *** Search for all connected addresses ***
                 $eventnr = 0;
                 $connect_sql = $db_functions->get_connections_person('person_address', $personDb->pers_gedcomnumber);
                 foreach ($connect_sql as $connectDb) {
                     $eventnr++;
                     if ($temp) {
                         $templ_person[$temp] .= ". ";
                     }
                     $templ_person["HDadres_exist" . $eventnr] = __('Address') . ': ';
                     $temp = "HDadres_exist" . $eventnr;
                     $process_text .= '. <b>' . __('Address') . ':</b> ';
                     $process_text .= '<a href="' . $uri_path . 'address.php?gedcomnumber=' . $connectDb->connect_item_id . '">';
                     $eventDb2 = $db_functions->get_address($connectDb->connect_item_id);
                     if (isset($eventDb2->address_address) and $eventDb2->address_address) {
                         $templ_person["HDadres_adres" . $eventnr] = " " . trim($eventDb2->address_address);
                         $temp = "HDadres_adres" . $eventnr;
                         $process_text .= $templ_person["HDadres_adres" . $eventnr];
                     }
                     if (isset($eventDb2->address_address) and $eventDb2->address_place) {
                         $templ_person["HDadres_place" . $eventnr] = " " . trim($eventDb2->address_place);
                         $temp = "HDadres_place" . $eventnr;
                         $process_text .= $templ_person["HDadres_place" . $eventnr];
                     }
                     $process_text .= "</a>";
                 }
             }
         }
         //*** END PRIVACY PART ***
         // *** Use a link for multiple marriages by parent2 ***
         if ($person_kind == 'parent2') {
             $marriage_array = explode(";", $personDb->pers_fams);
             if (isset($marriage_array[1])) {
                 for ($i = 0; $i <= substr_count($personDb->pers_fams, ";"); $i++) {
                     $marriagenr = $i + 1;
                     $parent2_famDb = $db_functions->get_family($marriage_array[$i]);
                     // *** Use a class for marriage ***
                     $parent2_marr_cls = new marriage_cls();
                     // *** Show standard marriage text ***
                     if ($screen_mode != "PDF") {
                         $parent2_marr_data = $parent2_marr_cls->marriage_data($parent2_famDb, $marriagenr, 'short');
                     } else {
                         $pdf_marriage = $parent2_marr_cls->marriage_data($parent2_famDb, $marriagenr, 'short');
                     }
                     if ($change_main_person == true) {
                         $parent2Db = $db_functions->get_person($parent2_famDb->fam_woman);
                     } else {
                         $parent2Db = $db_functions->get_person($parent2_famDb->fam_man);
                     }
                     if ($id == $marriage_array[$i]) {
                         if ($process_text) {
                             $process_text .= ',';
                         }
                         if (isset($parent2_marr_data)) {
                             $process_text .= ' ' . $dirmark1 . $parent2_marr_data . ' ';
                         }
                         // *** $parent2Db is empty if it is a N.N. person ***
                         if ($parent2Db) {
                             $name = $this->person_name($parent2Db);
                             $process_text .= $name["standard_name"];
                         } else {
                             $process_text .= __('N.N.');
                         }
                     } else {
                         $process_text .= ', ';
                         // *** url_rewrite ***
                         if ($humo_option["url_rewrite"] == "j") {
                             // *** $uri_path is made header.php ***
                             $process_text .= '<a href="' . $uri_path . 'family/' . $_SESSION['tree_prefix'] . '/' . $marriage_array[$i] . '/' . $personDb->pers_gedcomnumber . '/">';
                         } else {
                             $process_text .= '<a href="' . CMS_ROOTPATH . 'family.php?database=' . $_SESSION['tree_prefix'] . '&amp;id=' . $marriage_array[$i] . '&amp;main_person=' . $personDb->pers_gedcomnumber . '">';
                         }
                         if (isset($parent2_marr_data)) {
                             $process_text .= $dirmark1 . $parent2_marr_data . ' ';
                         }
                         // *** $parent2Db is empty by N.N. person ***
                         if ($parent2Db) {
                             $name = $this->person_name($parent2Db);
                             $process_text .= $name["standard_name"];
                         } else {
                             $process_text .= __('N.N.');
                         }
                         $process_text .= '</a>';
                     }
                     if ($screen_mode == "PDF") {
                         if ($parent2Db) {
                             if ($temp) {
                                 $templ_person[$temp] .= ", ";
                             }
                             $name = $this->person_name($parent2Db);
                             $templ_person["marr_more" . $marriagenr] = $pdf_marriage["relnr_rel"] . $pdf_marriage["rel_add"] . " " . $name["standard_name"];
                             $temp = "marr_more" . $marriagenr;
                         } else {
                             if ($temp) {
                                 $templ_person[$temp] .= ", ";
                             }
                             $templ_person["marr_more" . $marriagenr] = $pdf_marriage["relnr_rel"] . " " . __('N.N.');
                             $temp = "marr_more" . $marriagenr;
                         }
                     }
                 }
             }
         }
         //if ($privacy){
         if ($screen_mode == "mobile" or $privacy) {
             //
         } else {
             // *** Show media/ pictures ***
             $result = show_media($personDb, '');
             // *** This function can be found in file: show_picture.php! ***
             $process_text .= $result[0];
             if (isset($templ_person)) {
                 $templ_person = array_merge((array) $templ_person, (array) $result[1]);
             } else {
                 $templ_person = $result[1];
             }
             // *** Internet links (URL) ***
             $url_qry = $db_functions->get_events_person($personDb->pers_gedcomnumber, 'URL');
             if (count($url_qry) > 0) {
                 $process_text .= '<br>';
             }
             foreach ($url_qry as $urlDb) {
                 if ($urlDb->event_text) {
                     $process_text .= $urlDb->event_text . ': ';
                 }
                 $process_text .= '<a href="' . $urlDb->event_event . '" target="_blank">' . $urlDb->event_event . '</a>';
                 $process_text .= '<br>';
             }
             //******** Text by person **************
             if ($user["group_text_pers"] == 'j') {
                 $work_text = process_text($personDb->pers_text, 'person');
                 // *** BK: Source by person text ***
                 $source = show_sources2("person", "pers_text_source", $personDb->pers_gedcomnumber);
                 if ($source) {
                     //PDF
                     if ($screen_mode == 'PDF') {
                         //
                     } else {
                         $work_text .= $source;
                     }
                 }
                 if ($work_text) {
                     $process_text .= '<br>' . $work_text . "\n";
                     $templ_person["pers_text"] = "\n" . $work_text;
                     $temp = "pers_text";
                 }
             }
             // *** Show events ***
             if ($user['group_event'] == 'j') {
                 if ($personDb->pers_gedcomnumber) {
                     $event_qry = $db_functions->get_events_person($personDb->pers_gedcomnumber, 'event');
                     $num_rows = count($event_qry);
                     if ($num_rows > 0) {
                         $process_text .= '<span class="event">' . "\n";
                     }
                     $eventnr = 0;
                     foreach ($event_qry as $eventDb) {
                         $eventnr++;
                         $process_text .= "<br>\n";
                         $templ_person["event_start" . $eventnr] = "\n";
                         // *** Check if NCHI is 0 or higher ***
                         $event_gedcom = $eventDb->event_gedcom;
                         //$event_text=$eventDb->event_text;
                         if ($event_gedcom == 'NCHI' and trim($eventDb->event_event) == '') {
                             $event_gedcom = 'NCHI0';
                             //$event_text='';
                         }
                         $process_text .= '<b>' . language_event($event_gedcom) . '</b>';
                         $templ_person["event_ged" . $eventnr] = language_event($event_gedcom);
                         $temp = "event_ged" . $eventnr;
                         if ($eventDb->event_event) {
                             $templ_person["event_event" . $eventnr] = ' ' . $eventDb->event_event;
                             $temp = "event_event" . $eventnr;
                             $process_text .= $templ_person["event_event" . $eventnr];
                         }
                         $templ_person["event_dateplace" . $eventnr] = ' ' . date_place($eventDb->event_date, $eventDb->event_place);
                         $temp = "event_dateplace" . $eventnr;
                         $process_text .= $templ_person["event_dateplace" . $eventnr];
                         if ($eventDb->event_text) {
                             $work_text = process_text($eventDb->event_text);
                             if ($work_text) {
                                 //$process_text.=", ".$work_text;
                                 $process_text .= " " . $work_text;
                                 //if($temp) { $templ_person[$temp].=", "; }
                                 if ($temp) {
                                     $templ_person[$temp] .= " ";
                                 }
                                 $templ_person["event_text" . $eventnr] = $work_text;
                                 $temp = "event_text" . $eventnr;
                             }
                         }
                         $source = show_sources2("person", "pers_event_source", $eventDb->event_id);
                         if ($source) {
                             if ($screen_mode == 'PDF') {
                                 $templ_person["pers_event_source"] = $source;
                                 $temp = "pers_event_source";
                             } else {
                                 $process_text .= $source;
                             }
                         }
                     }
                     if ($num_rows > 0) {
                         $process_text .= "</span>\n";
                     }
                     unset($event_qry);
                 }
             }
         }
         // End of privacy
         // *** Return person data ***
         if ($screen_mode == "mobile") {
             if ($process_text) {
                 return $process_text;
             }
         } elseif ($screen_mode != "PDF") {
             if ($process_text) {
                 $div = '<div class="margin_person">';
                 if ($person_kind == 'child') {
                     $div = '<div class="margin_child">';
                 }
                 return $privacy_filter . $div . $process_text . '</div>';
             } else {
                 return $privacy_filter;
             }
         } else {
             // return array with pdf values
             if (isset($templ_person)) {
                 return $templ_person;
             }
         }
     }
     // End of check $personDb
 }
echo '<th colspan="2" width="280px">' . ucfirst(__('Married notice (religious)')) . '</th>';
echo '<th colspan="2" width="280px">' . ucfirst(__('Married (religious)')) . '</th>';
echo '</tr>';
while (@($familyDb = $person_result->fetch(PDO::FETCH_OBJ))) {
    // *** Man privacy filter ***
    $personDb = $db_functions->get_person($familyDb->fam_man);
    // *** Person class used for name and person pop-up data ***
    $man_cls = new person_cls();
    $man_cls->construct($personDb);
    // *** Woman privacy filter ***
    $personDb = $db_functions->get_person($familyDb->fam_woman);
    // *** Person class used for name and person pop-up data ***
    $woman_cls = new person_cls();
    $woman_cls->construct($personDb);
    // *** Proces marriage using a class ***
    $marriage_cls = new marriage_cls();
    $marriage_cls->construct($familyDb, $man_cls->privacy, $woman_cls->privacy);
    $family_privacy = $marriage_cls->privacy;
    // *** $family_privacy='1' = filter ***
    if ($family_privacy) {
        $privcount++;
    } else {
        show_person($familyDb);
    }
}
echo '</table>';
if ($privcount) {
    echo "<br>" . $privcount . __(' persons are not shown due to privacy settings') . ".<br>";
}
echo '<br><div class="index_list1">' . $line_pages . '</div>';
//for testing only:
Example #4
0
         $stat_easy_id = $datasqlDb->tree_id . '-' . $familyDb->fam_gedcomnumber . '-' . $familyDb->fam_man . '-' . $familyDb->fam_woman;
         $update_sql = "INSERT INTO humo_stat_date SET\n\t\t\t\t\t\t\tstat_easy_id='" . $stat_easy_id . "',\n\t\t\t\t\t\t\tstat_ip_address='" . $_SERVER['REMOTE_ADDR'] . "',\n\t\t\t\t\t\t\tstat_user_agent='" . $_SERVER['HTTP_USER_AGENT'] . "',\n\t\t\t\t\t\t\tstat_tree_id='" . $datasqlDb->tree_id . "',\n\t\t\t\t\t\t\tstat_gedcom_fam='" . $familyDb->fam_gedcomnumber . "',\n\t\t\t\t\t\t\tstat_gedcom_man='" . $familyDb->fam_man . "',\n\t\t\t\t\t\t\tstat_gedcom_woman='" . $familyDb->fam_woman . "',\n\t\t\t\t\t\t\tstat_date_stat='" . date("Y-m-d H:i") . "',\n\t\t\t\t\t\t\tstat_date_linux='" . time() . "'";
         $result = $dbh->query($update_sql);
     }
 }
 // *** Privacy filter man and woman ***
 @($person_manDb = $db_functions->get_person($familyDb->fam_man));
 // *** Process man using a class ***
 $man_cls = new person_cls();
 $man_cls->construct($person_manDb);
 @($person_womanDb = $db_functions->get_person($familyDb->fam_woman));
 // *** Process woman using a class ***
 $woman_cls = new person_cls();
 $woman_cls->construct($person_womanDb);
 // *** Process marriage using a class ***
 $marriage_cls = new marriage_cls();
 $marriage_cls->construct($familyDb, $man_cls->privacy, $woman_cls->privacy);
 $family_privacy = $marriage_cls->privacy;
 // *******************************************************************
 // *** Show family                                                 ***
 // *******************************************************************
 if ($screen_mode != 'STAR') {
     // *** Interne link voor descendant_report ***
     if ($descendant_report == true) {
         // *** Interne link (Romeins number_generation) ***
         if ($screen_mode == 'PDF') {
             // put internal PDF link to family
             $pdf->Cell(0, 1, " ", 0, 1);
             $romannr = $number_roman[$generateIndex + 1] . '-' . $number_generation[$familyIndex + 1];
             if (isset($link[$romannr])) {
                 $pdf->SetLink($link[$romannr], -1);
 if ($ancestor_array[$i] != '0') {
     @($person_manDb = $db_functions->get_person($ancestor_array[$i]));
     $man_cls = new person_cls();
     $man_cls->construct($person_manDb);
     $privacy_man = $man_cls->privacy;
     // for pdf function pdf_ancestor_name() further along
     //$sexe=$person_manDb->pers_sexe;
     if (strtolower($person_manDb->pers_sexe) == 'm' and $ancestor_number[$i] > 1) {
         @($familyDb = $db_functions->get_family($marriage_gedcomnumber[$i]));
         // *** Use privacy filter of woman ***
         @($person_womanDb = $db_functions->get_person($familyDb->fam_woman));
         $woman_cls = new person_cls();
         $woman_cls->construct($person_womanDb);
         $privacy_woman = $woman_cls->privacy;
         // *** Use class for marriage ***
         $marriage_cls = new marriage_cls();
         $marriage_cls->construct($familyDb, $privacy_man, $privacy_woman);
         $family_privacy = $marriage_cls->privacy;
     }
     if ($screen_mode != 'PDF' and $screen_mode != 'RTF') {
         echo '<tr><td valign="top" width="80" nowrap><b>' . $ancestor_number[$i] . '</b> (' . floor($ancestor_number[$i] / 2) . ')</td>';
         echo '<td>';
         //*** Show data man ***
         echo '<div class="parent1">';
         // ***  Use "child", to show a link for own family. ***
         echo $man_cls->name_extended("child");
         if ($listednr == '') {
             echo $man_cls->person_data("standard", $ancestor_array[$i]);
         } else {
             // person was already listed
             echo ' <strong> (' . __('Allready listed above as number ') . $listednr . ') </strong>';
function outline($family_id, $main_person, $gn, $nr_generations)
{
    global $dbh, $db_functions, $tree_prefix_quoted, $pdf, $show_date, $dates_behind_names, $nr_generations;
    global $language, $dirmark1, $dirmark1, $screen_mode;
    $family_nr = 1;
    //*** Process multiple families ***
    if ($nr_generations < $gn) {
        return;
    }
    $gn++;
    // *** Count marriages of man ***
    // *** YB: if needed show woman as main_person ***
    @($familyDb = $db_functions->get_family($family_id, 'man-woman'));
    $parent1 = '';
    $parent2 = '';
    $change_main_person = false;
    // *** Standard main_person is the father ***
    if ($familyDb->fam_man) {
        $parent1 = $familyDb->fam_man;
    }
    // *** If mother is selected, mother will be main_person ***
    if ($familyDb->fam_woman == $main_person) {
        $parent1 = $familyDb->fam_woman;
        $change_main_person = true;
    }
    // *** Check family with parent1: N.N. ***
    if ($parent1) {
        // *** Save man's families in array ***
        @($personDb = $db_functions->get_person($parent1, 'famc-fams'));
        $marriage_array = explode(";", $personDb->pers_fams);
        $nr_families = substr_count($personDb->pers_fams, ";");
    } else {
        $marriage_array[0] = $family_id;
        $nr_families = "0";
    }
    // *** Loop multiple marriages of main_person ***
    for ($parent1_marr = 0; $parent1_marr <= $nr_families; $parent1_marr++) {
        @($familyDb = $db_functions->get_family($marriage_array[$parent1_marr]));
        // *** Privacy filter man and woman ***
        @($person_manDb = $db_functions->get_person($familyDb->fam_man));
        $man_cls = new person_cls();
        $man_cls->construct($person_manDb);
        $privacy_man = $man_cls->privacy;
        @($person_womanDb = $db_functions->get_person($familyDb->fam_woman));
        $woman_cls = new person_cls();
        $woman_cls->construct($person_womanDb);
        $privacy_woman = $woman_cls->privacy;
        $marriage_cls = new marriage_cls();
        $marriage_cls->construct($familyDb, $privacy_man, $privacy_woman);
        $familylevend = $marriage_cls->privacy;
        // *************************************************************
        // *** Parent1 (normally the father)                         ***
        // *************************************************************
        if ($familyDb->fam_kind != 'PRO-GEN') {
            //onecht kind, vrouw zonder man
            if ($family_nr == 1) {
                // *** Show data of man ***
                $dir = "";
                if ($language["dir"] == "rtl") {
                    $dir = "rtl";
                    // in the following code calls the css indentation for rtl pages: "div.rtlsub2" instead of "div.sub2"
                }
                $indent = $dir . 'sub' . $gn;
                // hier wordt de indent bepaald voor de namen div class (sub1, sub2 enz. die in gedcom.css staan)
                if ($screen_mode != "PDF") {
                    echo '<div class="' . $indent . '">';
                    echo '<b>' . $gn . ' </b>';
                } else {
                    $pdf->SetLeftMargin($gn * 10);
                    $pdf->Write(8, "\n");
                    $pdf->Write(8, $gn . '  ');
                }
                if ($change_main_person == true) {
                    if ($screen_mode != "PDF") {
                        echo $woman_cls->name_extended("outline");
                    } else {
                        $pdf->SetFont('Arial', 'B', 12);
                        $pdf->Write(8, $woman_cls->name_extended("outline"));
                        $pdf->SetFont('Arial', '', 12);
                    }
                    if ($show_date == "1" and !$privacy_woman) {
                        if ($screen_mode != "PDF") {
                            echo $dirmark1 . ',';
                            if ($dates_behind_names == false) {
                                echo '<br>';
                            }
                            echo ' &nbsp; (' . language_date($person_womanDb->pers_birth_date) . ' - ' . language_date($person_womanDb->pers_death_date) . ')';
                        } else {
                            if ($dates_behind_names == false) {
                                $pdf->SetLeftMargin($gn * 10 + 4);
                                $pdf->Write(8, "\n");
                            }
                            $pdf->Write(8, ' (' . language_date($person_womanDb->pers_birth_date) . ' - ' . language_date($person_womanDb->pers_death_date) . ')');
                        }
                    }
                } else {
                    if ($screen_mode != "PDF") {
                        echo $man_cls->name_extended("outline");
                    } else {
                        $pdf->SetFont('Arial', 'B', 12);
                        $pdf->Write(8, $man_cls->name_extended("outline"));
                        $pdf->SetFont('Arial', '', 12);
                    }
                    if ($show_date == "1" and !$privacy_man) {
                        if ($screen_mode != "PDF") {
                            echo $dirmark1 . ',';
                            if ($dates_behind_names == false) {
                                echo '<br>';
                            }
                            echo ' &nbsp; (' . language_date($person_manDb->pers_birth_date) . ' - ' . language_date($person_manDb->pers_death_date) . ')';
                        } else {
                            if ($dates_behind_names == false) {
                                $pdf->SetLeftMargin($gn * 10 + 4);
                                $pdf->Write(8, "\n");
                            }
                            $pdf->Write(8, ' (' . language_date($person_manDb->pers_birth_date) . ' - ' . language_date($person_manDb->pers_death_date) . ')');
                        }
                    }
                }
                if ($screen_mode != "PDF") {
                    echo '</div>';
                }
            } else {
            }
            // empty: no second show of data of main_person in outline report
            $family_nr++;
        }
        // *** end check of PRO-GEN ***
        // *************************************************************
        // *** Parent2 (normally the mother)                         ***
        // *************************************************************
        if ($screen_mode != "PDF") {
            echo '<div class="' . $indent . '" style="font-style:italic">';
            echo ' x ' . $dirmark1;
        } else {
            $pdf->SetLeftMargin($gn * 10);
            $pdf->Write(8, "\n");
            $pdf->Write(8, 'x  ');
        }
        if ($change_main_person == true) {
            if ($screen_mode != "PDF") {
                echo $man_cls->name_extended("outline");
            } else {
                $pdf->SetFont('Arial', 'BI', 12);
                $pdf->Write(8, $man_cls->name_extended("outline"));
                $pdf->SetFont('Arial', '', 12);
            }
            if ($show_date == "1" and !$privacy_man) {
                if ($screen_mode != "PDF") {
                    echo $dirmark1 . ',';
                    if ($dates_behind_names == false) {
                        echo '<br>';
                    }
                    echo ' &nbsp; (' . @language_date($person_manDb->pers_birth_date) . ' - ' . @language_date($person_manDb->pers_death_date) . ')';
                } else {
                    if ($dates_behind_names == false) {
                        $pdf->SetLeftMargin($gn * 10 + 4);
                        $pdf->Write(8, "\n");
                    }
                    $pdf->Write(8, ' (' . @language_date($person_manDb->pers_birth_date) . ' - ' . @language_date($person_manDb->pers_death_date) . ')');
                }
            }
        } else {
            if ($screen_mode != "PDF") {
                echo $woman_cls->name_extended("outline");
            } else {
                $pdf->SetFont('Arial', 'BI', 12);
                $pdf->Write(8, $woman_cls->name_extended("outline"));
                $pdf->SetFont('Arial', '', 12);
            }
            if ($show_date == "1" and !$privacy_woman) {
                if ($screen_mode != "PDF") {
                    echo $dirmark1 . ',';
                    if ($dates_behind_names == false) {
                        echo '<br>';
                    }
                    echo ' &nbsp; (' . @language_date($person_womanDb->pers_birth_date) . ' - ' . @language_date($person_womanDb->pers_death_date) . ')';
                } else {
                    if ($dates_behind_names == false) {
                        $pdf->SetLeftMargin($gn * 10 + 4);
                        $pdf->Write(8, "\n");
                    }
                    $pdf->Write(8, ' (' . @language_date($person_womanDb->pers_birth_date) . ' - ' . @language_date($person_womanDb->pers_death_date) . ')');
                }
            }
        }
        if ($screen_mode != "PDF") {
            echo '</div>';
        }
        // *************************************************************
        // *** Children                                              ***
        // *************************************************************
        if ($familyDb->fam_children) {
            $childnr = 1;
            $child_array = explode(";", $familyDb->fam_children);
            for ($i = 0; $i <= substr_count("{$familyDb->fam_children}", ";"); $i++) {
                @($childDb = $db_functions->get_person($child_array[$i]));
                $child_privacy = "";
                $child_cls = new person_cls();
                $child_cls->construct($childDb);
                $child_privacy = $child_cls->privacy;
                // *** Build descendant_report ***
                if ($childDb->pers_fams) {
                    // *** 1e family of child ***
                    $child_family = explode(";", $childDb->pers_fams);
                    $child1stfam = $child_family[0];
                    outline($child1stfam, $childDb->pers_gedcomnumber, $gn, $nr_generations);
                    // recursive
                } else {
                    // Child without own family
                    if ($nr_generations >= $gn) {
                        $childgn = $gn + 1;
                        $childindent = $dir . 'sub' . $childgn;
                        if ($screen_mode != "PDF") {
                            echo '<div class="' . $childindent . '">';
                            echo '<b>' . $childgn . ' ' . '</b>';
                            echo $child_cls->name_extended("outline");
                        } else {
                            $pdf->SetLeftMargin($childgn * 10);
                            $pdf->Write(8, "\n");
                            $pdf->Write(8, $childgn . '  ');
                            $pdf->SetFont('Arial', 'B', 12);
                            $pdf->Write(8, $child_cls->name_extended("outline"));
                            $pdf->SetFont('Arial', '', 12);
                        }
                        if ($show_date == "1" and !$child_privacy) {
                            if ($screen_mode != "PDF") {
                                echo $dirmark1 . ',';
                                if ($dates_behind_names == false) {
                                    echo '<br>';
                                }
                                echo ' &nbsp; (' . language_date($childDb->pers_birth_date) . ' - ' . language_date($childDb->pers_death_date) . ')';
                            } else {
                                if ($dates_behind_names == false) {
                                    $pdf->SetLeftMargin($childgn * 10 + 4);
                                    $pdf->Write(8, "\n");
                                }
                                $pdf->Write(8, ' (' . language_date($childDb->pers_birth_date) . ' - ' . language_date($childDb->pers_death_date) . ')');
                            }
                        }
                        if ($screen_mode != "PDF") {
                            echo '</div>';
                        }
                    }
                }
                if ($screen_mode != "PDF") {
                    echo "\n";
                } else {
                }
                $childnr++;
            }
        }
    }
    // Show  multiple marriages
}
Example #7
0
 if ($id == $marrDb->fam_man) {
     $partner = $marrDb->fam_woman;
 } else {
     $partner = $marrDb->fam_man;
 }
 $children = $marrDb->fam_children;
 // *** Privacy filter main person and spouse ***
 // privacy filter main person is already set above
 // check privacy of partner
 $person_partner = $dbh->query("SELECT * FROM humo_persons\n\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='{$partner}'");
 @($person_partnerDb = $person_partner->fetch(PDO::FETCH_OBJ));
 // *** Proces spouse using a clas ***
 $partner_cls = new person_cls();
 $partner_cls->construct($person_partnerDb);
 // *** Proces marriage using a class ***
 $marriage_cls = new marriage_cls();
 $marriage_cls->construct($res, $man_cls->privacy, $partner_cls->privacy);
 $family_privacy = $marriage_cls->privacy;
 // *** Show full marriage details ***
 if ($family_privacy) {
     // *** Show standard marriage data ***
     $var = '<br>' . $marriage_cls->marriage_data($marrDb, '', 'short');
 } else {
     $var = '<br>' . $marriage_cls->marriage_data($marrDb);
 }
 print '<li data-role="list-divider">' . __('Marriage') . '</li>';
 print '<li><p>' . $var . '</p></li>';
 // marriage date place
 // *** Show partner ***
 echo popup($partner, false);
 // *** Show person details using standard HuMo-gen function ***