diff options
| -rw-r--r-- | library/WT/Controller/Base.php | 5 | ||||
| -rw-r--r-- | library/WT/Controller/Family.php | 11 | ||||
| -rw-r--r-- | library/WT/Controller/Individual.php | 11 | ||||
| -rw-r--r-- | library/WT/MenuBar.php | 104 |
4 files changed, 53 insertions, 78 deletions
diff --git a/library/WT/Controller/Base.php b/library/WT/Controller/Base.php index 7606498bf9..016e7c0373 100644 --- a/library/WT/Controller/Base.php +++ b/library/WT/Controller/Base.php @@ -138,7 +138,7 @@ class WT_Controller_Base { // We've collected up JavaScript fragments while rendering the page. // Now display them. - private function getJavaScript() { + public function getJavaScript() { // Load external libraries first $html=PHP_EOL; foreach (array_keys($this->external_javascript) as $script_name) { @@ -314,4 +314,7 @@ class WT_Controller_Base { // always return a record return new WT_Family('0 @F@ FAM'); } + public function getSignificantSurname() { + return ''; + } } diff --git a/library/WT/Controller/Family.php b/library/WT/Controller/Family.php index 4a572106a3..b0e845c72d 100644 --- a/library/WT/Controller/Family.php +++ b/library/WT/Controller/Family.php @@ -194,4 +194,15 @@ class WT_Controller_Family extends WT_Controller_GedcomRecord { } return $menu; } + + // Get significant information from this page, to allow other pages such as + // charts and reports to initialise with the same records + public function getSignificantSurname() { + if ($this->record && $this->record->getHusband()) { + list($surn, $givn)=explode(',', $this->record->getHusband()->getSortname()); + return $surn; + } else { + return ''; + } + } } diff --git a/library/WT/Controller/Individual.php b/library/WT/Controller/Individual.php index 1a24d31044..0941474739 100644 --- a/library/WT/Controller/Individual.php +++ b/library/WT/Controller/Individual.php @@ -747,6 +747,17 @@ class WT_Controller_Individual extends WT_Controller_GedcomRecord { return $people; } + // Get significant information from this page, to allow other pages such as + // charts and reports to initialise with the same records + public function getSignificantSurname() { + if ($this->record) { + list($surn, $givn)=explode(',', $this->record->getSortname()); + return $surn; + } else { + return ''; + } + } + // ----------------------------------------------------------------------------- // Functions for GedFact Assistant // ----------------------------------------------------------------------------- diff --git a/library/WT/MenuBar.php b/library/WT/MenuBar.php index d17f89efc2..9eae56bff3 100644 --- a/library/WT/MenuBar.php +++ b/library/WT/MenuBar.php @@ -115,25 +115,15 @@ class WT_MenuBar { } public static function getChartsMenu() { - global $WT_IMAGES, $SEARCH_SPIDER, $PEDIGREE_FULL_DETAILS, $PEDIGREE_LAYOUT, $controller; + global $WT_IMAGES, $SEARCH_SPIDER, $controller; if ($SEARCH_SPIDER) { return null; } - if ($controller) { - $rootid=$controller->getSignificantIndividual()->getXref(); - } else { - $rootid=''; - } - - $showFull = ($PEDIGREE_FULL_DETAILS) ? 1 : 0; - $showLayout = ($PEDIGREE_LAYOUT) ? 1 : 0; + $indi_xref=$controller->getSignificantIndividual()->getXref(); - //-- main charts menu item - $link = 'pedigree.php?ged='.WT_GEDURL."&show_full={$showFull}&talloffset={$showLayout}"; - if ($rootid) $link .= "&rootid={$rootid}"; - $menu = new WT_Menu(WT_I18N::translate('Charts'), $link, 'menu-chart', 'down'); + $menu = new WT_Menu(WT_I18N::translate('Charts'), 'pedigree.php?rootid='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart', 'down'); $menu->addIcon('charts'); $menu->addClass('menuitem', 'menuitem_hover', 'submenu', 'icon_large_pedigree'); @@ -166,70 +156,49 @@ class WT_MenuBar { foreach ($menuList as $menuType => $menuName) { switch ($menuType) { case 'pedigree': - //-- pedigree - $link = 'pedigree.php?ged='.WT_GEDURL."&show_full={$showFull}&talloffset={$showLayout}"; - if ($rootid) $link .= "&rootid={$rootid}"; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-pedigree'); + $submenu = new WT_Menu($menuName, 'pedigree.php?rootid='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart-pedigree'); $submenu->addIcon('pedigree'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_pedigree'); $menu->addSubmenu($submenu); break; case 'descendancy': - //-- descendancy - $link = 'descendancy.php?ged='.WT_GEDURL; - if ($rootid) $link .= "&pid={$rootid}&show_full={$showFull}"; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-descendancy'); + $submenu = new WT_Menu($menuName, 'descendancy.php?rootid='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart-descendancy'); $submenu->addIcon('descendant'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_descendant'); $menu->addSubmenu($submenu); break; case 'ancestry': - //-- ancestry - $link = 'ancestry.php?ged='.WT_GEDURL; - if ($rootid) $link .= "&rootid={$rootid}&show_full={$showFull}"; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-ancestry'); + $submenu = new WT_Menu($menuName, 'ancestry.php?rootid='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart-ancestry'); $submenu->addIcon('ancestry'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_ancestry'); $menu->addSubmenu($submenu); break; case 'compact': - //-- compact - $link = 'compact.php?ged='.WT_GEDURL; - if ($rootid) $link .= '&rootid='.$rootid; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-compact'); + $submenu = new WT_Menu($menuName, 'compact.php?rootid='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart-compact'); $submenu->addIcon('ancestry'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_ancestry'); $menu->addSubmenu($submenu); break; case 'fanchart': - //-- fan chart - $link = 'fanchart.php?ged='.WT_GEDURL; - if ($rootid) $link .= '&rootid='.$rootid; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-fanchart'); + $submenu = new WT_Menu($menuName, '.fanchart.php?rootid='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart-fanchart'); $submenu->addIcon('fanchart'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_fanchart'); $menu->addSubmenu($submenu); break; case 'hourglass': - //-- hourglass - $link = 'hourglass.php?ged='.WT_GEDURL; - if ($rootid) $link .= "&pid={$rootid}&show_full={$showFull}"; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-hourglass'); + $submenu = new WT_Menu($menuName, 'hourglass.php?rootid='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart-hourglass'); $submenu->addIcon('hourglass'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_hourglass'); $menu->addSubmenu($submenu); break; case 'familybook': - //-- familybook - $link = 'familybook.php?ged='.WT_GEDURL; - if ($rootid) $link .= "&pid={$rootid}&show_full={$showFull}"; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-familybook'); + $submenu = new WT_Menu($menuName, 'familybook.php?rootid='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart-familybook'); $submenu->addIcon('fambook'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_fambook'); $menu->addSubmenu($submenu); @@ -238,11 +207,10 @@ class WT_MenuBar { case 'timeline': //-- timeline $link = 'timeline.php?ged='.WT_GEDURL; - if ($rootid) $link .= '&pids%5B%5D='.$rootid; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-timeline'); + $submenu = new WT_Menu($menuName, 'timeline.php?pids%5B%5D='.$indi_xref.'&ged='.WT_GEDURL, 'menu-chart-timeline'); $submenu->addIcon('timeline'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_timeline'); - if (isset($controller) && !empty($controller->family)) { + if ($controller instanceof WT_Controller_Family) { // Build a sortable list of submenu items and then sort it in localized name order $menuList = array(); $menuList['parentTimeLine'] = WT_I18N::translate('Show couple on timeline chart'); @@ -296,20 +264,17 @@ class WT_MenuBar { break; case 'lifespan': - //-- lifespan - $link = 'lifespan.php?ged='.WT_GEDURL; - if ($rootid) $link .= "&pids%5B%5D={$rootid}&addFamily=1"; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-lifespan'); + $submenu = new WT_Menu($menuName, 'lifespan.php?pids%5B%5D='.$indi_xref.'&addFamily=1&ged='.WT_GEDURL, 'menu-chart-lifespan'); $submenu->addIcon('timeline'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_timeline'); $menu->addSubmenu($submenu); break; case 'relationship': - if ($rootid) { + if ($indi_xref) { // Pages focused on a specific person - from the person, to me - $pid1=WT_USER_GEDCOM_ID ? WT_USER_GEDCOM_ID : WT_USER_ROOT_ID; - $pid2=$rootid; + $pid1=WT_USER_GEDCOM_ID ? WT_USER_GEDCOM_ID : WT_USER_ROOT_ID;; + $pid2=$indi_xref; if ($pid1==$pid2) { $pid2=''; } @@ -354,7 +319,6 @@ class WT_MenuBar { break; case 'statistics': - //-- statistics plot $submenu = new WT_Menu($menuName, 'statistics.php?ged='.WT_GEDURL, 'menu-chart-statistics'); $submenu->addIcon('statistic'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_statistic'); @@ -362,19 +326,14 @@ class WT_MenuBar { break; case 'tree': - //-- interactive tree - $link = 'module.php?mod=tree&mod_action=treeview&ged='.WT_GEDURL.'&rootid='.$rootid; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-tree'); + $submenu = new WT_Menu($menuName, 'module.php?mod=tree&mod_action=treeview&ged='.WT_GEDURL.'&rootid='.$indi_xref, 'menu-chart-tree'); $submenu->addIcon('itree'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_gedcom'); $menu->addSubmenu($submenu); break; case 'pedigree_map': - //-- pedigree map - $link = 'module.php?ged='.WT_GEDURL.'&mod=googlemap&mod_action=pedigree_map'; - if ($rootid) $link .= '&rootid='.$rootid; - $submenu = new WT_Menu($menuName, $link, 'menu-chart-pedigree_map'); + $submenu = new WT_Menu($menuName, 'module.php?ged='.WT_GEDURL.'&mod=googlemap&mod_action=pedigree_map&rootid='.$indi_xref, 'menu-chart-pedigree_map'); $WT_IMAGES['pedigree_map']=WT_STATIC_URL.WT_MODULES_DIR.'googlemap/images/pedigree_map.gif'; $submenu->addIcon('pedigree_map'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_map'); @@ -388,12 +347,6 @@ class WT_MenuBar { public static function getListsMenu() { global $SEARCH_SPIDER, $controller; - if ($controller) { - list($surname)=explode(',', $controller->getSignificantIndividual()->getSortName()); - } else { - $surname=''; - } - // The top level menu shows the individual list $menu=new WT_Menu(WT_I18N::translate('Lists'), 'indilist.php?ged='.WT_GEDURL, 'menu-list', 'down'); $menu->addIcon('lists'); @@ -430,63 +383,60 @@ class WT_MenuBar { } asort($menulist); + $surname_url='?surname='.rawurlencode($controller->getSignificantSurname()).'&ged='.WT_GEDURL; foreach ($menulist as $page=>$name) { - $link=$page.'?ged='.WT_GEDURL; switch ($page) { case 'indilist.php': - if ($surname) $link .= '&surname='.rawurlencode($surname); - $submenu = new WT_Menu($name, $link, 'menu-list-indi'); + $submenu = new WT_Menu($name, $page.$surname_url, 'menu-list-indi'); $submenu->addIcon('indis'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_indis'); $menu->addSubmenu($submenu); break; case 'famlist.php': - if ($surname) $link .= '&surname='.rawurlencode($surname); - $submenu = new WT_Menu($name, $link, 'menu-list-fam'); + $submenu = new WT_Menu($name, $page.$surname_url, 'menu-list-fam'); $submenu->addIcon('cfamily'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_cfamily'); $menu->addSubmenu($submenu); break; case 'branches.php': - if ($surname) $link .= '&surn='.rawurlencode($surname); - $submenu = new WT_Menu($name, $link, 'menu-branches'); + $submenu = new WT_Menu($name, $page.$surname_url, 'menu-branches'); $submenu->addIcon('patriarch'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_patriarch'); $menu->addSubmenu($submenu); break; case 'sourcelist.php': - $submenu = new WT_Menu($name, $link, 'menu-list-sour'); + $submenu = new WT_Menu($name, $page.'&ged='.WT_GEDURL, 'menu-list-sour'); $submenu->addIcon('menu_source'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_menu_source'); $menu->addSubmenu($submenu); break; case 'notelist.php': - $submenu = new WT_Menu($name, $link, 'menu-list-note'); + $submenu = new WT_Menu($name, $page.'&ged='.WT_GEDURL, 'menu-list-note'); $submenu->addIcon('menu_note'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_notes'); $menu->addSubmenu($submenu); break; case 'repolist.php': - $submenu = new WT_Menu($name, $link, 'menu-list-repo'); + $submenu = new WT_Menu($name, $page.'&ged='.WT_GEDURL, 'menu-list-repo'); $submenu->addIcon('menu_repository'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_menu_repository'); $menu->addSubmenu($submenu); break; case 'placelist.php': - $submenu = new WT_Menu($name, $link, 'menu-list-plac'); + $submenu = new WT_Menu($name, $page.'&ged='.WT_GEDURL, 'menu-list-plac'); $submenu->addIcon('place'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_place'); $menu->addSubmenu($submenu); break; case 'medialist.php': - $submenu = new WT_Menu($name, $link, 'menu-list-obje'); + $submenu = new WT_Menu($name, $page.'&ged='.WT_GEDURL, 'menu-list-obje'); $submenu->addIcon('menu_media'); $submenu->addClass('submenuitem', 'submenuitem_hover', '', 'icon_small_menu_media'); $menu->addSubmenu($submenu); |
