diff options
Diffstat (limited to 'mod/bookmarks/start.php')
| -rw-r--r-- | mod/bookmarks/start.php | 113 |
1 files changed, 60 insertions, 53 deletions
diff --git a/mod/bookmarks/start.php b/mod/bookmarks/start.php index b4a4ef46b..caea43587 100644 --- a/mod/bookmarks/start.php +++ b/mod/bookmarks/start.php @@ -11,7 +11,6 @@ elgg_register_event_handler('init', 'system', 'bookmarks_init'); * Bookmark init */ function bookmarks_init() { - global $CONFIG; $root = dirname(__FILE__); elgg_register_library('elgg:bookmarks', "$root/lib/bookmarks.php"); @@ -31,20 +30,21 @@ function bookmarks_init() { elgg_register_plugin_hook_handler('register', 'menu:page', 'bookmarks_page_menu'); elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'bookmarks_owner_block_menu'); - elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'bookmarks_user_hover_menu'); elgg_register_page_handler('bookmarks', 'bookmarks_page_handler'); elgg_extend_view('css/elgg', 'bookmarks/css'); elgg_extend_view('js/elgg', 'bookmarks/js'); - + + elgg_register_widget_type('bookmarks', elgg_echo('bookmarks'), elgg_echo('bookmarks:widget:description')); + if (elgg_is_logged_in()) { $user_guid = elgg_get_logged_in_user_guid(); $address = urlencode(current_page_url()); elgg_register_menu_item('extras', array( 'name' => 'bookmark', - 'text' => elgg_view_icon('bookmark'), + 'text' => elgg_view_icon('push-pin-alt'), 'href' => "bookmarks/add/$user_guid?address=$address", 'title' => elgg_echo('bookmarks:this'), 'rel' => 'nofollow', @@ -56,6 +56,9 @@ function bookmarks_init() { // Listen to notification events and supply a more useful message elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'bookmarks_notify_message'); + // Register bookmarks view for ecml parsing + elgg_register_plugin_hook_handler('get_views', 'ecml', 'bookmarks_ecml_views_hook'); + // Register a URL handler for bookmarks elgg_register_entity_url_handler('object', 'bookmarks', 'bookmark_url'); @@ -77,18 +80,23 @@ function bookmarks_init() { * View bookmark: bookmarks/view/<guid>/<title> * New bookmark: bookmarks/add/<guid> (container: user, group, parent) * Edit bookmark: bookmarks/edit/<guid> - * Group bookmarks: bookmarks/group/<guid>/owner + * Group bookmarks: bookmarks/group/<guid>/all * Bookmarklet: bookmarks/bookmarklet/<guid> (user) * * Title is ignored * * @param array $page + * @return bool */ function bookmarks_page_handler($page) { + elgg_load_library('elgg:bookmarks'); + if (!isset($page[0])) { + $page[0] = 'all'; + } + elgg_push_breadcrumb(elgg_echo('bookmarks'), 'bookmarks/all'); - elgg_push_context('bookmarks'); // old group usernames if (substr_count($page[0], 'group:')) { @@ -120,11 +128,14 @@ function bookmarks_page_handler($page) { include "$pages/friends.php"; break; - case "read": case "view": set_input('guid', $page[1]); include "$pages/view.php"; break; + case 'read': // Elgg 1.7 compatibility + register_error(elgg_echo("changebookmark")); + forward("bookmarks/view/{$page[1]}"); + break; case "add": gatekeeper(); @@ -152,7 +163,6 @@ function bookmarks_page_handler($page) { } elgg_pop_context(); - return true; } @@ -209,6 +219,11 @@ function bookmark_url($entity) { /** * Add a menu item to an ownerblock + * + * @param string $hook + * @param string $type + * @param array $return + * @param array $params */ function bookmarks_owner_block_menu($hook, $type, $return, $params) { if (elgg_instanceof($params['entity'], 'user')) { @@ -217,7 +232,7 @@ function bookmarks_owner_block_menu($hook, $type, $return, $params) { $return[] = $item; } else { if ($params['entity']->bookmarks_enable != 'no') { - $url = "bookmarks/group/{$params['entity']->guid}/owner"; + $url = "bookmarks/group/{$params['entity']->guid}/all"; $item = new ElggMenuItem('bookmarks', elgg_echo('bookmarks:group'), $url); $return[] = $item; } @@ -227,12 +242,12 @@ function bookmarks_owner_block_menu($hook, $type, $return, $params) { } /** - * Returns a more meaningful message + * Returns the body of a notification message * - * @param unknown_type $hook - * @param unknown_type $entity_type - * @param unknown_type $returnvalue - * @param unknown_type $params + * @param string $hook + * @param string $entity_type + * @param string $returnvalue + * @param array $params */ function bookmarks_notify_message($hook, $entity_type, $returnvalue, $params) { $entity = $params['entity']; @@ -241,50 +256,26 @@ function bookmarks_notify_message($hook, $entity_type, $returnvalue, $params) { if (($entity instanceof ElggEntity) && ($entity->getSubtype() == 'bookmarks')) { $descr = $entity->description; $title = $entity->title; - global $CONFIG; - $url = elgg_get_site_url() . "view/" . $entity->guid; - if ($method == 'sms') { - $owner = $entity->getOwnerEntity(); - return $owner->name . ' ' . elgg_echo("bookmarks:via") . ': ' . $url . ' (' . $title . ')'; - } - if ($method == 'email') { - $owner = $entity->getOwnerEntity(); - return $owner->name . ' ' . elgg_echo("bookmarks:via") . ': ' . $title . "\n\n" . $descr . "\n\n" . $entity->getURL(); - } - if ($method == 'web') { - $owner = $entity->getOwnerEntity(); - return $owner->name . ' ' . elgg_echo("bookmarks:via") . ': ' . $title . "\n\n" . $descr . "\n\n" . $entity->getURL(); - } - + $owner = $entity->getOwnerEntity(); + + return elgg_echo('bookmarks:notification', array( + $owner->name, + $title, + $entity->address, + $descr, + $entity->getURL() + )); } return null; } /** - * Add a user hover menu. - * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $return - * @param unknown_type $params - */ -function bookmarks_user_hover_menu($hook, $type, $return, $params) { - $user = $params['entity']; - - $title = elgg_echo('bookmarks'); - $url = "bookmarks/owner/$user->username"; - $return[] = new ElggMenuItem('bookmarks', $title, $url); - - return $return; -} - -/** * Add a page menu menu. * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $return - * @param unknown_type $params + * @param string $hook + * @param string $type + * @param array $return + * @param array $params */ function bookmarks_page_menu($hook, $type, $return, $params) { if (elgg_is_logged_in()) { @@ -294,8 +285,11 @@ function bookmarks_page_menu($hook, $type, $return, $params) { if (!$page_owner) { $page_owner = elgg_get_logged_in_user_entity(); } - + if ($page_owner instanceof ElggGroup) { + if (!$page_owner->isMember()) { + return $return; + } $title = elgg_echo('bookmarks:bookmarklet:group'); } else { $title = elgg_echo('bookmarks:bookmarklet'); @@ -306,4 +300,17 @@ function bookmarks_page_menu($hook, $type, $return, $params) { } return $return; -}
\ No newline at end of file +} + +/** + * Return bookmarks views to parse for ecml + * + * @param string $hook + * @param string $type + * @param array $return + * @param array $params + */ +function bookmarks_ecml_views_hook($hook, $type, $return, $params) { + $return['object/bookmarks'] = elgg_echo('item:object:bookmarks'); + return $return; +} |
