public function getBlock($block_id, $template = true, $cfg = null) { global $ctype, $PEDIGREE_FULL_DETAILS, $show_full, $bwidth, $bheight; $PEDIGREE_ROOT_ID = get_gedcom_setting(WT_GED_ID, 'PEDIGREE_ROOT_ID'); $details = get_block_setting($block_id, 'details', false); $type = get_block_setting($block_id, 'type', 'pedigree'); $pid = get_block_setting($block_id, 'pid', WT_USER_ID ? WT_USER_GEDCOM_ID ? WT_USER_GEDCOM_ID : $PEDIGREE_ROOT_ID : $PEDIGREE_ROOT_ID); $block = get_block_setting($block_id, 'block'); if ($cfg) { foreach (array('details', 'type', 'pid', 'block') as $name) { if (array_key_exists($name, $cfg)) { ${$name} = $cfg[$name]; } } } // Override GEDCOM configuration temporarily if (isset($show_full)) { $saveShowFull = $show_full; } $savePedigreeFullDetails = $PEDIGREE_FULL_DETAILS; if (!$details) { $show_full = 0; // Here we could adjust the block width & height to accommodate larger displays } else { $show_full = 1; // Here we could adjust the block width & height to accommodate larger displays } $PEDIGREE_FULL_DETAILS = $show_full; $person = WT_Individual::getInstance($pid); if (!$person) { $pid = $PEDIGREE_ROOT_ID; set_block_setting($block_id, 'pid', $pid); $person = WT_Individual::getInstance($pid); } if ($type != 'treenav' && $person) { $controller = new WT_Controller_Hourglass($person->getXref(), 0); $controller->setupJavascript(); } $id = $this->getName() . $block_id; $class = $this->getName() . '_block'; if ($ctype == 'gedcom' && WT_USER_GEDCOM_ADMIN || $ctype == 'user' && WT_USER_ID) { $title = '<i class="icon-admin" title="' . WT_I18N::translate('Configure') . '" onclick="modalDialog(\'block_edit.php?block_id=' . $block_id . '\', \'' . $this->getTitle() . '\');"></i>'; } else { $title = ''; } if ($person) { switch ($type) { case 'pedigree': $title .= WT_I18N::translate('Pedigree of %s', $person->getFullName()); break; case 'descendants': $title .= WT_I18N::translate('Descendants of %s', $person->getFullName()); break; case 'hourglass': $title .= WT_I18N::translate('Hourglass chart of %s', $person->getFullName()); break; case 'treenav': $title .= WT_I18N::translate('Interactive tree of %s', $person->getFullName()); break; } $title .= help_link('index_charts', $this->getName()); $content = '<table cellspacing="0" cellpadding="0" border="0"><tr>'; if ($type == 'descendants' || $type == 'hourglass') { $content .= "<td valign=\"middle\">"; ob_start(); $controller->print_descendency($person, 1, false); $content .= ob_get_clean(); $content .= "</td>"; } if ($type == 'pedigree' || $type == 'hourglass') { //-- print out the root person if ($type != 'hourglass') { $content .= "<td valign=\"middle\">"; ob_start(); print_pedigree_person($person); $content .= ob_get_clean(); $content .= "</td>"; } $content .= "<td valign=\"middle\">"; ob_start(); $controller->print_person_pedigree($person, 1); $content .= ob_get_clean(); $content .= "</td>"; } if ($type == 'treenav') { require_once WT_MODULES_DIR . 'tree/module.php'; require_once WT_MODULES_DIR . 'tree/class_treeview.php'; $mod = new tree_WT_Module(); $tv = new TreeView(); $content .= '<td>'; $content .= '<script>jQuery("head").append(\'<link rel="stylesheet" href="' . $mod->css() . '" type="text/css" />\');</script>'; $content .= '<script src="' . $mod->js() . '"></script>'; list($html, $js) = $tv->drawViewport($person, 2); $content .= $html . '<script>' . $js . '</script>'; $content .= '</td>'; } $content .= "</tr></table>"; } else { $content = WT_I18N::translate('You must select an individual and chart type in the block configuration settings.'); } if ($template) { if ($block) { require WT_THEME_DIR . 'templates/block_small_temp.php'; } else { require WT_THEME_DIR . 'templates/block_main_temp.php'; } } else { return $content; } // Restore GEDCOM configuration unset($show_full); if (isset($saveShowFull)) { $show_full = $saveShowFull; } $PEDIGREE_FULL_DETAILS = $savePedigreeFullDetails; }
"> <b>%</b> </td> <td class="descriptionbox"> </td> <td class="optionbox"> </td> </tr> </table> </form> <div id="hourglass_chart" style="width:98%; z-index:1;"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td valign="middle"> <?php $controller->print_descendency(WT_Individual::getInstance($controller->pid), 1); ?> </td> <td valign="middle"> <?php $controller->print_person_pedigree(WT_Individual::getInstance($controller->pid), 1); ?> </td> </tr> </table> </div> </div>