summaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
authorfisharebest <fisharebest@gmail.com>2011-06-19 16:16:25 +0000
committerfisharebest <fisharebest@gmail.com>2011-06-19 16:16:25 +0000
commit6aeae46b79ff7059e2abb6ddcf5f3c0156c43bd2 (patch)
tree097ede904a0f51b93e657e9b9b13ee761f4982cb /library
parent4f074f863f4feee9c2e24c89ff3c4e3c567cf104 (diff)
downloadwebtrees-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.php86
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().'&amp;action=addfav&amp;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().'&amp;action=addfav&amp;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().'&amp;action=addfav&amp;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().'&amp;action=addfav&amp;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().'&amp;action=addfav&amp;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().'&amp;action=addfav&amp;gid='.$controller->note->getXref());
+ $submenu->addClass('favsubmenuitem', 'favsubmenuitem_hover');
+ $menu->addSubMenu($submenu);
+ }
+
+ return $menu;
}
}