diff options
| author | fisharebest <fisharebest@gmail.com> | 2011-06-19 16:16:25 +0000 |
|---|---|---|
| committer | fisharebest <fisharebest@gmail.com> | 2011-06-19 16:16:25 +0000 |
| commit | 6aeae46b79ff7059e2abb6ddcf5f3c0156c43bd2 (patch) | |
| tree | 097ede904a0f51b93e657e9b9b13ee761f4982cb /library | |
| parent | 4f074f863f4feee9c2e24c89ff3c4e3c567cf104 (diff) | |
| download | webtrees-6aeae46b79ff7059e2abb6ddcf5f3c0156c43bd2.tar.gz webtrees-6aeae46b79ff7059e2abb6ddcf5f3c0156c43bd2.tar.bz2 webtrees-6aeae46b79ff7059e2abb6ddcf5f3c0156c43bd2.zip | |
Favorites list is changed back to being a combination of user and family-tree lists.
Diffstat (limited to 'library')
| -rw-r--r-- | library/WT/MenuBar.php | 86 |
1 files changed, 59 insertions, 27 deletions
diff --git a/library/WT/MenuBar.php b/library/WT/MenuBar.php index 9b3eec8ed9..4d84f18588 100644 --- a/library/WT/MenuBar.php +++ b/library/WT/MenuBar.php @@ -710,7 +710,17 @@ class WT_MenuBar { } public static function getFavoritesMenu() { - global $REQUIRE_AUTHENTICATION; + global $REQUIRE_AUTHENTICATION, $controller; + + $show_user_favs=WT_USER_ID && array_key_exists('user_favorites', WT_Module::getActiveModules()); + $show_gedc_favs=!$REQUIRE_AUTHENTICATION && array_key_exists('gedcom_favorites', WT_Module::getActiveModules()); + + if (!$show_user_favs && !$show_gedc_favs) { + return null; + } + + $menu=new WT_Menu(WT_I18N::translate('Favorites'), '#', 'menu-favorites'); + $menu->addClass('favmenuitem', 'favmenuitem_hover', 'favsubmenu'); if (WT_USER_ID && array_key_exists('user_favorites', WT_Module::getActiveModules())) { $favorites=user_favorites_WT_Module::getUserFavorites(WT_USER_NAME); @@ -718,37 +728,59 @@ class WT_MenuBar { $favorites=array(); } - if (!$favorites && !$REQUIRE_AUTHENTICATION && array_key_exists('gedcom_favorites', WT_Module::getActiveModules())) { - $favorites=gedcom_favorites_WT_Module::getUserFavorites(WT_GEDCOM); - } - - if ($favorites) { - $menu=new WT_Menu(WT_I18N::translate('Favorites'), '#', 'menu-favorites'); - $menu->addClass('favmenuitem', 'favmenuitem_hover', 'favsubmenu'); + $favorites=array_merge( + gedcom_favorites_WT_Module::getUserFavorites(WT_GEDCOM), + user_favorites_WT_Module::getUserFavorites(WT_USER_NAME), + ); + // Sort these alphabetically? - foreach ($favorites as $favorite) { - switch($favorite['type']) { - case 'URL': - $submenu=new WT_Menu($favorite['title'], $favorite['url']); + foreach ($favorites as $favorite) { + switch($favorite['type']) { + case 'URL': + $submenu=new WT_Menu($favorite['title'], $favorite['url']); + $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); + $menu->addSubMenu($submenu); + break; + case 'INDI': + case 'FAM': + case 'SOUR': + case 'OBJE': + $obj=WT_GedcomRecord::getInstance($favorite['gid']); + if ($obj && $obj->canDisplayName()) { + $submenu=new WT_Menu($obj->getFullName(), $obj->getHtmlUrl()); $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); $menu->addSubMenu($submenu); - break; - case 'INDI': - case 'FAM': - case 'SOUR': - case 'OBJE': - $obj=WT_GedcomRecord::getInstance($favorite['gid']); - if ($obj && $obj->canDisplayName()) { - $submenu=new WT_Menu($obj->getFullName(), $obj->getHtmlUrl()); - $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); - $menu->addSubMenu($submenu); - } - break; } + break; } - return $menu; - } else { - return null; } + + if ($controller instanceof WT_Controller_Individual && $controller->indi) { + $submenu=new WT_Menu('Add to favorites', $controller->indi->getHtmlUrl().'&action=addfav&gid='.$controller->indi->getXref()); + $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); + $menu->addSubMenu($submenu); + } else if ($controller instanceof WT_Controller_Family && $controller->family) { + $submenu=new WT_Menu('Add to favorites', $controller->family->getHtmlUrl().'&action=addfav&gid='.$controller->family->getXref()); + $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); + $menu->addSubMenu($submenu); + } else if ($controller instanceof WT_Controller_Source && $controller->source) { + $submenu=new WT_Menu('Add to favorites', $controller->source->getHtmlUrl().'&action=addfav&gid='.$controller->source->getXref()); + $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); + $menu->addSubMenu($submenu); + } else if ($controller instanceof WT_Controller_Repository && $controller->repository) { + $submenu=new WT_Menu('Add to favorites', $controller->repository->getHtmlUrl().'&action=addfav&gid='.$controller->repository->getXref()); + $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); + $menu->addSubMenu($submenu); + } else if ($controller instanceof WT_Controller_Media && $controller->mediaobject) { + $submenu=new WT_Menu('Add to favorites', $controller->mediaobject->getHtmlUrl().'&action=addfav&gid='.$controller->mediaobject->getXref()); + $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); + $menu->addSubMenu($submenu); + } else if ($controller instanceof WT_ControllerNote && $controller->note) { + $submenu=new WT_Menu('Add to favorites', $controller->note->getHtmlUrl().'&action=addfav&gid='.$controller->note->getXref()); + $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover'); + $menu->addSubMenu($submenu); + } + + return $menu; } } |
