addIcon('home'); $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", 'icon_large_gedcom'); //-- gedcom list $gedcom_titles=get_gedcom_titles(); if (count($gedcom_titles)>1 && get_site_setting('ALLOW_CHANGE_GEDCOM')) { foreach ($gedcom_titles as $gedcom_title) { $submenu = new Menu(PrintReady($gedcom_title->gedcom_title, true), 'index.php?ctype=gedcom&ged='.$gedcom_title->gedcom_name); if (!empty($WT_IMAGES['gedcom'])) { $submenu->addIcon('gedcom'); } $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 mypage menu * @return Menu the menu item */ public static function getMyPageMenu() { global $MEDIA_DIRECTORY, $MULTI_MEDIA; global $TEXT_DIRECTION, $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 null; } //-- main menu $menu = new Menu(i18n::translate('My Page'), "index.php?ctype=user", "down"); $menu->addIcon('mypage'); $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_mypage"); //-- mypage submenu $submenu = new Menu(i18n::translate('My Page'), "index.php?ctype=user"); $submenu->addIcon('mypage'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_mypage"); $menu->addSubmenu($submenu); //-- editaccount submenu if (get_user_setting(WT_USER_ID, 'editaccount')) { $submenu = new Menu(i18n::translate('My account'), "edituser.php"); $submenu->addIcon('mypage'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_mypage"); $menu->addSubmenu($submenu); } if (WT_USER_GEDCOM_ID) { //-- my_pedigree submenu $submenu = new Menu(i18n::translate('My Pedigree'), "pedigree.php?rootid=".WT_USER_GEDCOM_ID."&show_full={$showFull}&talloffset={$showLayout}"); if (!empty($WT_IMAGES["pedigree"])) $submenu->addIcon('pedigree'); $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); $submenu->addIcon('indis'); $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('Administration'), "admin.php"); $submenu->addIcon('admin'); $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"); $submenu->addIcon('admin'); $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"); $submenu->addIcon('admin'); $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"); $submenu->addIcon('menu_media'); $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"); $submenu->addIcon('menu_media'); $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 */ public static function getChartsMenu($rootid='') { global $TEXT_DIRECTION, $WT_IMAGES, $SEARCH_SPIDER; global $PEDIGREE_FULL_DETAILS, $PEDIGREE_LAYOUT; global $controller; 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)) { return null; } $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}"; $menu = new Menu(i18n::translate('Charts'), $link, "down"); $menu->addIcon('charts'); $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'), $link); $submenu->addIcon('pedigree'); $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'), $link); $submenu->addIcon('descendant'); $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'), $link); $submenu->addIcon('ancestry'); $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'), $link); $submenu->addIcon('ancestry'); $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'), $link); $submenu->addIcon('fanchart'); $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'), $link); $submenu->addIcon('hourglass'); $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'), $link); $submenu->addIcon('fambook'); $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); $submenu->addIcon('timeline'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_timeline"); $menu->addSubmenu($submenu); if (isset($controller) && !empty($controller->family)) { // 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'), 'timeline.php?pids[0]='.$controller->getHusband().'&pids[1]='.$controller->getWife()); if (!empty($WT_IMAGES["timeline"])) { $submenu->addIcon('timeline'); } $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'), 'timeline.php?'.$controller->getChildrenUrlTimeline()); if (!empty($WT_IMAGES["timeline"])) { $submenu->addIcon('timeline'); } $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'), 'timeline.php?pids[0]='.$controller->getHusband().'&pids[1]='.$controller->getWife().'&'.$controller->getChildrenUrlTimeline(2)); if (!empty($WT_IMAGES["timeline"])) { $submenu->addIcon('timeline'); } $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'), $link); $submenu->addIcon('timeline'); $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 (array_key_exists('user_favorites', WT_Module::getActiveModules())) { foreach (user_favorites_WT_Module::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=='') { if (isset($controller) && !empty($controller->indi)) { $person=Person::getInstance($pid2); if ($person instanceof Person) { $submenu = new Menu( i18n::translate('Relationship Chart').': '.PrintReady($person->getFullName()), "relationship.php?pid1={$pid2}&pid2={$pid1}&pretty=2&followspouse=1&ged=".WT_GEDCOM ); } else { $submenu = new Menu( i18n::translate('Relationship Chart'), "relationship.php?pid1={$pid1}&pretty=2&followspouse=1&ged=".WT_GEDCOM ); } $submenu->addIcon('relationship'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_relationship"); $menu->addSubmenu($submenu); } else { $submenu = new Menu( i18n::translate('Relationship Chart'), "relationship.php?pid1={$pid1}&pretty=2&followspouse=1&ged=".WT_GEDCOM ); $submenu->addIcon('relationship'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_relationship"); $menu->addSubmenu($submenu); break; } } } } break; case "statistics": //-- statistics plot $submenu = new Menu(i18n::translate('Statistics'), "statistics.php?ged=".WT_GEDCOM); $submenu->addIcon('statistic'); $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'), $link); $submenu->addIcon('tree'); $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&mod_action=pedigree_map"; if ($rootid) $link .= "&rootid=".$rootid; $submenu = new Menu(i18n::translate('Pedigree Map'), $link); global $WT_IMAGES; $WT_IMAGES['pedigree_map']='modules/googlemap/images/pedigree_map.gif'; $submenu->addIcon('pedigree_map'); $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 */ public static function getListsMenu($surname="") { global $TEXT_DIRECTION, $WT_IMAGES, $MULTI_MEDIA, $SEARCH_SPIDER, $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'), $link); $menu->addIcon('lists'); $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_small_indis"); } else { $menu = new Menu(i18n::translate('Lists'), $link, "down"); $menu->addIcon('lists'); $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_indis"); } //-- gedcom list if (get_site_setting('ALLOW_CHANGE_GEDCOM')) { foreach (get_all_gedcoms() as $ged_id=>$gedcom) { $submenu = new Menu(i18n::translate('Individuals')." - ".PrintReady(get_gedcom_setting($ged_id, 'title')), 'indilist.php?ged='.$gedcom); $submenu->addIcon('gedcom'); $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'), $link); $menu->addIcon('lists'); $menu->addClass("submenuitem$ff", "submenuitem_hover$ff", "submenu$ff", "icon_small_indis"); } else { $menu = new Menu(i18n::translate('Lists'), $link, "down"); $menu->addIcon('lists'); $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')) $menuList["source"] = i18n::translate('Sources'); if ($style=="top" && file_exists(WT_ROOT.'notelist.php')) $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'), $link); $submenu->addIcon('indis'); $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); $submenu->addIcon('cfamily'); $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); $submenu->addIcon('patriarch'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_patriarch"); $menu->addSubmenu($submenu); break; case "source": //-- source $submenu = new Menu(i18n::translate('Sources'), 'sourcelist.php?ged='.WT_GEDCOM); $submenu->addIcon('menu_source'); $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'), 'notelist.php?ged='.WT_GEDCOM); $submenu->addIcon('menu_note'); $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"); $submenu->addIcon('menu_repository'); $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'), 'placelist.php?ged='.WT_GEDCOM); $submenu->addIcon('place'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_place"); $menu->addSubmenu($submenu); break; case "media": //-- medialist $submenu = new Menu(i18n::translate('Multimedia'), 'medialist.php?ged='.WT_GEDCOM); $submenu->addIcon('menu_media'); $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 */ public static function getCalendarMenu() { global $TEXT_DIRECTION, $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("", "", ""); return $menu; } //-- main calendar menu item $menu = new Menu(i18n::translate('Calendar'), 'calendar.php?ged='.WT_GEDCOM, "down"); $menu->addIcon('calendar'); $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_calendar"); //-- viewday sub menu $submenu = new Menu(i18n::translate('View Day'), 'calendar.php?ged='.WT_GEDCOM); $submenu->addIcon('calendar'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_calendar"); $menu->addSubmenu($submenu); //-- viewmonth sub menu $submenu = new Menu(i18n::translate('View Month'), "calendar.php?ged=".WT_GEDCOM."&action=calendar"); $submenu->addIcon('calendar'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_calendar"); $menu->addSubmenu($submenu); //-- viewyear sub menu $submenu = new Menu(i18n::translate('View Year'), "calendar.php?ged=".WT_GEDCOM."&action=year"); $submenu->addIcon('calendar'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_calendar"); $menu->addSubmenu($submenu); return $menu; } /** * get the reports menu * @return Menu the menu item */ public static function getReportsMenu($pid="", $famid="") { global $TEXT_DIRECTION, $WT_IMAGES, $SEARCH_SPIDER, $controller; $active_reports=WT_Module::getActiveReports(); if ($SEARCH_SPIDER || !$active_reports) { return null; } if ($TEXT_DIRECTION=="rtl") { $ff="_rtl"; } else { $ff=""; } $menu = new Menu(i18n::translate('Reports'), 'reportengine.php?ged='.WT_GEDCOM, "down"); $menu->addIcon('reports'); $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_reports"); foreach ($active_reports as $report) { foreach ($report->getReportMenus() as $submenu) { $menu->addSubmenu($submenu); } } return $menu; } /** * get the search menu * @return Menu the menu item */ public static function getSearchMenu() { global $TEXT_DIRECTION, $WT_IMAGES, $SHOW_MULTISITE_SEARCH, $SEARCH_SPIDER; if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff=""; if ((!file_exists(WT_ROOT.'search.php')) || (!empty($SEARCH_SPIDER))) { return null; } //-- main search menu item $menu = new Menu(i18n::translate('Search'), 'search.php?ged='.WT_GEDCOM, "down"); $menu->addIcon('search'); $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_search"); //-- search_general sub menu $submenu = new Menu(i18n::translate('General Search'), "search.php?ged=".WT_GEDCOM."&action=general"); $submenu->addIcon('search'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_search"); $menu->addSubmenu($submenu); //-- search_soundex sub menu $submenu = new Menu(i18n::translate('Soundex Search'), "search.php?ged=".WT_GEDCOM."&action=soundex"); $submenu->addIcon('search'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_search"); $menu->addSubmenu($submenu); //-- advanced search $submenu = new Menu(i18n::translate('Advanced search'), "search_advanced.php?ged=".WT_GEDCOM); $submenu->addIcon('search'); $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'), "search.php?ged=".WT_GEDCOM."&action=replace"); $submenu->addIcon('search'); $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'), "search.php?ged=".WT_GEDCOM."&action=multisite"); $submenu->addIcon('search'); $submenu->addClass("submenuitem$ff", "submenuitem_hover$ff", "", "icon_small_search"); $menu->addSubmenu($submenu); } } return $menu; } /** * get an array of module menu objects * @return array */ public 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 */ public static function getHelpMenu() { global $TEXT_DIRECTION, $WT_IMAGES, $SEARCH_SPIDER, $QUERY_STRING, $helpindex, $action; if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff=""; if (!empty($SEARCH_SPIDER)) { return null; } //-- main help menu item $menu = new Menu(i18n::translate('Help'), "#", "down"); $menu->addIcon('menu_help'); 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'), "#"); $submenu->addIcon('help'); $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'), "#"); $submenu->addIcon('help'); $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 (array_key_exists('faq', WT_Module::getActiveModules()) && WT_DB::prepare("SELECT COUNT(*) FROM `##block` WHERE module_name='faq'")->fetchOne()) { $submenu = new Menu(i18n::translate('FAQ'), "module.php?mod=faq&mod_action=show"); $submenu->addIcon('help'); $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.'" target="_blank'); $submenu->addIcon('wiki'); $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"]); $submenu->addIcon('mypage'); $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->addIcon('help'); $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 */ public static function getThemeMenu() { global $SEARCH_SPIDER, $ALLOW_THEME_DROPDOWN; if ($ALLOW_THEME_DROPDOWN && !$SEARCH_SPIDER && get_site_setting('ALLOW_USER_THEMES')) { $url=WT_SCRIPT_NAME.'?'.get_query_string(); $menu=new Menu(i18n::translate('Theme')); $menu->addClass('thememenuitem', 'thememenuitem_hover', 'themesubmenu', "icon_small_theme"); foreach (get_theme_names() as $themename=>$themedir) { $submenu=new Menu($themename, $url.'&theme='.rawurlencode($themedir)); if ($themedir==WT_THEME_DIR) { $submenu->addClass('favsubmenuitem_selected', 'favsubmenuitem_hover'); } else { $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); } $menu->addSubMenu($submenu); } return $menu; } else { return null; } } /** * get the menu with links change to each color themes subcolor type * @return Menu the menu item */ public static function getColorMenu($COLOR_THEME_LIST) { $url=WT_SCRIPT_NAME.'?'.get_query_string(); $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, $url.'&themecolor='.rawurlencode($colorChoice)); $menu->addSubMenu($submenu); } return $menu; } /** * get the menu with links to change language * @return Menu the menu item */ public static function getLanguageMenu() { global $QUERY_STRING, $WT_IMAGES, $TEXT_DIRECTION; if ($TEXT_DIRECTION=="rtl") $ff="_rtl"; else $ff=""; $menu=new Menu(i18n::translate('Language'), '#', 'down'); $menu->addClass("langmenuitem$ff", "langmenuitem_hover$ff", "submenu$ff", "icon_language"); 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 null; } } /** * get the menu with links to the user/gedcom favorites * @return Menu the menu item */ public static function getFavoritesMenu() { global $REQUIRE_AUTHENTICATION, $GEDCOM, $QUERY_STRING, $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'); $menu->addIcon('gedcom'); $menu->addClass("menuitem$ff", "menuitem_hover$ff", "submenu$ff", "icon_large_gedcom"); if (array_key_exists('gedcom_favorites', WT_Module::getActiveModules())) { $gedfavs=gedcom_favorites_WT_Module::getUserFavorites(WT_GEDCOM); } else { $gedfavs=array(); } if (array_key_exists('user_favorites', WT_Module::getActiveModules())) { $userfavs=user_favorites_WT_Module::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': $obj=GedcomRecord::getInstance($fav['gid']); if ($obj && $obj->canDisplayName()) { $submenu=new Menu(PrintReady($obj->getFullName()), $obj->getHtmlUrl()); $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': $obj=GedcomRecord::getInstance($fav['gid']); if ($obj && $obj->canDisplayName()) { $submenu=new Menu(PrintReady($obj->getFullName()), $obj->getHtmlUrl()); $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); $menu->addSubMenu($submenu); } break; } $GEDCOM=WT_GEDCOM; } } return $menu; } }