summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--library/WT/Controller/Base.php5
-rw-r--r--library/WT/Controller/Family.php11
-rw-r--r--library/WT/Controller/Individual.php11
-rw-r--r--library/WT/MenuBar.php104
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);