Example #1
0
 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;
     }
 }
Example #2
0
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
}