addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["home"]["large"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_home");
return $menu;
}
/**
* get the menu with links to the gedcom portals
* @return Menu the menu item
*/
static function getGedcomMenu() {
global $ALLOW_CHANGE_GEDCOM, $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES;
if ($TEXT_DIRECTION=='rtl') $ff='_rtl'; else $ff='';
//-- main menu
$menu = new Menu(i18n::translate('Home Page'), 'index.php?ctype=gedcom', 'down');
if (!empty($WT_IMAGES['gedcom']['large']))
$menu->addIcon($WT_IMAGE_DIR.'/'.$WT_IMAGES['gedcom']['large']);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", 'icon_large_gedcom');
//-- gedcom list
$gedcom_titles=get_gedcom_titles();
if ($ALLOW_CHANGE_GEDCOM && count($gedcom_titles)>1) {
foreach ($gedcom_titles as $gedcom_title) {
$submenu = new Menu(PrintReady($gedcom_title->gedcom_title, true), encode_url('index.php?ctype=gedcom&ged='.$gedcom_title->gedcom_name));
if (!empty($WT_IMAGES['gedcom']['small'])) {
$submenu->addIcon($WT_IMAGE_DIR.'/'.$WT_IMAGES['gedcom']['small']);
}
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", '', 'icon_small_gedcom');
$menu->addSubmenu($submenu);
}
}
//-- Welcome Menu customization
$filename = WT_ROOT.'includes/extras/custom_welcome_menu.php';
if (file_exists($filename)) {
require $filename;
}
return $menu;
}
/**
* get the mygedview menu
* @return Menu the menu item
*/
static function getMygedviewMenu() {
global $MEDIA_DIRECTORY, $MULTI_MEDIA;
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES;
global $PEDIGREE_FULL_DETAILS, $PEDIGREE_LAYOUT;
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
$showFull = ($PEDIGREE_FULL_DETAILS) ? 1 : 0;
$showLayout = ($PEDIGREE_LAYOUT) ? 1 : 0;
if (!WT_USER_ID) {
return new Menu('', '', '');
}
//-- main menu
$menu = new Menu(i18n::translate('My Page'), "index.php?ctype=user", "down");
if (!empty($WT_IMAGES["mygedview"]["large"])) {
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["mygedview"]["large"]);
} elseif (!empty($WT_IMAGES["gedcom"]["large"])) {
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["gedcom"]["large"]);
}
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_mygedview");
//-- mygedview submenu
$submenu = new Menu(i18n::translate('My Page'), "index.php?ctype=user");
if (!empty($WT_IMAGES["mygedview"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["mygedview"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_mygedview");
$menu->addSubmenu($submenu);
//-- editaccount submenu
if (get_user_setting(WT_USER_ID, 'editaccount')) {
$submenu = new Menu(i18n::translate('My Account'), "edituser.php");
if (!empty($WT_IMAGES["mygedview"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["mygedview"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_mygedview");
$menu->addSubmenu($submenu);
}
if (WT_USER_GEDCOM_ID) {
//-- my_pedigree submenu
$submenu = new Menu(i18n::translate('My Pedigree'), encode_url("pedigree.php?rootid=".WT_USER_GEDCOM_ID."&show_full={$showFull}&talloffset={$showLayout}"));
if (!empty($WT_IMAGES["pedigree"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["pedigree"]["small"]);
//$submenu->addIcon($WT_IMAGE_DIR."/small/pedigree.gif");
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_pedigree");
$menu->addSubmenu($submenu);
//-- my_indi submenu
$submenu = new Menu(i18n::translate('My Individual Record'), "individual.php?pid=".WT_USER_GEDCOM_ID);
if (!empty($WT_IMAGES["indis"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["indis"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_indis");
$menu->addSubmenu($submenu);
}
if (WT_USER_GEDCOM_ADMIN){
$menu->addSeparator();
//-- admin submenu
$submenu = new Menu(i18n::translate('Admin'), "admin.php");
if (!empty($WT_IMAGES["admin"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["admin"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_admin");
$menu->addSubmenu($submenu);
//-- manage_gedcoms submenu
$submenu = new Menu(i18n::translate('GEDCOM administration'), "editgedcoms.php");
if (!empty($WT_IMAGES["admin"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["admin"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_admin");
$menu->addSubmenu($submenu);
//-- user_admin submenu
if (WT_USER_IS_ADMIN) {
$submenu = new Menu(i18n::translate('User administration'), "useradmin.php");
if (!empty($WT_IMAGES["admin"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["admin"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_admin");
$menu->addSubmenu($submenu);
//-- manage_media submenu
if (is_writable($MEDIA_DIRECTORY) && $MULTI_MEDIA) {
$submenu = new Menu(i18n::translate('Manage MultiMedia'), "media.php");
if (!empty($WT_IMAGES["menu_media"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_media"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_media");
$menu->addSubmenu($submenu);
}
}
}
if (WT_USER_CAN_EDIT) {
//-- upload_media submenu
if (is_writable($MEDIA_DIRECTORY) && $MULTI_MEDIA) {
$menu->addSeparator();
$submenu = new Menu(i18n::translate('Upload Media files'), "uploadmedia.php");
if (!empty($WT_IMAGES["menu_media"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_media"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_media");
$menu->addSubmenu($submenu);
}
}
return $menu;
}
/**
* get the menu for the charts
* @return Menu the menu item
*/
static function getChartsMenu($rootid='') {
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES, $SEARCH_SPIDER;
global $PEDIGREE_FULL_DETAILS, $PEDIGREE_LAYOUT;
global $controller;
$style = "top";
if ($rootid) $style = "sub";
if (isset($controller)) {
if (!$rootid) {
if (isset($controller->pid)) $rootid = $controller->pid;
if (isset($controller->rootid)) $rootid = $controller->rootid;
}
}
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
if (!empty($SEARCH_SPIDER)) {
$menu = new Menu("", "", "");
return $menu;
}
$showFull = ($PEDIGREE_FULL_DETAILS) ? 1 : 0;
$showLayout = ($PEDIGREE_LAYOUT) ? 1 : 0;
//-- main charts menu item
$link = "pedigree.php?ged=".WT_GEDCOM."&show_full={$showFull}&talloffset={$showLayout}";
if ($rootid) $link .= "&rootid={$rootid}";
if ($style=="sub") {
$menu = new Menu(i18n::translate('Charts'), encode_url($link));
if (!empty($WT_IMAGES["pedigree"]["small"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["pedigree"]["small"]);
$menu->addClass("submenuitem$ff", "submenuitem_hover$ff", "submenu$ff", "", "icon_small_pedigree");
}
else {
// top menubar
$menu = new Menu(i18n::translate('Charts'), encode_url($link), "down");
if (!empty($WT_IMAGES["pedigree"]["large"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["pedigree"]["large"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_pedigree");
}
// Build a sortable list of submenu items and then sort it in localized name order
$menuList = array();
$menuList["pedigree"] = i18n::translate('Pedigree Chart');
if (file_exists(WT_ROOT.'descendancy.php')) $menuList["descendancy"] = i18n::translate('Descendancy Chart');
if (file_exists(WT_ROOT.'ancestry.php')) $menuList["ancestry"] = i18n::translate('Ancestry Chart');
if (file_exists(WT_ROOT.'compact.php')) $menuList["compact"] = i18n::translate('Compact Chart');
if (file_exists(WT_ROOT.'fanchart.php') && function_exists("imagettftext")) $menuList["fanchart"] = i18n::translate('Circle Diagram');
if (file_exists(WT_ROOT.'hourglass.php')) $menuList["hourglass"] = i18n::translate('Hourglass Chart');
if (file_exists(WT_ROOT.'familybook.php')) $menuList["familybook"] = i18n::translate('Family Book Chart');
if (file_exists(WT_ROOT.'timeline.php')) $menuList["timeline"] = i18n::translate('Timeline Chart');
if (file_exists(WT_ROOT.'lifespan.php')) $menuList["lifespan"] = i18n::translate('Lifespan Chart');
if (file_exists(WT_ROOT.'relationship.php')) $menuList["relationship"] = i18n::translate('Relationship Chart');
if (file_exists(WT_ROOT.'statistics.php')) $menuList["statistics"] = i18n::translate('Statistics');
if (file_exists(WT_ROOT.'treenav.php')) $menuList["treenav"] = i18n::translate('Interactive Tree');
if (file_exists(WT_ROOT.'modules/googlemap/pedigree_map.php')) {
$menuList["pedigree_map"] = i18n::translate('Pedigree Map');//added for pedigree_map
}
asort($menuList);
// Produce the submenus in localized name order
foreach($menuList as $menuType => $menuName) {
switch ($menuType) {
case "pedigree":
//-- pedigree
$link = "pedigree.php?ged=".WT_GEDCOM."&show_full={$showFull}&talloffset={$showLayout}";
if ($rootid) $link .= "&rootid={$rootid}";
$submenu = new Menu(i18n::translate('Pedigree Chart'), encode_url($link));
if (!empty($WT_IMAGES["pedigree"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["pedigree"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_pedigree");
$menu->addSubmenu($submenu);
break;
case "descendancy":
//-- descendancy
$link = "descendancy.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&pid={$rootid}&show_full={$showFull}";
$submenu = new Menu(i18n::translate('Descendancy Chart'), encode_url($link));
if (!empty($WT_IMAGES["descendant"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["descendant"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_descendant");
$menu->addSubmenu($submenu);
break;
case "ancestry":
//-- ancestry
$link = "ancestry.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&rootid={$rootid}&show_full={$showFull}";
$submenu = new Menu(i18n::translate('Ancestry Chart'), encode_url($link));
if (!empty($WT_IMAGES["ancestry"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["ancestry"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_ancestry");
$menu->addSubmenu($submenu);
break;
case "compact":
//-- compact
$link = "compact.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&rootid=".$rootid;
$submenu = new Menu(i18n::translate('Compact Chart'), encode_url($link));
if (!empty($WT_IMAGES["ancestry"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["ancestry"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_ancestry");
$menu->addSubmenu($submenu);
break;
case "fanchart":
//-- fan chart
$link = "fanchart.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&rootid=".$rootid;
$submenu = new Menu(i18n::translate('Circle Diagram'), encode_url($link));
if (!empty($WT_IMAGES["fanchart"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["fanchart"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_fanchart");
$menu->addSubmenu($submenu);
break;
case "hourglass":
//-- hourglass
$link = "hourglass.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&pid={$rootid}&show_full={$showFull}";
$submenu = new Menu(i18n::translate('Hourglass Chart'), encode_url($link));
if (!empty($WT_IMAGES["hourglass"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["hourglass"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_hourglass");
$menu->addSubmenu($submenu);
break;
case "familybook":
//-- familybook
$link = "familybook.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&pid={$rootid}&show_full={$showFull}";
$submenu = new Menu(i18n::translate('Family Book Chart'), encode_url($link));
if (!empty($WT_IMAGES["fambook"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["fambook"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_fambook");
$menu->addSubmenu($submenu);
break;
case "timeline":
//-- timeline
$link = "timeline.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&pids[]=".$rootid;
$submenu = new Menu(i18n::translate('Timeline Chart'), $link);
if (!empty($WT_IMAGES["timeline"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["timeline"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_timeline");
$menu->addSubmenu($submenu);
if (isset($controller) && !empty($controller->famid)) {
// Build a sortable list of submenu items and then sort it in localized name order
$menuList = array();
$menuList["parentTimeLine"] = i18n::translate('Show couple on timeline chart');
$menuList["childTimeLine"] = i18n::translate('Show children on timeline chart');
$menuList["familyTimeLine"] = i18n::translate('Show family on timeline chart');
asort($menuList);
// Produce the submenus in localized name order
foreach($menuList as $menuType => $menuName) {
switch ($menuType) {
case "parentTimeLine":
// charts / parents_timeline
$submenu = new Menu(i18n::translate('Show couple on timeline chart'), encode_url('timeline.php?pids[0]='.$controller->getHusband().'&pids[1]='.$controller->getWife()));
if (!empty($WT_IMAGES["timeline"]["small"])) {
$submenu->addIcon("{$WT_IMAGE_DIR}/{$WT_IMAGES['timeline']['small']}");
}
$submenu->addClass("submenuitem{$ff}", "submenuitem_hover{$ff}");
$menu->addSubmenu($submenu);
break;
case "childTimeLine":
// charts / children_timeline
$submenu = new Menu(i18n::translate('Show children on timeline chart'), encode_url('timeline.php?'.$controller->getChildrenUrlTimeline()));
if (!empty($WT_IMAGES["timeline"]["small"])) {
$submenu->addIcon("{$WT_IMAGE_DIR}/{$WT_IMAGES['timeline']['small']}");
}
$submenu->addClass("submenuitem{$ff}", "submenuitem_hover{$ff}");
$menu->addSubmenu($submenu);
break;
case "familyTimeLine":
// charts / family_timeline
$submenu = new Menu(i18n::translate('Show family on timeline chart'), encode_url('timeline.php?pids[0]='.$controller->getHusband().'&pids[1]='.$controller->getWife().'&'.$controller->getChildrenUrlTimeline(2)));
if (!empty($WT_IMAGES["timeline"]["small"])) {
$submenu->addIcon("{$WT_IMAGE_DIR}/{$WT_IMAGES['timeline']['small']}");
}
$submenu->addClass("submenuitem{$ff}", "submenuitem_hover{$ff}");
$menu->addSubmenu($submenu);
break;
}
}
}
break;
case "lifespan":
//-- lifespan
$link = "lifespan.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&pids[]={$rootid}&addFamily=1";
$submenu = new Menu(i18n::translate('Lifespan Chart'), encode_url($link));
if (!empty($WT_IMAGES["timeline"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["timeline"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_timeline");
$menu->addSubmenu($submenu);
break;
case "relationship":
if ($rootid) {
// Pages focused on a specific person
$from=array($rootid);
$to=array('', WT_USER_GEDCOM_ID, WT_USER_ROOT_ID);
if (WT_USER_ID) {
foreach (getUserFavorites(WT_USER_NAME) as $favorite) {
// An indi in this gedcom?
if ($favorite['type']=='INDI' && $favorite['file']==WT_GEDCOM) {
$to[]=$favorite['gid'];
}
}
}
} else {
// Regular pages
$from=array(WT_USER_GEDCOM_ID ? WT_USER_GEDCOM_ID : WT_USER_ROOT_ID);
$to=array('');
}
foreach (array_unique($from) as $pid1) {
foreach (array_unique($to) as $pid2) {
if ($pid1!=$pid2 || $pid1=='' || $pid2=='') {
$person=Person::getInstance($pid2);
if ($person instanceof Person) {
$submenu = new Menu(
i18n::translate('Relationship Chart').': '.PrintReady($person->getFullName()),
encode_url("relationship.php?pid1={$pid1}&pid2={$pid2}&pretty=2&followspouse=1&ged=".WT_GEDCOM)
);
} else {
$submenu = new Menu(
i18n::translate('Relationship Chart'),
encode_url("relationship.php?pid1={$pid1}&pid2={$pid2}&pretty=2&followspouse=1&ged=".WT_GEDCOM)
);
}
if (!empty($WT_IMAGES["relationship"]["small"])) {
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["relationship"]["small"]);
}
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_relationship");
$menu->addSubmenu($submenu);
}
}
}
break;
case "statistics":
//-- statistics plot
$submenu = new Menu(i18n::translate('Statistics'), encode_url("statistics.php?ged=".WT_GEDCOM));
if (!empty($WT_IMAGES["statistic"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["statistic"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_statistic");
$menu->addSubmenu($submenu);
break;
case "treenav":
//-- interactive tree
$link = "treenav.php?ged=".WT_GEDCOM;
if ($rootid) $link .= "&rootid=".$rootid;
$submenu = new Menu(i18n::translate('Interactive Tree'), encode_url($link));
if (!empty($WT_IMAGES["gedcom"]["tree"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["gedcom"]["tree"]);
else if (!empty($WT_IMAGES["gedcom"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["gedcom"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_gedcom");
$menu->addSubmenu($submenu);
break;
//added for pedigree_map
case "pedigree_map":
//-- pedigree map
$link = "module.php?ged=".WT_GEDCOM."&mod=googlemap&pgvaction=pedigree_map";
if ($rootid) $link .= "&rootid=".$rootid;
$submenu = new Menu(i18n::translate('Pedigree Map'), encode_url($link));
$submenu->addIcon('modules/googlemap/images/pedigree_map.gif');
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff");
$menu->addSubmenu($submenu);
break;
//end of added for pedigree_map
}
}
return $menu;
}
/**
* get the menu for the lists
* @return Menu the menu item
*/
static function getListsMenu($surname="") {
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES;
global $SHOW_SOURCES, $MULTI_MEDIA, $SEARCH_SPIDER;
global $ALLOW_CHANGE_GEDCOM;
global $controller;
$style = "top";
if ($surname) $style = "sub";
if (isset($controller)) {
if (!$surname) {
if (isset($controller->indi)) {
list($surname)=explode(',', $controller->indi->getSortName());
}
if (isset($controller->rootid)) {
$person = Person::getInstance($controller->rootid);
list($surname)=explode(',', $person->getSortName());
}
}
}
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
if (!empty($SEARCH_SPIDER)) { // Only want the indi list for search engines.
//-- main lists menu item
$link = "indilist.php?ged=".WT_GEDCOM;
if ($style=="sub") {
$link .= "&surname={$surname}";
$menu = new Menu(i18n::translate('Lists'), encode_url($link));
if (!empty($WT_IMAGES["indis"]["small"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["indis"]["small"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_small_indis");
}
else {
$menu = new Menu(i18n::translate('Lists'), encode_url($link), "down");
if (!empty($WT_IMAGES["indis"]["large"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["indis"]["large"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_indis");
}
//-- gedcom list
if ($ALLOW_CHANGE_GEDCOM) {
foreach (get_all_gedcoms() as $ged_id=>$gedcom) {
$submenu = new Menu(i18n::translate('Individuals')." - ".PrintReady(get_gedcom_setting($ged_id, 'title')), encode_url('indilist.php?ged='.$gedcom));
if (!empty($WT_IMAGES["gedcom"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["gedcom"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_gedcom");
$menu->addSubmenu($submenu);
}
}
return $menu;
}
//-- main lists menu item
$link = "indilist.php?ged=".WT_GEDCOM;
if ($style=="sub") {
$link .= "&surname=".$surname;
$menu = new Menu(i18n::translate('Lists'), encode_url($link));
if (!empty($WT_IMAGES["indis"]["small"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["indis"]["small"]);
$menu->addClass("submenuitem$ff", "submenuitem_hover$ff", "submenu$ff", "icon_small_indis");
}
else {
$menu = new Menu(i18n::translate('Lists'), $link, "down");
if (!empty($WT_IMAGES["indis"]["large"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["indis"]["large"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_indis");
}
// Build a sortable list of submenu items and then sort it in localized name order
$menuList = array();
$menuList["individual"] = i18n::translate('Individuals');
if (file_exists(WT_ROOT.'famlist.php')) $menuList["family"] = i18n::translate('Families');
if (file_exists(WT_ROOT.'branches.php')) $menuList["branches"] = i18n::translate('Branches');
if ($style=="top" && file_exists(WT_ROOT.'sourcelist.php') && $SHOW_SOURCES>=WT_USER_ACCESS_LEVEL) $menuList["source"] = i18n::translate('Sources');
if ($style=="top" && file_exists(WT_ROOT.'notelist.php') && $SHOW_SOURCES>=WT_USER_ACCESS_LEVEL) $menuList["note"] = i18n::translate('Shared Notes');
if ($style=="top" && file_exists(WT_ROOT.'repolist.php')) $menuList["repository"] = i18n::translate('Repositories');
if ($style=="top" && file_exists(WT_ROOT.'placelist.php')) $menuList["places"] = i18n::translate('Place Hierarchy');
if ($style=="top" && file_exists(WT_ROOT.'medialist.php') && $MULTI_MEDIA) $menuList["media"] = i18n::translate('MultiMedia');
asort($menuList);
// Produce the submenus in localized name order
foreach($menuList as $menuType => $menuName) {
switch ($menuType) {
case "individual":
//-- indi list sub menu
$link = "indilist.php?ged=".WT_GEDCOM;
if ($surname) $link .= "&surname=".$surname;
$submenu = new Menu(i18n::translate('Individuals'), encode_url($link));
if (!empty($WT_IMAGES["indis"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["indis"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_indis");
$menu->addSubmenu($submenu);
break;
case "family":
//-- famlist sub menu
$link = "famlist.php?ged=".WT_GEDCOM;
if ($surname) $link .= "&surname=".$surname;
$submenu = new Menu(i18n::translate('Families'), $link);
if (!empty($WT_IMAGES["cfamily"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["cfamily"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_cfamily");
$menu->addSubmenu($submenu);
break;
case "branches":
//-- branches sub menu
$link = "branches.php?ged=".WT_GEDCOM;
if ($surname) $link .= "&surn=".$surname;
$submenu = new Menu(i18n::translate('Branches'), $link);
if (!empty($WT_IMAGES["patriarch"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["patriarch"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_patriarch");
$menu->addSubmenu($submenu);
break;
case "source":
//-- source
$submenu = new Menu(i18n::translate('Sources'), encode_url('sourcelist.php?ged='.WT_GEDCOM));
if (!empty($WT_IMAGES["menu_source"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_source"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_source");
$menu->addSubmenu($submenu);
break;
case "note":
//-- shared note
$submenu = new Menu(i18n::translate('Shared Notes'), encode_url('notelist.php?ged='.WT_GEDCOM));
if (!empty($WT_IMAGES["menu_note"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_note"]["small"]);
else if (!empty($WT_IMAGES["notes"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["notes"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_notes");
$menu->addSubmenu($submenu);
break;
case "repository":
//-- repository
$submenu = new Menu(i18n::translate('Repositories'), "repolist.php");
if (!empty($WT_IMAGES["menu_repository"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_repository"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_repository");
$menu->addSubmenu($submenu);
break;
case "places":
//-- places
$submenu = new Menu(i18n::translate('Place Hierarchy'), encode_url('placelist.php?ged='.WT_GEDCOM));
if (!empty($WT_IMAGES["place"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["place"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_place");
$menu->addSubmenu($submenu);
break;
case "media":
//-- medialist
$submenu = new Menu(i18n::translate('MultiMedia'), encode_url('medialist.php?ged='.WT_GEDCOM));
if (!empty($WT_IMAGES["menu_media"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_media"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_media");
$menu->addSubmenu($submenu);
break;
}
}
return $menu;
}
/**
* get the menu for the calendar
* @return Menu the menu item
*/
static function getCalendarMenu() {
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES, $SEARCH_SPIDER;
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
if ((!file_exists(WT_ROOT.'calendar.php')) || (!empty($SEARCH_SPIDER))) {
$menu = new Menu("", "", "");
// $menu->print_menu = null;
return $menu;
}
//-- main calendar menu item
$menu = new Menu(i18n::translate('Anniversary Calendar'), encode_url('calendar.php?ged='.WT_GEDCOM), "down");
if (!empty($WT_IMAGES["calendar"]["large"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["calendar"]["large"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_calendar");
//-- viewday sub menu
$submenu = new Menu(i18n::translate('View Day'), encode_url('calendar.php?ged='.WT_GEDCOM));
if (!empty($WT_IMAGES["calendar"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["calendar"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_calendar");
$menu->addSubmenu($submenu);
//-- viewmonth sub menu
$submenu = new Menu(i18n::translate('View Month'), encode_url("calendar.php?ged=".WT_GEDCOM."&action=calendar"));
if (!empty($WT_IMAGES["calendar"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["calendar"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_calendar");
$menu->addSubmenu($submenu);
//-- viewyear sub menu
$submenu = new Menu(i18n::translate('View Year'), encode_url("calendar.php?ged=".WT_GEDCOM."&action=year"));
if (!empty($WT_IMAGES["calendar"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["calendar"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_calendar");
$menu->addSubmenu($submenu);
return $menu;
}
/**
* get the reports menu
* @return Menu the menu item
*/
static function getReportsMenu($pid="", $famid="") {
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES;
global $SEARCH_SPIDER;
global $controller;
$style = "top";
if ($pid || $famid) $style = "sub";
if (isset($controller)) {
if (!$pid) {
if (isset($controller->pid)) $pid = $controller->pid;
if (isset($controller->rootid)) $pid = $controller->rootid;
}
if (!$famid) {
if (isset($controller->famid)) $famid = $controller->famid;
}
}
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
if ((!file_exists(WT_ROOT.'reportengine.php')) || (!empty($SEARCH_SPIDER))) {
$menu = new Menu("", "", "");
// $menu->print_menu = null;
return $menu;
}
//-- main reports menu item
if ($style=="sub") {
$menu = new Menu(i18n::translate('Reports'), "#");
if (!empty($WT_IMAGES["reports"]["small"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["reports"]["small"]);
$menu->addClass("submenuitem$ff", "submenuitem_hover$ff", "submenu$ff", "icon_small_reports");
}
else {
// top menubar
$menu = new Menu(i18n::translate('Reports'), encode_url('reportengine.php?ged='.WT_GEDCOM), "down");
if (!empty($WT_IMAGES["reports"]["large"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["reports"]["large"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_reports");
}
// Build a list of reports and sort that list into localized title order
$reports = get_report_list();
$menuList = array();
foreach ($reports as $file=>$report) {
if (!empty($report["title"][WT_LOCALE])) $label = $report["title"][WT_LOCALE];
else $label = implode("", $report["title"]);
$menuList[$file] = trim($label);
}
asort($menuList);
// Produce those submenus in localized name order
//print_r($reports);
$username = WT_USER_NAME;
foreach($menuList as $file=>$label) {
$report = $reports[$file];
if (!isset($report["access"])) {
$report["access"] = WT_PRIV_PUBLIC;
}
if ($report["access"]>=WT_USER_ACCESS_LEVEL) {
if (!empty($report["title"][WT_LOCALE])) {
$label = $report["title"][WT_LOCALE];
} else {
$label = implode("", $report["title"]);
}
// indi report
if ($pid) {
$submenu = new Menu($label, encode_url("reportengine.php?ged=".WT_GEDCOM."&action=setup&report={$report['file']}&pid={$pid}"));
}
// family report
elseif ($famid) {
$submenu = new Menu($label, encode_url("reportengine.php?ged=".WT_GEDCOM."&action=setup&report={$report['file']}&famid={$famid}"));
}
// default
else {
$submenu = new Menu($label, encode_url("reportengine.php?ged=".WT_GEDCOM."&action=setup&report={$report['file']}"));
}
if (isset($WT_IMAGES["reports"]["small"]) && isset($WT_IMAGES[$report["icon"]]["small"])) $iconfile=$WT_IMAGE_DIR."/".$WT_IMAGES[$report["icon"]]["small"];
if (isset($iconfile) && file_exists($iconfile)) $submenu->addIcon($iconfile);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_".$report["icon"]);
// indi report
if ($pid && $report["icon"]!="sfamily" && $report["icon"]!="place") {
$menu->addSubmenu($submenu);
}
// family report
elseif ($famid && $report["icon"]=="sfamily") {
$menu->addSubmenu($submenu);
}
// default
elseif (empty($pid) && empty($famid)) {
$menu->addSubmenu($submenu);
}
}
}
return $menu;
}
/**
* get the optional site-specific menu
* @return Menu the menu item
*/
static function getOptionalMenu() {
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES, $SEARCH_SPIDER;
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
if (!file_exists(WT_ROOT.'includes/extras/optional_menu.php') || !empty($SEARCH_SPIDER)) {
$menu = new Menu("", "", "");
// $menu->print_menu = null;
return $menu;
}
require WT_ROOT.'includes/extras/optional_menu.php';
return $menu;
}
/**
* get the print_preview menu
* @return Menu the menu item
*/
static function getPreviewMenu() {
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES, $QUERY_STRING, $SEARCH_SPIDER;
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
if (!empty($SEARCH_SPIDER)) {
$menu = new Menu("", "", "");
// $menu->print_menu = null;
return $menu;
}
//-- main print_preview menu item
$menu = new Menu(i18n::translate('Printer-friendly Version'), WT_SCRIPT_NAME.normalize_query_string($QUERY_STRING."&view=preview"), "down");
if (!empty($WT_IMAGES["printer"]["large"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["printer"]["large"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_printer");
return $menu;
}
/**
* get the search menu
* @return Menu the menu item
*/
static function getSearchMenu() {
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES;
global $SHOW_MULTISITE_SEARCH, $SEARCH_SPIDER;
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
if ((!file_exists(WT_ROOT.'search.php')) || (!empty($SEARCH_SPIDER))) {
$menu = new Menu("", "", "");
// $menu->print_menu = null;
return $menu;
}
//-- main search menu item
$menu = new Menu(i18n::translate('Search'), encode_url('search.php?ged='.WT_GEDCOM), "down");
if (!empty($WT_IMAGES["search"]["large"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["search"]["large"]);
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_search");
//-- search_general sub menu
$submenu = new Menu(i18n::translate('General Search'), encode_url("search.php?ged=".WT_GEDCOM."&action=general"));
if (!empty($WT_IMAGES["search"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["search"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_search");
$menu->addSubmenu($submenu);
//-- search_soundex sub menu
$submenu = new Menu(i18n::translate('Soundex Search'), encode_url("search.php?ged=".WT_GEDCOM."&action=soundex"));
if (!empty($WT_IMAGES["search"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["search"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_search");
$menu->addSubmenu($submenu);
//-- advanced search
$submenu = new Menu(i18n::translate('Advanced Search'), encode_url("search_advanced.php?ged=".WT_GEDCOM));
if (!empty($WT_IMAGES["search"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["search"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_search");
$menu->addSubmenu($submenu);
//-- search_replace sub menu
if (WT_USER_CAN_EDIT) {
$submenu = new Menu(i18n::translate('Search and Replace'), encode_url("search.php?ged=".WT_GEDCOM."&action=replace"));
if (!empty($WT_IMAGES["search"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["search"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_search");
$menu->addSubmenu($submenu);
}
//-- search_multisite sub menu
if ($SHOW_MULTISITE_SEARCH >= WT_USER_ACCESS_LEVEL) {
$sitelist = get_server_list();
if (count($sitelist)>0) {
$submenu = new Menu(i18n::translate('Multi Site Search'), encode_url("search.php?ged=".WT_GEDCOM."&action=multisite"));
if (!empty($WT_IMAGES["search"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["search"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_search");
$menu->addSubmenu($submenu);
}
}
return $menu;
}
/**
* get an array of module menu objects
* @return array
*/
static function getModuleMenus() {
$menus=array();
foreach (WT_Module::getActiveMenus() as $module) {
$menu=$module->getMenu();
if ($menu) {
$menus[] = $menu;
}
}
return $menus;
}
/**
* get the help menu
* @return Menu the menu item
*/
static function getHelpMenu() {
global $TEXT_DIRECTION, $WT_IMAGE_DIR, $WT_IMAGES, $SEARCH_SPIDER;
global $SHOW_CONTEXT_HELP, $QUERY_STRING, $helpindex, $action;
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
if (!empty($SEARCH_SPIDER)) {
$menu = new Menu("", "", "");
// $menu->print_menu = null;
return $menu;
}
//-- main help menu item
$menu = new Menu(i18n::translate('Help'), "#", "down");
if (!empty($WT_IMAGES["help"]["large"]))
$menu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["help"]["large"]);
if (empty($helpindex))
$menu->addOnclick("return helpPopup('".WT_SCRIPT_NAME."');");
else
$menu->addOnclick("return helpPopup('".$helpindex."');");
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_help");
//-- help_for_this_page sub menu
$submenu = new Menu(i18n::translate('Help with this page'), "#");
if (!empty($WT_IMAGES["menu_help"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_help"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_help");
if (empty($helpindex))
$submenu->addOnclick("return helpPopup('".WT_SCRIPT_NAME."');");
else
$submenu->addOnclick("return helpPopup('".$helpindex."');");
$menu->addSubmenu($submenu);
//-- help_contents sub menu
$submenu = new Menu(i18n::translate('Help Contents'), "#");
if (!empty($WT_IMAGES["menu_help"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_help"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_help");
$submenu->addOnclick("return helpPopup('help_contents_help');");
$menu->addSubmenu($submenu);
//-- faq sub menu
if (file_exists(WT_ROOT.'faq.php')) {
$submenu = new Menu(i18n::translate('FAQ List'), "faq.php");
if (!empty($WT_IMAGES["menu_help"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["menu_help"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_help");
$menu->addSubmenu($submenu);
}
//-- add wiki links
$menu->addSeparator();
$submenu = new Menu(i18n::translate('Wiki Main Page'), WT_WEBTREES_WIKI.'/en/index.php?title=Main_Page" target="_blank');
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_wiki");
$menu->addSubmenu($submenu);
$submenu = new Menu(i18n::translate('Wiki User\'s Guide'), WT_WEBTREES_WIKI.'/en/index.php?title=Users_Guide" target="_blank');
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_wiki");
$menu->addSubmenu($submenu);
if (WT_USER_GEDCOM_ADMIN) {
$submenu = new Menu(i18n::translate('Wiki Administrator\'s Guide'), WT_WEBTREES_WIKI.'/en/index.php?title=Administrators_Guide" target="_blank');
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_wiki");
$menu->addSubmenu($submenu);
}
//-- add contact links to help menu
$menu->addSeparator();
$menuitems = contact_menus();
foreach($menuitems as $menuitem) {
$submenu = new Menu($menuitem["label"], $menuitem["link"]);
if (!empty($WT_IMAGES["mygedview"]["small"]))
$submenu->addIcon($WT_IMAGE_DIR."/".$WT_IMAGES["mygedview"]["small"]);
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_contact");
if (!empty($menuitem["onclick"])) $submenu->addOnclick($menuitem["onclick"]);
$menu->addSubmenu($submenu);
}
//-- add show/hide context_help
$menu->addSeparator();
if ($_SESSION["show_context_help"])
$submenu = new Menu(i18n::translate('Hide Contextual Help'), WT_SCRIPT_NAME.normalize_query_string($QUERY_STRING."&show_context_help=no"));
else
$submenu = new Menu(i18n::translate('Show Contextual Help'), WT_SCRIPT_NAME.normalize_query_string($QUERY_STRING."&show_context_help=yes"));
$submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_menu_help");
$menu->addSubmenu($submenu);
return $menu;
}
/**
* get the menu with links change to each theme
* @return Menu the menu item
*/
static function getThemeMenu() {
global $SEARCH_SPIDER, $ALLOW_THEME_DROPDOWN, $ALLOW_USER_THEMES, $THEME_DIR;
$current=get_user_setting(WT_USER_ID, 'theme');
$all_themes=get_theme_names();
if (!array_key_exists($current, $all_themes)) {
$current=$THEME_DIR;
}
if ($ALLOW_THEME_DROPDOWN && $ALLOW_USER_THEMES && !$SEARCH_SPIDER) {
isset($_SERVER["QUERY_STRING"]) == true?$tqstring = "?".$_SERVER["QUERY_STRING"]:$tqstring = "";
$frompage = WT_SCRIPT_NAME.decode_url($tqstring);
if (isset($_REQUEST['mod'])) {
if (!strstr($frompage, "?")) {
if (!strstr($frompage, "%3F")) ;
else $frompage .= "?";
}
if (!strstr($frompage, "&mod") || !strstr($frompage, "?mod")) $frompage .= "&mod=".$_REQUEST['mod'];
}
if (substr($frompage,-1) == "?") $frompage = substr($frompage,0,-1);
if (substr($frompage,-1) == "&") $frompage = substr($frompage,0,-1);
// encode frompage address in other case we lost the all variables on theme change
$frompage = base64_encode($frompage);
$menu=new Menu(i18n::translate('Change Theme'));
$menu->addClass('thememenuitem', 'thememenuitem_hover', 'themesubmenu', "icon_small_theme");
foreach ($all_themes as $themename=>$themedir) {
$submenu=new Menu($themename, encode_url("themechange.php?frompage={$frompage}&mytheme={$themedir}"));
if ($themedir==$current) {
$submenu->addClass('favsubmenuitem_selected', 'favsubmenuitem_hover');
} else {
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
}
$menu->addSubMenu($submenu);
}
return $menu;
} else {
return new Menu('', '');
}
}
/**
* get the menu with links change to each color themes subcolor type
* @return Menu the menu item
*/
static function getColorMenu($COLOR_THEME_LIST) {
isset($_SERVER["QUERY_STRING"]) == true?$tqstring = "?".$_SERVER["QUERY_STRING"]:$tqstring = "";
$frompage = WT_SCRIPT_NAME.decode_url($tqstring);
if (isset($_REQUEST['mod'])) {
if (!strstr($frompage, "?")) {
if (!strstr($frompage, "%3F")) ;
else $frompage .= "?";
}
if (!strstr($frompage, "&mod") || !strstr($frompage, "?mod")) $frompage .= "&mod=".$_REQUEST['mod'];
}
if (substr($frompage,-1) == "?") $frompage = substr($frompage,0,-1);
if (substr($frompage,-1) == "&") $frompage = substr($frompage,0,-1);
// encode frompage address in other case we lost the all variables on theme change
$frompage = base64_encode($frompage);
$menu=new Menu(i18n::translate('Color Palette'));
$menu->addClass('thememenuitem', 'thememenuitem_hover', 'themesubmenu', "icon_small_theme");
foreach ($COLOR_THEME_LIST as $colorChoice=>$colorName) {
//$submenu=new Menu($colorName, encode_url("colorchange.php?frompage={$frompage}&mycolor={$colorChoice}"));
$submenu=new Menu($colorName, encode_url(WT_SCRIPT_NAME.'?'.$_SERVER['QUERY_STRING']."&themecolor={$colorChoice}"));
$menu->addSubMenu($submenu);
}
return $menu;
}
/**
* get the menu with links to change language
* @return Menu the menu item
*/
static function getLanguageMenu() {
global $QUERY_STRING, $WT_IMAGE_DIR, $WT_IMAGES, $TEXT_DIRECTION;
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
$menu=new Menu(i18n::translate('Change Language'), '#', 'down');
$menu->addClass("langmenuitem$ff", "langmenuitem_hover$ff", "submenu$ff");
foreach (i18n::installed_languages() as $lang=>$name) {
$submenu=new Menu($name, WT_SCRIPT_NAME.normalize_query_string($QUERY_STRING.'&lang='.$lang));
if ($lang==WT_LOCALE) {
$submenu->addClass('favsubmenuitem_selected', 'favsubmenuitem_hover');
} else {
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
}
$menu->addSubMenu($submenu);
}
if (count($menu->submenus)>1) {
return $menu;
} else {
return new Menu('', '');
}
}
/**
* get the menu with links to the user/gedcom favorites
* @return Menu the menu item
*/
static function getFavoritesMenu() {
global $REQUIRE_AUTHENTICATION, $GEDCOM, $QUERY_STRING, $WT_IMAGE_DIR, $WT_IMAGES, $TEXT_DIRECTION;
global $SEARCH_SPIDER;
global $controller; // Pages with a controller can be added to the favorites
if ($SEARCH_SPIDER) {
return false; // show no favorites, because they taint every page that is indexed.
}
if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff="";
$menu=new Menu(i18n::translate('Favorites'), '#', 'down');
if (!empty($WT_IMAGES['gedcom']['large'])) {
$menu->addIcon($WT_IMAGE_DIR.'/'.$WT_IMAGES['gedcom']['large']);
}
$menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_gedcom");
$gedfavs=getUserFavorites(WT_GEDCOM);
if (WT_USER_ID) {
$userfavs=getUserFavorites(WT_USER_NAME);
// User favorites
if ($userfavs || WT_USER_ID) {
$submenu=new Menu(''.i18n::translate('My Favorites').'');
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
$menu->addSubMenu($submenu);
while (WT_USER_ID && isset($controller)) {
// Get the right $gid from each supported controller type
switch (get_class($controller)) {
case 'IndividualController':
$gid = $controller->pid;
break;
case 'FamilyController':
$gid = $controller->famid;
break;
case 'MediaController':
$gid = $controller->mid;
break;
case 'SourceController':
$gid = $controller->sid;
break;
case 'RepositoryController':
$gid = $controller->rid;
break;
default:
break 2;
}
$submenu=new Menu(''.i18n::translate('Add to My Favorites').'', WT_SCRIPT_NAME.normalize_query_string($QUERY_STRING.'&action=addfav&gid='.$gid));
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
$menu->addSubMenu($submenu);
break;
}
foreach ($userfavs as $fav) {
$GEDCOM=$fav['file'];
switch($fav['type']) {
case 'URL':
$submenu=new Menu(PrintReady($fav['title']), $fav['url']);
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
$menu->addSubMenu($submenu);
break;
case 'INDI':
case 'FAM':
case 'SOUR':
case 'OBJE':
if (displayDetailsById($fav['gid'], $fav['type'])) {
$obj=GedcomRecord::getInstance($fav['gid']);
if ($obj) {
$submenu=new Menu(PrintReady($obj->getFullName()), encode_url($obj->getLinkUrl()));
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
$menu->addSubMenu($submenu);
}
}
break;
}
$GEDCOM=WT_GEDCOM;
}
if ($gedfavs) {
$menu->addSeparator();
}
}
}
// Gedcom favorites
if ($gedfavs) {
$submenu=new Menu(''.i18n::translate('This GEDCOM\'s Favorites').'');
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
$menu->addSubMenu($submenu);
foreach ($gedfavs as $fav) {
$GEDCOM=$fav['file'];
switch($fav['type']) {
case 'URL':
$submenu=new Menu(PrintReady($fav['title']), $fav['url']);
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
$menu->addSubMenu($submenu);
break;
case 'INDI':
case 'FAM':
case 'SOUR':
case 'OBJE':
if (displayDetailsById($fav['gid'], $fav['type'])) {
$obj=GedcomRecord::getInstance($fav['gid']);
if ($obj) {
$submenu=new Menu(PrintReady($obj->getFullName()), encode_url($obj->getLinkUrl()));
$submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
$menu->addSubMenu($submenu);
}
}
break;
}
$GEDCOM=WT_GEDCOM;
}
}
return $menu;
}
}
?>