function valid_date($date) { include_once CMS_ROOTPATH . "include/validate_date_cls.php"; $check = new validate_date_cls(); // date entered as 01-04-2013 or 01/04/2013 if ((strpos($date, "-") !== false or strpos($date, "/") !== false) and strpos($date, " ") === false) { // skips "2 mar 1741/42" and "mar 1741/42" if (strpos($date, "-") !== false) { $delimiter = "-"; } else { $delimiter = "/"; } $date_dash = explode($delimiter, $date); if (count($date_dash) == 2) { // date was entered as month and year: 4-2011 or 4/2011 or we have case of "1741/42" (just year no day/month) if ($date_dash[0] > $date_dash[1]) { $member = "none"; // "1741/42" so don't perform transformation $this_date = $date; } else { $member = 0; // first member of array is month } } else { $member = 1; // second member of array is month } if ($member != "none") { if ($date_dash[$member] == "1" or $date_dash[$member] == "01") { $date_dash[$member] = "JAN"; } else { if ($date_dash[$member] == "2" or $date_dash[$member] == "02") { $date_dash[$member] = "FEB"; } else { if ($date_dash[$member] == "3" or $date_dash[$member] == "03") { $date_dash[$member] = "MAR"; } else { if ($date_dash[$member] == "4" or $date_dash[$member] == "04") { $date_dash[$member] = "APR"; } else { if ($date_dash[$member] == "5" or $date_dash[$member] == "05") { $date_dash[$member] = "MAY"; } else { if ($date_dash[$member] == "6" or $date_dash[$member] == "06") { $date_dash[$member] = "JUN"; } else { if ($date_dash[$member] == "7" or $date_dash[$member] == "07") { $date_dash[$member] = "JUL"; } else { if ($date_dash[$member] == "8" or $date_dash[$member] == "08") { $date_dash[$member] = "AUG"; } else { if ($date_dash[$member] == "9" or $date_dash[$member] == "09") { $date_dash[$member] = "SEP"; } else { if ($date_dash[$member] == "10") { $date_dash[$member] = "OCT"; } else { if ($date_dash[$member] == "11") { $date_dash[$member] = "NOV"; } else { if ($date_dash[$member] == "12") { $date_dash[$member] = "DEC"; } } } } } } } } } } } } $this_date = implode(" ", $date_dash); } } else { $this_date = $date; } $result = $check->check_date(strtoupper($this_date)); if ($result == null) { return null; } else { return $this_date; } }
function invalid($date, $gednr, $table) { // checks validity with validate_cls.php and displays invalid dates and their details global $dbh, $db_functions, $tree, $direction, $dirmark1, $dirmark2; include_once CMS_ROOTPATH . 'include/validate_date_cls.php'; $process_date = new validate_date_cls(); $compare_date = $date; if (strpos($date, '/') > 0) { // check for combined julian/gregorian date entries like 1654/5 and check the first part $temp = explode('/', $date); $compare_date = $temp[0]; // In case this was not a jul/greg case but an invalid date like: 30/Jun/1980 or 12/3/90 // then "$compare_date" will become 30/jun or 12/3 which is still invalid and will be found and listed. // For the list of invalid dates, we use "$date" so that the full invalid date (30/Jun/1980 or 12/3/90 etc.) is displayed. // Also, if a jul/greg date itself is invalid (3 january 1680/1, 31 FEB 1678/9) then the mistake will be found // in the first part and will be listed, while the list will display the original invalid full jul/greg date as we want. } if ($process_date->check_date(strtoupper($compare_date)) === null) { // invalid date if (substr($table, 0, 3) == "per") { $pers = $dbh->query("SELECT * FROM humo_persons WHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber = '" . $gednr . "'"); $personDb = $pers->fetch(); $name = $personDb['pers_firstname'] . ' ' . str_replace("_", " ", $personDb['pers_prefix'] . ' ' . $personDb['pers_lastname']); echo '<tr><td style="text-align:' . $direction . '">' . $gednr . '</td><td style="text-align:' . $direction . '"><a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $personDb['pers_gedcomnumber'] . '" target=\'_blank\'>' . $name . '</a></td><td style="text-align:' . $direction . '">' . $table . '</td><td style="text-align:' . $direction . '">' . $dirmark2 . $date . '</td></tr>'; } if (substr($table, 0, 3) == "fam") { $fam = $dbh->query("SELECT * FROM humo_families WHERE pers_tree_id='" . $tree_id . "' AND fam_gedcomnumber = '" . $gednr . "'"); $famDb = $fam->fetch(); $spouse1 = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $famDb['fam_man'] . "'"); $spouse1Db = $spouse1->fetch(); $name1 = $spouse1Db['pers_firstname'] . ' ' . str_replace("_", " ", $spouse1Db['pers_prefix'] . ' ' . $spouse1Db['pers_lastname']); $spouse2 = $dbh->query("SELECT * FROM humo_person\n\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $famDb['fam_woman'] . "'"); $spouse2Db = $spouse2->fetch(); $name2 = $spouse2Db['pers_firstname'] . ' ' . str_replace("_", " ", $spouse2Db['pers_prefix'] . ' ' . $spouse2Db['pers_lastname']); $spousegednr = $spouse1Db['pers_gedcomnumber']; if ($spousegednr == '') { $spousegednr = $spouse2Db['pers_gedcomnumber']; } $and = ' ' . __('and') . ' '; if ($spouse1Db['pers_gedcomnumber'] == '' or $spouse2Db['pers_gedcomnumber'] == '') { $and = ''; } echo '<tr><td style="text-align:' . $direction . '">' . $gednr . '</td><td style="text-align:' . $direction . '"><a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $spousegednr . '" target=\'_blank\'>' . $name1 . $and . $name2 . '</a></td><td style="text-align:' . $direction . '">' . $table . '</td><td style="text-align:' . $direction . '">' . $dirmark2 . $date . '</td></tr>'; } if (substr($table, 0, 3) == "eve") { $ev = $dbh->query("SELECT * FROM humo_events WHERE event_id = '" . $gednr . "'"); $evDb = $ev->fetch(); if ($evDb['event_person_id'] != '') { $pers = $dbh->query("SELECT * FROM humo_person\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $evDb['event_person_id'] . "'"); $persDb = $pers->fetch(); $fullname = $persDb['pers_firstname'] . ' ' . str_replace("_", " ", $persDb['pers_prefix'] . ' ' . $persDb['pers_lastname']); $evdetail = $evDb['event_event']; if ($evdetail == '') { $evdetail = $evDb['event_gedcom']; } if ($evdetail != '') { $evdetail = ': ' . $evdetail; } echo '<tr><td style="text-align:' . $direction . '">' . $persDb['pers_gedcomnumber'] . '</td><td style="text-align:' . $direction . '"><a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $persDb['pers_gedcomnumber'] . '" target=\'_blank\'>' . $fullname . '</a> (' . __('Click events by person') . ')</td><td style="text-align:' . $direction . '">' . $evDb['event_kind'] . $evdetail . '</td><td style="text-align:' . $direction . '">' . $dirmark2 . $date . '</td></tr>'; } elseif ($evDb['event_family_id'] != '') { $fam = $dbh->query("SELECT * FROM humo_families\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND fam_gedcomnumber = '" . $evDb['event_family_id'] . "'"); $famDb = $fam->fetch(); $spouse1 = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $famDb['fam_man'] . "'"); $spouse1Db = $spouse1->fetch(); $name1 = $spouse1Db['pers_firstname'] . ' ' . str_replace("_", " ", $spouse1Db['pers_prefix'] . ' ' . $spouse1Db['pers_lastname']); $spouse2 = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $famDb['fam_woman'] . "'"); $spouse2Db = $spouse2->fetch(); $name2 = $spouse2Db['pers_firstname'] . ' ' . str_replace("_", " ", $spouse2Db['pers_prefix'] . ' ' . $spouse2Db['pers_lastname']); $fullname = $name1 . ' and ' . $name2; $spousegednr = $spouse1Db['pers_gedcomnumber']; if ($spousegednr == '') { $spousegednr = $spouse2Db['pers_gedcomnumber']; } $evdetail = $evDb['event_event']; if ($evdetail == '') { $evdetail = $evDb['event_gedcom']; } if ($evdetail != '') { $evdetail = ': ' . $evdetail; } echo '<tr><td style="text-align:' . $direction . '">' . $famDb['fam_gedcomnumber'] . '</td><td style="text-align:' . $direction . '"><a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $spousegednr . '" target=\'_blank\'>' . $fullname . '</a> (' . __('Click events by marriage') . ')</td><td style="text-align:' . $direction . '">' . $evDb['event_kind'] . $evdetail . '</td><td style="text-align:' . $direction . '">' . $dirmark2 . $date . '</td></tr>'; } } if (substr($table, 0, 3) == "con") { $connect = $dbh->query("SELECT * FROM humo_connections WHERE connect_id = '" . $gednr . "'"); $connectDb = $connect->fetch(); $name = ''; if (substr($connectDb['connect_sub_kind'], 0, 3) == 'per') { $pers = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber = '" . $connectDb['connect_connect_id'] . "'"); $persDb = $pers->fetch(); if (substr($connectDb['connect_sub_kind'], -6) == 'source') { $name = '<a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $persDb['pers_gedcomnumber'] . '" target=\'_blank\'>' . $persDb['pers_firstname'] . ' ' . str_replace("_", " ", $persDb['pers_prefix'] . ' ' . $persDb['pers_lastname']) . '</a> (' . __('Click relevant person source') . ')'; } if (substr($connectDb['connect_sub_kind'], -7) == 'address') { $name = '<a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $persDb['pers_gedcomnumber'] . '" target=\'_blank\'>' . $persDb['pers_firstname'] . ' ' . str_replace("_", " ", $persDb['pers_prefix'] . ' ' . $persDb['pers_lastname']) . '</a> (' . __('Click addresses') . ')'; } $gedcomnr = $persDb['pers_gedcomnumber']; } if (substr($connectDb['connect_sub_kind'], 0, 3) == 'fam') { $fam = $dbh->query("SELECT * FROM humo_families\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND fam_gedcomnumber = '" . $connectDb['connect_connect_id'] . "'"); $famDb = $fam->fetch(); $spouse1 = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $famDb['fam_man'] . "'"); $spouse1Db = $spouse1->fetch(); $name1 = $spouse1Db['pers_firstname'] . ' ' . str_replace("_", " ", $spouse1Db['pers_prefix'] . ' ' . $spouse1Db['pers_lastname']); $spouse2 = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $famDb['fam_woman'] . "'"); $spouse2Db = $spouse2->fetch(); $name2 = $spouse2Db['pers_firstname'] . ' ' . str_replace("_", " ", $spouse2Db['pers_prefix'] . ' ' . $spouse2Db['pers_lastname']); $name = $name1 . ' and ' . $name2; $spousegednr = $spouse1Db['pers_gedcomnumber']; if ($spousegednr == '') { $spousegednr = $spouse2Db['pers_gedcomnumber']; } if (substr($connectDb['connect_sub_kind'], -6) == 'source') { $name = '<a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $spousegednr . '" target=\'_blank\'>' . $name . '</a> (' . __('Click relevant family source'); } $gedcomnr = $famDb['fam_gedcomnumber']; } if (substr($connectDb['connect_sub_kind'], 0, 3) == 'eve') { $ev = $dbh->query("SELECT * FROM humo_events WHERE event_id ='" . $connectDb['connect_connect_id'] . "'"); $evDb = $ev->fetch(); if ($evDb['event_person_id'] != '') { $pers = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber = '" . $evDb['event_person_id'] . "'"); $persDb = $pers->fetch(); $gednr = $persDb['pers_gedcomnumber']; // for url string $gedcomnr = $persDb['pers_gedcomnumber']; // for first column $name = $persDb['pers_firstname'] . ' ' . str_replace("_", " ", $persDb['pers_prefix']) . ' ' . $persDb['pers_lastname']; } if ($evDb['event_family_id'] != '') { $fam = $dbh->query("SELECT * FROM humo_families\n\t\t\t\t\t\tWHERE fam_tree_id='" . $tree_id . "' AND fam_gedcomnumber = '" . $evDb['event_family_id'] . "'"); $famDb = $fam->fetch(); $spouse1 = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $famDb['fam_man'] . "'"); $spouse1Db = $spouse1->fetch(); $name1 = $spouse1Db['pers_firstname'] . ' ' . str_replace("_", " ", $spouse1Db['pers_prefix'] . ' ' . $spouse1Db['pers_lastname']); $spouse2 = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber='" . $famDb['fam_woman'] . "'"); $spouse2Db = $spouse2->fetch(); $name2 = $spouse2Db['pers_firstname'] . ' ' . str_replace("_", " ", $spouse2Db['pers_prefix'] . ' ' . $spouse2Db['pers_lastname']); $name = $name1 . ' and ' . $name2; $gednr = $spouse1Db['pers_gedcomnumber']; if ($spousegednr == '') { $spousegednr = $spouse2Db['pers_gedcomnumber']; } $gedcomnr = $famDb['fam_gedcomnumber']; // for first column } if (substr($connectDb['connect_sub_kind'], -6) == 'source') { $name = '<a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $gednr . '" target=\'_blank\'>' . $name . '</a> (' . __('Click relevant event source') . ')'; } } echo '<tr><td style="text-align:' . $direction . '">' . $gedcomnr . '</td><td style="text-align:' . $direction . '">' . $name . '</td><td style="text-align:' . $direction . '">' . $connectDb['connect_sub_kind'] . '</td><td style="text-align:' . $direction . '">' . $dirmark2 . $date . '</td></tr>'; } if (substr($table, 0, 3) == "add") { $addresses = $dbh->query("SELECT * FROM humo_addresses WHERE address_id = '" . $gednr . "'"); $addressesDb = $addresses->fetch(); if ($addressesDb['address_person_id'] != '') { $pers = $dbh->query("SELECT * FROM humo_persons\n\t\t\t\t\tWHERE pers_tree_id='" . $tree_id . "' AND pers_gedcomnumber = '" . $addressesDb['address_person_id'] . "'"); $persDb = $pers->fetch(); $name = $persDb['pers_firstname'] . ' ' . str_replace("_", " ", $persDb['pers_prefix']) . ' ' . $persDb['pers_lastname']; echo '<tr><td style="text-align:' . $direction . '">' . $persDb['pers_gedcomnumber'] . '</td><td style="text-align:' . $direction . '"><a href="../admin/index.php?page=editor&tree=' . $tree . '&person=' . $persDb['pers_gedcomnumber'] . '" target=\'_blank\'>' . $name . '</a> (' . __('Click addresses') . ')</td><td style="text-align:' . $direction . '">' . $table . '</td><td style="text-align:' . $direction . '">' . $date . '</td></tr>'; } if ($addressesDb['address_gedcomnr'] != '') { $second_column = '<a href="index.php?page=edit_addresses" target=\'_blank\'>' . __('Address editor') . '</a> (Search for: ' . $addressesDb['address_address'] . ')'; echo '<tr><td style="text-align:' . $direction . '">' . $gednr . '</td><td style="text-align:' . $direction . '">' . $second_column . '</td><td style="text-align:' . $direction . '">' . $table . '</td><td style="text-align:' . $direction . '">' . $dirmark2 . $date . '</td></tr>'; } } if (substr($table, 0, 3) == "sou") { $sourcesDb = $db_functions->get_source($gednr); echo '<tr><td style="text-align:' . $direction . '">' . $gednr . '</td><td style="text-align:' . $direction . '">' . '<a href="index.php?page=edit_sources" target=\'_blank\'>' . __('Source editor') . '</a> (Search for: ' . $sourcesDb->source_title . ')</td><td style="text-align:' . $direction . '">' . $table . '</td><td style="text-align:' . $direction . '">' . $dirmark2 . $date . '</td></tr>'; } if (substr($table, 0, 3) == "rep") { $reposDb = $db_functions->get_repository($gednr); echo '<tr><td style="text-align:' . $direction . '">' . $gednr . '</td><td style="text-align:' . $direction . '">' . '<a href="index.php?page=edit_repositories" target=\'_blank\'>' . __('Repository editor') . '</a> (Search for: ' . $reposDb->repo_name . ')</td><td style="text-align:' . $direction . '">' . $table . '</td><td style="text-align:' . $direction . '">' . $dirmark2 . $date . '</td></tr>'; } return true; // found invalid date } return false; // did not find invalid date }