示例#1
0
function setup_edit()
{
    $dao = getEventDAO();
    $e = new Event();
    $e->setFromRequest();
    $dao->getEvents($e, Q_ALL, true);
    if ($e->numResults > 0) {
        $per = $e->results[0]->person;
    } else {
        $per = new PersonDetail();
        $per->setFromRequest();
        $e->results = array(new Event());
        $e->results[0]->type = -1;
    }
    $per->queryType = Q_IND;
    $dao = getPeopleDAO();
    $dao->getPersonDetails($per);
    if ($per->numResults > 0) {
        $ret = $per->results[0];
    } else {
        $ret = $per;
    }
    $ret->events = $e->results;
    return $ret;
}
示例#2
0
function show_note($per)
{
    global $restrictmsg, $strEdit;
    $ret = 0;
    if (!$per->isViewable()) {
        echo $restrictmsg . "\n";
    } else {
        echo $per->narrative . "\n";
        if (strlen($per->narrative) > 0) {
            $ret = 1;
        }
        $edao = getEventDAO();
        $e = new Event();
        $e->person->person_id = $per->person_id;
        $edao->getEvents($e, Q_OTHER, true);
        $per->events = $e->results;
        foreach ($e->results as $event) {
            echo "<hr/>";
            echo '<div id="note' . $ret . '"><a href="edit.php?func=edit&amp;area=event&amp;event=' . $event->event_id . '">' . $strEdit . '</a></div>';
            echo $event->getFullDisplay("note" . $ret);
            $ret++;
        }
    }
    return $ret;
}
示例#3
0
function setup_edit()
{
    $rel = new Relationship();
    $rel->setFromRequest();
    if (!$rel->relation->person_id) {
        $rel->relation->person_id = -1;
    }
    $pdao = getPeopleDAO();
    if ($rel->person->person_id > 0) {
        $dao = getRelationsDAO();
        $dao->getRelationshipDetails($rel);
        if ($rel->numResults > 0) {
            $ret = $rel->results[0];
            $pdao->getParents($ret->relation);
        }
    } else {
        $ret = $rel;
    }
    $pdao->getParents($ret->person);
    $dao = getEventDAO();
    $e = new Event();
    $e->event_id = $ret->event->event_id;
    $dao->getEvents($e, Q_REL, true);
    if ($e->numResults == 0) {
        $e = new Event();
        $e->type = MARRIAGE_EVENT;
        $ret->event = $e;
    } else {
        $ret->event = $e->results[0];
    }
    $ret->event->person->person_id = 'null';
    return $ret;
}
示例#4
0
 function createTranscript(&$trans)
 {
     global $tblprefix, $err_transcript;
     $dao = getEventDAO();
     $this->startTrans();
     $rowsChanged = $dao->saveEvent($trans->event);
     $iquery = "INSERT INTO " . $tblprefix . "documents (doc_title, file_name, event_id, source_id) VALUES " . "(" . quote_smart($trans->title) . ", " . quote_smart($trans->file_name) . "," . $trans->event->event_id . "," . $trans->source->source_id . ")";
     $iresult = $this->runQuery($iquery, $err_transcript);
     $trans->transcript_id = str_pad($this->getInsertId(), 5, 0, STR_PAD_LEFT);
     $this->commitTrans();
     return $iresult;
 }
示例#5
0
 function createImage(&$img)
 {
     global $tblprefix, $err_image_insert;
     $dao = getEventDAO();
     $this->startTrans();
     $rowsChanged = $dao->saveEvent($img->event);
     $sid = $img->source->source_id;
     if ($sid < 0) {
         $sid = 'null';
     }
     $iquery = "INSERT INTO " . $tblprefix . "images (event_id, title, source_id) VALUES " . "('" . $img->event->event_id . "', " . quote_smart($img->title) . "," . $sid . ")";
     $iresult = $this->runQuery($iquery, $err_image_insert);
     $img->image_id = str_pad($this->getInsertId(), 5, 0, STR_PAD_LEFT);
     $this->commitTrans();
     return $rowsChanged + 1;
 }
示例#6
0
function setup_edit()
{
    $per = new PersonDetail();
    $per->father = new PersonDetail();
    $per->mother = new PersonDetail();
    $per->birth_place = new Location();
    $per->setFromRequest();
    $per->queryType = Q_IND;
    $dao = getPeopleDAO();
    $dao->getPersonDetails($per);
    if ($per->numResults > 0) {
        $ret = $per->results[0];
    } else {
        $ret = $per;
    }
    $dao = getEventDAO();
    $e = new Event();
    $e->person->person_id = $per->person_id;
    $dao->getEvents($e, Q_BD, true);
    $ret->events = $e->results;
    return $ret;
}
示例#7
0
function setup_edit()
{
    $img = new Image();
    $img->image_id = -1;
    $img->setFromRequest();
    $dao = getImageDAO();
    $dao->getImages($img);
    if ($img->numResults == 0) {
        if (isset($_REQUEST["event"])) {
            $dao = getEventDAO();
            $event = new Event();
            $event->setFromRequest();
            $dao->getEvents($event, Q_ALL);
            $img->event = $event->results[0];
            $img->person = $img->event->person;
        } else {
            $img->event = new Event();
        }
        if ($img->person->person_id > 0) {
            $img->person->queryType = Q_IND;
            $dao = getPeopleDAO();
            $dao->getPersonDetails($img->person);
            $img->person = $img->person->results[0];
        }
        $img->source = new Source();
        $img->source->setFromRequest();
        if ($img->source->source_id > 0) {
            $sdao = getSourceDAO();
            $sdao->getSources($img->source);
            if ($img->source->numResults > 0) {
                $img->source = $img->source->results[0];
            }
        }
        $ret = $img;
    } else {
        $ret = $img->results[0];
    }
    return $ret;
}
示例#8
0
function setup_edit()
{
    $trans = new Transcript();
    $trans->setFromRequest();
    if (!isset($trans->transcript_id)) {
        if (isset($_REQUEST["person"]) && $trans->person->person_id > 0) {
            $trans->person->queryType = Q_IND;
            $dao = getPeopleDAO();
            $dao->getPersonDetails($trans->person);
            if ($trans->person->numResults == 0) {
                $trans->person = $trans->person->results[0];
            } else {
                $trans->person = new PersonDetail();
                $trans->person->setFromRequest();
            }
        } else {
            $trans->person = new PersonDetail();
            $trans->person->setFromRequest();
        }
        $trans->source = new Source();
        $trans->source->setFromRequest();
        if ($trans->source->source_id > 0) {
            $sdao = getSourceDAO();
            $sdao->getSources($trans->source);
            if ($trans->source->numResults > 0) {
                $trans->source = $trans->source->results[0];
            }
        }
        $ret = $trans;
    } else {
        $dao = getTranscriptDAO();
        $dao->getTranscripts($trans);
        if ($trans->numResults == 0) {
            if (isset($_REQUEST["event"])) {
                $dao = getEventDAO();
                $event = new Event();
                $event->setFromRequest();
                $dao->getEvents($event, Q_ALL);
                $trans->event = $event->results[0];
                $trans->person = $trans->event->person;
            }
            if ($trans->person->person_id > 0) {
                $trans->person->queryType = Q_IND;
                $dao = getPeopleDAO();
                $dao->getPersonDetails($trans->person);
                $trans->person = $trans->person->results[0];
            } else {
                $trans->person = new PersonDetail();
            }
            $trans->source = new Source();
            $trans->source->setFromRequest();
            if ($trans->source->source_id > 0) {
                $sdao = getSourceDAO();
                $sdao->getSources($trans->source);
                if ($trans->source->numResults > 0) {
                    $trans->source = $trans->source->results[0];
                }
            }
            $ret = $trans;
        } else {
            $ret = $trans->results[0];
        }
    }
    return $ret;
}
示例#9
0
    $e = new Event();
    $e->setFromPost();
    $prefix = 'a';
    $e->sources = array();
    while (isset($_POST[$prefix . "_title"])) {
        $s = new Source();
        $s->setFromPost($prefix . "_");
        if ($s->hasData()) {
            $e->sources[] = $s;
        }
        $prefix++;
    }
    $prefix = 'a';
    $e->attendees = array();
    while (isset($_POST[$prefix . "person_id"])) {
        $a = new Attendee();
        $a->setFromPost($prefix);
        $l = new Location();
        $l->setFromPost($prefix);
        $a->location = $l;
        if ($a->hasData() || $a->person->person_id == $e->person->person_id) {
            $e->attendees[] = $a;
        }
        $prefix++;
    }
    $cen->event = $e;
    $dao->saveCensusDetails($cen);
    $edao = getEventDAO();
    $edao->stampAttendees($cen->event);
}
header("Location: people.php?person=" . $cen->person->person_id);
示例#10
0
function print_person($search, $per)
{
    global $famarray;
    // if trying to access a restriced person
    if (!$per->isExportable()) {
        return;
    }
    $config = Config::getInstance();
    //get surename right for gedcom NAME field
    //if there is just one name filled in name and surname
    $surname = "";
    if ($per->name->link != "") {
        $surname = $per->name->link;
    }
    $surname .= $per->name->surname;
    if ($per->name->suffix != "") {
        $surname .= $per->name->suffix;
    }
    if ($per->name->forenames != "") {
        $ged_name = $per->name->forenames . " /" . $surname . "/";
    } else {
        $ged_name = $surname;
    }
    //If this person was previously imported from a gedcom file then use that id
    $id = $per->person_id;
    $gdao = getGedcomDAO();
    $gedids = $gdao->getReferences($id);
    if (count($gedids) === 1) {
        $id = $gedids[0]["gedrefid"];
    }
    output_ged(0, "@", $id, "@ INDI");
    output_ged(1, "NAME ", $ged_name);
    output_ged(2, "GIVN ", $per->name->forenames);
    if ($per->name->link != "") {
        output_ged(2, "SPFX ", $per->name->link);
    }
    output_ged(2, "SURN ", $surname);
    if ($per->name->title != "") {
        output_ged(2, "NPFX ", $per->name->title);
    }
    if ($per->name->suffix != "") {
        output_ged(2, "NSFX ", $per->name->suffix);
    }
    if ($per->name->knownas != "") {
        output_ged(2, "NICK ", $per->name->knownas);
    }
    output_ged(1, "SEX ", $per->gender);
    $edao = getEventDAO();
    $e = new Event();
    $e->person->person_id = $per->person_id;
    $edao->getEvents($e, Q_BD, true);
    $sdao = getSourceDAO();
    $classes = array("1 BIRT", "1 BAPM", "1 DEAT", "1 BURI");
    foreach ($e->results as $e) {
        if ($e->hasData()) {
            echo $classes[$e->type] . "\n";
            $events[$e->type] = $e;
            #			$sdao->getEventSources($e);
            echo DateUtil::full_ged_date1($e);
            if ($e->location->place != "") {
                output_ged(2, "PLAC ", $e->location->place);
            }
            if ($e->type == DEATH_EVENT && $per->death_reason != "") {
                output_ged(2, "CAUS ", $per->death_reason);
            }
            if ($e->notes != "") {
                echo "2 NOTE\n";
                output_ged(3, "CONT ", $e->notes);
                if (isset($e->source) && $e->source != "") {
                    output_ged(2, "SOUR ", $e->source->title);
                } else {
                    output_ged(3, "SOUR ", "phpmyfamily");
                }
            }
        }
    }
    if ($per->mother->person_id != "00000" and $per->father->person_id != "00000") {
        $famc = $per->father->person_id . $per->mother->person_id;
        output_ged(1, "FAMC @", $famc . "@");
        if (!array_key_exists($famc, $famarray)) {
            $famarray[$famc] = array();
        }
        $famarray[$famc][] = $per;
    }
    if ($per->narrative != "") {
        //Textfield could have Returns, separate them in gedcom CONT lines
        $narrative = preg_replace("/\n/", "\n2 CONT ", $per->narrative);
        output_ged(1, "NOTE ", $narrative);
    }
    $exploded = explode(" ", $per->updated);
    $updated = DateUtil::ged_date($exploded[0]);
    echo "1 CHAN\n";
    output_ged(2, "DATE ", $updated);
    //find photos
    $eid = -1;
    $sid = -1;
    $images = new Image();
    $images->person = $per;
    $idao = getImageDAO();
    $idao->getImages($images);
    for ($current = 0; $current < $images->numResults; $current++) {
        $img = $images->results[$current];
        output_ged(1, "OBJE @img", $img->image_id, "@");
        output_ged(2, "FILE ", $config->absurl . $img->getImageFile());
        output_ged(2, "FORM ", "jpg");
        output_ged(2, "TITL ", $img->title);
    }
    $trans = new Transcript();
    $trans->person = $per;
    $tdao = getTranscriptDAO();
    $tdao->getTranscripts($trans);
    for ($i = 0; $i < $trans->numResults; $i++) {
        $doc = $trans->results[$i];
        output_ged(1, "SOUR @doc", $doc->transcript_id, "@");
        //TITL not allowed here
        output_ged(2, "TEXT ", $doc->description);
        //FILE not allowed here
    }
    echo "1 SUBM @phpmyfamily@\n";
}
示例#11
0
 function deletePersonCensusRecord($per)
 {
     global $tblprefix, $err_census_delete;
     if ($per->person_id == '') {
         return;
     }
     $dquery = "DELETE FROM " . $tblprefix . "census WHERE person_id = " . $per->person_id;
     $dresult = $this->runQuery($dquery, $err_census_delete);
     $dao = getEventDAO();
     $dao->deletePersonEvents($per, CENSUS_EVENT);
     return $dresult;
 }
示例#12
0
 function deletePersonRelationshipDetails($per)
 {
     global $tblprefix, $err_marriage_delete;
     if ($per->person_id == '') {
         return;
     }
     $dquery = "DELETE FROM " . $tblprefix . "spouses WHERE (groom_id = " . $per->person_id . " OR bride_id =" . $per->person_id . ")";
     $dresult = $this->runQuery($dquery, $err_marriage_delete);
     $dao = getEventDAO();
     $dao->deletePersonEvents($per, MARRIAGE_EVENT);
 }
示例#13
0
 function deletePerson($per)
 {
     global $tblprefix, $err_child_update, $err_person_delete;
     // there's a lot to do here
     $this->startTrans();
     $dao = getEventDAO();
     $dao->deletePersonEvents($per, BIRTH_EVENT);
     // delete transcripts
     $trans = new Transcript();
     $trans->person = $per;
     $tdao = getTranscriptDAO();
     $tdao->getTranscripts($trans);
     for ($i = 0; $i < $trans->numResults; $i++) {
         $tdao->deleteTranscript($trans->results[$i]);
     }
     // delete censuses
     $cdao = getCensusDAO();
     $cdao->deletePersonCensusRecord($per);
     // delete images
     $img = new Image();
     $img->person = $per;
     $idao = getImageDAO();
     $idao->getImages($img);
     for ($i = 0; $i < $img->numResults; $i++) {
         $idao->deleteImage($img->results[$i]);
     }
     // delete marriages
     $rdao = getRelationsDAO();
     $rdao->deletePersonRelationshipDetails($per);
     // delete tracking
     $dtquery = "DELETE FROM " . $tblprefix . "tracking WHERE person_id = '" . $per->person_id . "'";
     $dtresult = $this->runQuery($dtquery, $err_person_delete);
     // update children to point to the right person
     $ucquery = "UPDATE " . $tblprefix . "people SET mother_id = '0' WHERE mother_id = '" . $per->person_id . "'";
     $ucresult = $this->runQuery($ucquery, $err_child_update);
     $ucquery = "UPDATE " . $tblprefix . "people SET father_id = '0' WHERE father_id = '" . $per->person_id . "'";
     $ucresult = $this->runQuery($ucquery, $err_child_update);
     // names
     $dpquery = "DELETE FROM " . $tblprefix . "names WHERE person_id = '" . $per->person_id . "'";
     $dpresult = $this->runQuery($dpquery, $err_person_delete);
     // finally, the person
     $dpquery = "DELETE FROM " . $tblprefix . "people WHERE person_id = '" . $per->person_id . "'";
     $dpresult = $this->runQuery($dpquery, $err_person_delete);
     $this->commitTrans();
 }