aboutsummaryrefslogtreecommitdiff
path: root/mod/bookmarks/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bookmarks/start.php')
-rw-r--r--mod/bookmarks/start.php113
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;
+}