zoomLevel = $zoom; $this->rootPerson = Person::getInstance($rootid); if (is_null($this->rootPerson)) $this->rootPerson = new Person(''); } $this->name = $name; //-- handle AJAX requests if (!empty($_REQUEST['navAjax'])) { header('Content-type: text/html; charset=UTF-8'); //-- embedded tree for mashups if ($_REQUEST['navAjax']=='embed') { global $stylesheet; ?> document.writeln(''); document.writeln(''); drawViewport($rootid, $w, $h); $output = ob_get_clean(); $lines = preg_split("/\r?\n/", $output); foreach($lines as $line) print "document.writeln('".str_replace("'", "\\'", $line)."');\n"; exit; } if (isset($_REQUEST['allSpouses'])) { if ($_REQUEST['allSpouses']=='false' || $_REQUEST['allSpouses']==false) $this->allSpouses = false; else $this->allSpouses = true; } if (!empty($_REQUEST['details'])) { $this->getDetails($this->rootPerson); } else if (!empty($_REQUEST['newroot'])) { if (!empty($_REQUEST['drawport'])) { $this->drawViewport('', "", "150px"); } else { $fam = null; if ($this->allSpouses) { $this->drawPersonAllSpouses($this->rootPerson, 4, 0); } else { $this->drawPerson($this->rootPerson, 4, 0, $fam); } } } else if (!empty($_REQUEST['parent'])) { $person = $this->rootPerson; if ($_REQUEST['parent']=='f') { $cfamily = $person->getPrimaryChildFamily(); if (!empty($cfamily)) { $father = $cfamily->getHusband(); if (!empty($father)) { $fam = null; $this->drawPerson($father, 2, 1, $fam); } else print "
"; } else print "
"; } else { $spouse = $person->getCurrentSpouse(); if (!empty($spouse)) { $cfamily = $spouse->getPrimaryChildFamily(); if (!empty($cfamily)) { $mother = $cfamily->getHusband(); if (!empty($mother)) { $fam = null; $this->drawPerson($mother, 2, 1, $fam); } else print "
"; } else print "
"; } else print "
"; } } else { $fams = $this->rootPerson->getSpouseFamilies(); $family = end($fams); if (!$this->allSpouses) $this->drawChildren($family, 2); else $this->drawAllChildren($this->rootPerson, 2); } exit; } } /** * Draw the view port which creates the draggable/zoomable framework * @param string $id an id to use for the starting HTML elements * @param string $width the width parameter for the outer style * @param string $height the height parameter for the outer style */ function drawViewport($id='', $width='', $height='') { global $WT_IMAGES, $GEDCOM; if (empty($id)) $id = $this->rootPerson->getXref(); $widthS = ""; $heightS = ""; if (!empty($width)) $widthS = "width: $width; "; if (!empty($height)) $heightS = "height: $height; "; ?> setupJS(); ?>
rootPerson!=null && !$this->rootPerson->canDisplayDetails()) print_privacy_error(); if (!$this->allSpouses) $this->drawPerson($this->rootPerson, $this->generations, 0, $parent); else $this->drawPersonAllSpouses($this->rootPerson, $this->generations, 0);?>
zoomin
zoomout
rootPerson) || WT_SCRIPT_NAME=='treenav.php') print "style=\"display: none;\"";?>>
rootPerson; //if (!$person->canDisplayDetails()) return; $families = array(); if (!empty($_REQUEST['famid'])) { $famid = $_REQUEST['famid']; if ($famid!='all') { $family = Family::getInstance($_REQUEST['famid']); if (!empty($family)) $families[] = $family; } else { $fams = $person->getSpouseFamilies(); foreach($fams as $fam) { $families[] = $fam; } } } else { if ($this->allSpouses) { $fams = $person->getSpouseFamilies(); foreach($fams as $fam) { $families[] = $fam; } } else { $fams = $person->getSpouseFamilies(); $families[] = end($fams); } } $name = $person->getFullName(); ?> getThumbnail($person); if (!empty($thumb)) { echo $thumb; } else if ($USE_SILHOUETTE && isset($WT_IMAGES["default_image_U"])) { $class = "pedigree_image_portrait"; if ($TEXT_DIRECTION == "rtl") $class .= "_rtl"; $sex = $person->getSex(); $thumbnail = "\"\""; echo $thumbnail; } ?> getSexImage().PrintReady($name); ?> " border="0" width="15" onclick="name;?>.newRoot('getXref();?>', name;?>.innerPort, '');" />
', abbreviate_fact('BIRT'), ' ', $person->getBirthDate()->Display(), ' ', PrintReady($person->getBirthPlace()), '
'; if ($person->isDead()) { echo '', abbreviate_fact('DEAT'), ' ', $person->getDeathDate()->Display(), ' ', PrintReady($person->getDeathPlace()); } ?>

getSpouse($person); if (!empty($spouse)) { $name = $spouse->getFullName(); ?> getThumbnail($spouse); if (!empty($thumb)) { echo $thumb; } else if ($USE_SILHOUETTE && isset($WT_IMAGES["default_image_U"])) { $class = "pedigree_image_portrait"; if ($TEXT_DIRECTION == "rtl") $class .= "_rtl"; $sex = $spouse->getSex(); $thumbnail = "\"\""; echo $thumbnail; } ?> getSexImage().PrintReady($name); ?> " border="0" width="15" onclick="name;?>.newRoot('getXref();?>', name;?>.innerPort, '');" />
', abbreviate_fact('BIRT'), ' ', $spouse->getBirthDate()->Display(), ' ', PrintReady($spouse->getBirthPlace()), '
'; echo '', abbreviate_fact('MARR'), ' ', $family->getMarriageDate()->Display(), ' ', $family->getMarriagePlace(); ?> <?php print $family->getXref(); ?>
isDead()) { echo '', abbreviate_fact('DEAT'), ' ', $spouse->getDeathDate()->Display(), ' ', PrintReady($spouse->getDeathPlace()), '
'; } ?>
0) { $children = $family->getChildren(); foreach($children as $ci=>$child) { $fam = null; $this->drawPerson($child, $gen-1, -1, $fam); } } } /** * Draw all of the children for a person * @param Person $person The person to draw the children for * @param int $gen The number of generations of descendents to draw */ function drawAllChildren(&$person, $gen=2) { if (!empty($person) && $gen>0) { $fams = $person->getSpouseFamilies(); foreach($fams as $famid=>$family) { $children = $family->getChildren(); $indichilds = array(); foreach($children as $ci=>$child) { if (!in_array($child, $indichilds)) { $fam = null; $this->drawPersonAllSpouses($child, $gen-1, -1); $indichilds[]=$child; } } } } } /** * Get the thumbnail image for the given person * * @param Person $person * @return string */ function getThumbnail(&$person) { global $MULTI_MEDIA, $SHOW_HIGHLIGHT_IMAGES, $TEXT_DIRECTION, $USE_MEDIA_VIEWER; $thumbnail = ""; if ($MULTI_MEDIA && $SHOW_HIGHLIGHT_IMAGES) { $object = $person->findHighlightedMedia(); if (!empty($object)) { $whichFile = thumb_or_main($object); // Do we send the main image or a thumbnail? $size = findImageSize($whichFile); $class = "pedigree_image_portrait"; if ($size[0]>$size[1]) $class = "pedigree_image_landscape"; if ($TEXT_DIRECTION == "rtl") $class .= "_rtl"; // NOTE: IMG ID $imgsize = findImageSize($object["file"]); $imgwidth = $imgsize[0]+50; $imgheight = $imgsize[1]+150; if (!empty($object['mid']) && $USE_MEDIA_VIEWER) { $thumbnail .= ""; } else { $thumbnail .= ""; } $thumbnail .= "\"\"zoomLevel < -2) $style = "display: none;"; else $style = "width: ".(10+$this->zoomLevel)."; height: ".(10+$this->zoomLevel).";"; if (empty($person)) $person = $this->rootPerson; if (empty($person)) return; $mother = null; $father = null; if ($state>=0) { $cfamily = $person->getPrimaryChildFamily(); if (!empty($cfamily)) { $father = $cfamily->getHusband(); if (empty($father)) $father = $cfamily->getWife(); } $fams = $person->getSpouseFamilies(); $fams = array_reverse($fams); //-- find the last spouse family that has a known spouse foreach($fams as $family) { if (!empty($family)) $spouse = $family->getSpouse($person); if (!empty($spouse)) { $mcfamily = $spouse->getPrimaryChildFamily(); if (!empty($mcfamily)) { $mother = $mcfamily->getHusband(); //-- a mother's father was found so break out break; } } } } ?> getNumberOfChildren()>0) $hasChildren = true; ?> getNumberOfChildren()>1) { ?>0) { ?>=0 && (!empty($father) || !empty($mother))) { $lineid = "pline_"; if (!empty($father)) $lineid.=$father->getXref(); $lineid.="_"; if (!empty($mother)) $lineid.=$mother->getXref(); ?>
> drawAllChildren($person, $gen); ?>
; cursor: pointer; font-size: zoomLevel;?>px; width: bwidth+($this->zoomLevel*18));?>px; margin-left: 3px; direction: " onclick="name; ?>.expandBox(this, 'getXref(); ?>', 'all');"> getFullName(); print PrintReady($person->getSexImage('small', $style)." ".$name); ?>
getSpouseFamilies(); foreach($fams as $famid=>$family) { $spouse = $family->getSpouse($person); if (!is_null($spouse)) { $name = $spouse->getFullName(); print PrintReady($spouse->getSexImage('small', $style)." ".$name); print "
"; } else print "
"; } ?>
getSpouseFamilies(); foreach($fams as $famid=>$family) { $spouse = $family->getSpouse($person); $mother = null; if ($spouse!=null) { $mcfamily = $spouse->getPrimaryChildFamily(); if (!empty($mcfamily)) { $mother = $mcfamily->getHusband(); } } if (!is_null($mother)) { ?>
> drawPerson($father, $gen-1, 1, $cfamily); else print "
";?>
> drawPerson($mother, $gen-1, 1, $mcfamily); else print"
";?>
zoomLevel < -2) $style = "display: none;"; else $style = "width: ".(10+$this->zoomLevel)."; height: ".(10+$this->zoomLevel).";"; if (empty($person)) $person = $this->rootPerson; if (empty($person)) return; $mother = null; $father = null; if (!empty($pfamily)) $spouse = $pfamily->getSpouse($person); else { $spouse = $person->getCurrentSpouse(); $fams = $person->getSpouseFamilies(); $pfamily = end($fams); } if ($state<=0) { $fams = $person->getSpouseFamilies(); $family = end($fams); } if ($state>=0) { $cfamily = $person->getPrimaryChildFamily(); if (!empty($cfamily)) { $father = $cfamily->getHusband(); } if (!empty($spouse)) { $mcfamily = $spouse->getPrimaryChildFamily(); if (!empty($mcfamily)) { $mother = $mcfamily->getHusband(); } } } ?> getNumberOfChildren()>0) $hasChildren = true; ?> getNumberOfChildren()>1) { ?>0) { ?>=0 && (!empty($father) || !empty($mother))) { $lineid = "pline_"; if (!empty($father)) $lineid.=$father->getXref(); $lineid.="_"; if (!empty($mother)) $lineid.=$mother->getXref(); ?>
> drawChildren($family, $gen); ?>
; cursor: pointer; font-size: zoomLevel;?>px; width: bwidth+($this->zoomLevel*18));?>px; direction: " onclick="name; ?>.expandBox(this, 'getXref(); ?>', 'getXref(); ?>');"> getFullName(); print PrintReady($person->getSexImage('small', $style)." ".$name); ?>
getFullName(); print PrintReady($spouse->getSexImage('small', $style)." ".$name); } else print "
"; ?>
> drawPerson($father, $gen-1, 1, $cfamily); else print "
";?>
> drawPerson($mother, $gen-1, 1, $mcfamily); else print"
";?>