aboutsummaryrefslogtreecommitdiff
path: root/mod/bookmarks
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bookmarks')
-rw-r--r--mod/bookmarks/actions/bookmarks/delete.php4
-rw-r--r--mod/bookmarks/actions/bookmarks/save.php25
-rw-r--r--mod/bookmarks/languages/en.php39
-rw-r--r--mod/bookmarks/lib/bookmarks.php11
-rw-r--r--mod/bookmarks/manifest.xml10
-rw-r--r--mod/bookmarks/pages/bookmarks/add.php (renamed from mod/bookmarks/pages/add.php)1
-rw-r--r--mod/bookmarks/pages/bookmarks/all.php (renamed from mod/bookmarks/pages/all.php)17
-rw-r--r--mod/bookmarks/pages/bookmarks/bookmarklet.php (renamed from mod/bookmarks/pages/bookmarklet.php)0
-rw-r--r--mod/bookmarks/pages/bookmarks/edit.php (renamed from mod/bookmarks/pages/edit.php)1
-rw-r--r--mod/bookmarks/pages/bookmarks/friends.php (renamed from mod/bookmarks/pages/friends.php)13
-rw-r--r--mod/bookmarks/pages/bookmarks/owner.php (renamed from mod/bookmarks/pages/owner.php)11
-rw-r--r--mod/bookmarks/pages/bookmarks/view.php (renamed from mod/bookmarks/pages/view.php)12
-rw-r--r--mod/bookmarks/start.php159
-rw-r--r--mod/bookmarks/views/default/bookmarks/bookmarklet.php11
-rw-r--r--mod/bookmarks/views/default/bookmarks/group_module.php17
-rw-r--r--mod/bookmarks/views/default/bookmarks/js.php5
-rw-r--r--mod/bookmarks/views/default/bookmarks/sidebar.php14
-rw-r--r--mod/bookmarks/views/default/forms/bookmarks/save.php4
-rw-r--r--mod/bookmarks/views/default/object/bookmarks.php58
-rw-r--r--mod/bookmarks/views/default/river/object/bookmarks/create.php31
-rw-r--r--mod/bookmarks/views/default/widgets/bookmarks/content.php3
-rw-r--r--mod/bookmarks/views/default/widgets/bookmarks/edit.php8
-rw-r--r--mod/bookmarks/views/rss/object/bookmarks.php36
23 files changed, 284 insertions, 206 deletions
diff --git a/mod/bookmarks/actions/bookmarks/delete.php b/mod/bookmarks/actions/bookmarks/delete.php
index ba89ec228..2e9f41438 100644
--- a/mod/bookmarks/actions/bookmarks/delete.php
+++ b/mod/bookmarks/actions/bookmarks/delete.php
@@ -13,9 +13,9 @@ if (elgg_instanceof($bookmark, 'object', 'bookmarks') && $bookmark->canEdit()) {
if ($bookmark->delete()) {
system_message(elgg_echo("bookmarks:delete:success"));
if (elgg_instanceof($container, 'group')) {
- forward("pg/bookmarks/group/$container->guid/owner");
+ forward("bookmarks/group/$container->guid/all");
} else {
- forward("pg/bookmarks/owner/$container->username/");
+ forward("bookmarks/owner/$container->username");
}
}
}
diff --git a/mod/bookmarks/actions/bookmarks/save.php b/mod/bookmarks/actions/bookmarks/save.php
index 2f4f7b685..46090b115 100644
--- a/mod/bookmarks/actions/bookmarks/save.php
+++ b/mod/bookmarks/actions/bookmarks/save.php
@@ -5,9 +5,7 @@
* @package Bookmarks
*/
-gatekeeper();
-
-$title = strip_tags(get_input('title'));
+$title = htmlspecialchars(get_input('title', '', false), ENT_QUOTES, 'UTF-8');
$description = get_input('description');
$address = get_input('address');
$access_id = get_input('access_id');
@@ -24,7 +22,24 @@ if ($address && !preg_match("#^((ht|f)tps?:)?//#i", $address)) {
$address = "http://$address";
}
-if (!$title || !$address || !filter_var($address, FILTER_VALIDATE_URL)) {
+if (!$title || !$address) {
+ register_error(elgg_echo('bookmarks:save:failed'));
+ forward(REFERER);
+}
+
+// see https://bugs.php.net/bug.php?id=51192
+$php_5_2_13_and_below = version_compare(PHP_VERSION, '5.2.14', '<');
+$php_5_3_0_to_5_3_2 = version_compare(PHP_VERSION, '5.3.0', '>=') &&
+ version_compare(PHP_VERSION, '5.3.3', '<');
+
+$validated = false;
+if ($php_5_2_13_and_below || $php_5_3_0_to_5_3_2) {
+ $tmp_address = str_replace("-", "", $address);
+ $validated = filter_var($tmp_address, FILTER_VALIDATE_URL);
+} else {
+ $validated = filter_var($address, FILTER_VALIDATE_URL);
+}
+if (!$validated) {
register_error(elgg_echo('bookmarks:save:failed'));
forward(REFERER);
}
@@ -71,5 +86,5 @@ if ($bookmark->save()) {
forward($bookmark->getURL());
} else {
register_error(elgg_echo('bookmarks:save:failed'));
- forward("pg/bookmarks");
+ forward("bookmarks");
}
diff --git a/mod/bookmarks/languages/en.php b/mod/bookmarks/languages/en.php
index 3026629da..970b39415 100644
--- a/mod/bookmarks/languages/en.php
+++ b/mod/bookmarks/languages/en.php
@@ -9,7 +9,8 @@ $english = array(
* Menu items and titles
*/
'bookmarks' => "Bookmarks",
- 'bookmarks:add' => "Add bookmark",
+ 'bookmarks:add' => "Add a bookmark",
+ 'bookmarks:edit' => "Edit bookmark",
'bookmarks:owner' => "%s's bookmarks",
'bookmarks:friends' => "Friends' bookmarks",
'bookmarks:everyone' => "All site bookmarks",
@@ -20,27 +21,35 @@ $english = array(
'bookmarks:inbox' => "Bookmarks inbox",
'bookmarks:morebookmarks' => "More bookmarks",
'bookmarks:more' => "More",
- 'bookmarks:shareditem' => "Bookmarked item",
'bookmarks:with' => "Share with",
- 'bookmarks:new' => "A new bookmarked item",
- 'bookmarks:via' => "via bookmarks",
- 'bookmarks:address' => "Address of the resource to bookmark",
+ 'bookmarks:new' => "A new bookmark",
+ 'bookmarks:address' => "Address of the bookmark",
'bookmarks:none' => 'No bookmarks',
+ 'bookmarks:notification' =>
+'%s added a new bookmark:
+
+%s - %s
+%s
+
+View and comment on the new bookmark:
+%s
+',
+
'bookmarks:delete:confirm' => "Are you sure you want to delete this resource?",
- 'bookmarks:numbertodisplay' => 'Number of bookmarked items to display',
+ 'bookmarks:numbertodisplay' => 'Number of bookmarks to display',
'bookmarks:shared' => "Bookmarked",
'bookmarks:visit' => "Visit resource",
'bookmarks:recent' => "Recent bookmarks",
- 'bookmarks:river:created' => 'bookmarked %s',
- 'bookmarks:river:annotate' => 'a comment on this bookmarked item',
+ 'river:create:object:bookmarks' => '%s bookmarked %s',
+ 'river:comment:object:bookmarks' => '%s commented on a bookmark %s',
+ 'bookmarks:river:annotate' => 'a comment on this bookmark',
'bookmarks:river:item' => 'an item',
- 'river:commented:object:bookmarks' => 'a bookmark',
- 'item:object:bookmarks' => 'Bookmarked items',
+ 'item:object:bookmarks' => 'Bookmarks',
'bookmarks:group' => 'Group bookmarks',
'bookmarks:enablebookmarks' => 'Enable group bookmarks',
@@ -52,8 +61,7 @@ $english = array(
/**
* Widget and bookmarklet
*/
- 'bookmarks:widget:description' =>
- "This widget displays your latest bookmarks.",
+ 'bookmarks:widget:description' => "Display your latest bookmarks.",
'bookmarks:bookmarklet:description' =>
"The bookmarks bookmarklet allows you to share any resource you find on the web with your friends, or just bookmark it for yourself. To use it, simply drag the following button to your browser's links bar:",
@@ -69,14 +77,15 @@ $english = array(
*/
'bookmarks:save:success' => "Your item was successfully bookmarked.",
- 'bookmarks:delete:success' => "Your bookmarked item was successfully deleted.",
+ 'bookmarks:delete:success' => "Your bookmark was deleted.",
/**
* Error messages
*/
- 'bookmarks:save:failed' => "Your bookmarked item could not be saved. Make sure you've entered a title and address and then try again.",
- 'bookmarks:delete:failed' => "Your bookmarked item could not be deleted. Please try again.",
+ 'bookmarks:save:failed' => "Your bookmark could not be saved. Make sure you've entered a title and address and then try again.",
+ 'bookmarks:save:invalid' => "The address of the bookmark is invalid and could not be saved.",
+ 'bookmarks:delete:failed' => "Your bookmark could not be deleted. Please try again.",
);
add_translation('en', $english); \ No newline at end of file
diff --git a/mod/bookmarks/lib/bookmarks.php b/mod/bookmarks/lib/bookmarks.php
index 815330e2c..9a9dff18c 100644
--- a/mod/bookmarks/lib/bookmarks.php
+++ b/mod/bookmarks/lib/bookmarks.php
@@ -14,7 +14,7 @@
function bookmarks_prepare_form_vars($bookmark = null) {
// input names => defaults
$values = array(
- 'title' => get_input('title', ''),
+ 'title' => get_input('title', ''), // bookmarklet support
'address' => get_input('address', ''),
'description' => '',
'access_id' => ACCESS_DEFAULT,
@@ -27,13 +27,16 @@ function bookmarks_prepare_form_vars($bookmark = null) {
if ($bookmark) {
foreach (array_keys($values) as $field) {
- $values[$field] = $bookmark->$field;
+ if (isset($bookmark->$field)) {
+ $values[$field] = $bookmark->$field;
+ }
}
}
if (elgg_is_sticky_form('bookmarks')) {
- foreach (array_keys($values) as $field) {
- $values[$field] = elgg_get_sticky_value('bookmarks', $field);
+ $sticky_values = elgg_get_sticky_values('bookmarks');
+ foreach ($sticky_values as $key => $value) {
+ $values[$key] = $value;
}
}
diff --git a/mod/bookmarks/manifest.xml b/mod/bookmarks/manifest.xml
index 62fb61b1e..b95af87f8 100644
--- a/mod/bookmarks/manifest.xml
+++ b/mod/bookmarks/manifest.xml
@@ -3,15 +3,17 @@
<name>Bookmarks</name>
<author>Core developers</author>
<version>1.8</version>
+ <category>bundled</category>
+ <category>content</category>
+ <category>widget</category>
<blurb>Add and comment on bookmarks.</blurb>
<description>Adds the ability for users to bookmark internal and external sites. Other users can then comment on the bookmarks.</description>
<website>http://www.elgg.org/</website>
<copyright>See COPYRIGHT.txt</copyright>
- <license>GNU Public License version 2</license>
+ <license>GNU General Public License version 2</license>
<requires>
- <type>elgg_version</type>
- <version>2010030101</version>
+ <type>elgg_release</type>
+ <version>1.8</version>
</requires>
<activate_on_install>true</activate_on_install>
- <admin_interface>simple</admin_interface>
</plugin_manifest>
diff --git a/mod/bookmarks/pages/add.php b/mod/bookmarks/pages/bookmarks/add.php
index c7fd3cf79..d80d4a4bc 100644
--- a/mod/bookmarks/pages/add.php
+++ b/mod/bookmarks/pages/bookmarks/add.php
@@ -15,7 +15,6 @@ $content = elgg_view_form('bookmarks/save', array(), $vars);
$body = elgg_view_layout('content', array(
'filter' => '',
- 'buttons' => '',
'content' => $content,
'title' => $title,
));
diff --git a/mod/bookmarks/pages/all.php b/mod/bookmarks/pages/bookmarks/all.php
index 07ae5d327..5c6011ad9 100644
--- a/mod/bookmarks/pages/all.php
+++ b/mod/bookmarks/pages/bookmarks/all.php
@@ -5,24 +5,29 @@
* @package ElggBookmarks
*/
-elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
+elgg_pop_breadcrumb();
+elgg_push_breadcrumb(elgg_echo('bookmarks'));
+
+elgg_register_title_button();
-$offset = (int)get_input('offset', 0);
$content = elgg_list_entities(array(
'type' => 'object',
'subtype' => 'bookmarks',
- 'limit' => 10,
- 'offset' => $offset,
'full_view' => false,
- 'view_toggle_type' => false
+ 'view_toggle_type' => false,
));
+if (!$content) {
+ $content = elgg_echo('bookmarks:none');
+}
+
$title = elgg_echo('bookmarks:everyone');
$body = elgg_view_layout('content', array(
'filter_context' => 'all',
'content' => $content,
- 'title' => $title
+ 'title' => $title,
+ 'sidebar' => elgg_view('bookmarks/sidebar'),
));
echo elgg_view_page($title, $body); \ No newline at end of file
diff --git a/mod/bookmarks/pages/bookmarklet.php b/mod/bookmarks/pages/bookmarks/bookmarklet.php
index 99866e385..99866e385 100644
--- a/mod/bookmarks/pages/bookmarklet.php
+++ b/mod/bookmarks/pages/bookmarks/bookmarklet.php
diff --git a/mod/bookmarks/pages/edit.php b/mod/bookmarks/pages/bookmarks/edit.php
index 24513a960..93b143c36 100644
--- a/mod/bookmarks/pages/edit.php
+++ b/mod/bookmarks/pages/bookmarks/edit.php
@@ -23,7 +23,6 @@ $content = elgg_view_form('bookmarks/save', array(), $vars);
$body = elgg_view_layout('content', array(
'filter' => '',
- 'buttons' => '',
'content' => $content,
'title' => $title,
));
diff --git a/mod/bookmarks/pages/friends.php b/mod/bookmarks/pages/bookmarks/friends.php
index dedeeb5e9..173996346 100644
--- a/mod/bookmarks/pages/friends.php
+++ b/mod/bookmarks/pages/bookmarks/friends.php
@@ -5,14 +5,19 @@
* @package ElggBookmarks
*/
-$owner = elgg_get_page_owner_entity();
+$page_owner = elgg_get_page_owner_entity();
+if (!$page_owner) {
+ forward('', '404');
+}
-elgg_push_breadcrumb($owner->name, "pg/bookmarks/owner/$owner->username");
+elgg_push_breadcrumb($page_owner->name, "bookmarks/owner/$page_owner->username");
elgg_push_breadcrumb(elgg_echo('friends'));
+elgg_register_title_button();
+
$title = elgg_echo('bookmarks:friends');
-$content = list_user_friends_objects($owner->guid, 'bookmarks', 10, false);
+$content = list_user_friends_objects($page_owner->guid, 'bookmarks', 10, false);
if (!$content) {
$content = elgg_echo('bookmarks:none');
}
@@ -25,4 +30,4 @@ $params = array(
$body = elgg_view_layout('content', $params);
-echo elgg_view_page($title, $body); \ No newline at end of file
+echo elgg_view_page($title, $body);
diff --git a/mod/bookmarks/pages/owner.php b/mod/bookmarks/pages/bookmarks/owner.php
index d1564f751..b7b907916 100644
--- a/mod/bookmarks/pages/owner.php
+++ b/mod/bookmarks/pages/bookmarks/owner.php
@@ -6,16 +6,18 @@
*/
$page_owner = elgg_get_page_owner_entity();
+if (!$page_owner) {
+ forward('', '404');
+}
elgg_push_breadcrumb($page_owner->name);
-$offset = (int)get_input('offset', 0);
+elgg_register_title_button();
+
$content .= elgg_list_entities(array(
'type' => 'object',
'subtype' => 'bookmarks',
'container_guid' => $page_owner->guid,
- 'limit' => 10,
- 'offset' => $offset,
'full_view' => false,
'view_toggle_type' => false
));
@@ -34,7 +36,8 @@ if ($page_owner->getGUID() == elgg_get_logged_in_user_guid()) {
$vars = array(
'filter_context' => $filter_context,
'content' => $content,
- 'title' => $title
+ 'title' => $title,
+ 'sidebar' => elgg_view('bookmarks/sidebar'),
);
// don't show filter if out of filter context
diff --git a/mod/bookmarks/pages/view.php b/mod/bookmarks/pages/bookmarks/view.php
index b5a857857..70a6a5bfe 100644
--- a/mod/bookmarks/pages/view.php
+++ b/mod/bookmarks/pages/bookmarks/view.php
@@ -6,29 +6,33 @@
*/
$bookmark = get_entity(get_input('guid'));
+if (!$bookmark) {
+ register_error(elgg_echo('noaccess'));
+ $_SESSION['last_forward_from'] = current_page_url();
+ forward('');
+}
$page_owner = elgg_get_page_owner_entity();
$crumbs_title = $page_owner->name;
if (elgg_instanceof($page_owner, 'group')) {
- elgg_push_breadcrumb($crumbs_title, "pg/bookmarks/group/$page_owner->guid/owner");
+ elgg_push_breadcrumb($crumbs_title, "bookmarks/group/$page_owner->guid/all");
} else {
- elgg_push_breadcrumb($crumbs_title, "pg/bookmarks/owner/$page_owner->username");
+ elgg_push_breadcrumb($crumbs_title, "bookmarks/owner/$page_owner->username");
}
$title = $bookmark->title;
elgg_push_breadcrumb($title);
-$content = elgg_view_entity($bookmark, true);
+$content = elgg_view_entity($bookmark, array('full_view' => true));
$content .= elgg_view_comments($bookmark);
$body = elgg_view_layout('content', array(
'content' => $content,
'title' => $title,
'filter' => '',
- 'header' => '',
));
echo elgg_view_page($title, $body);
diff --git a/mod/bookmarks/start.php b/mod/bookmarks/start.php
index 0bd2e3134..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");
@@ -26,38 +25,40 @@ function bookmarks_init() {
elgg_register_menu_item('site', array(
'name' => 'bookmarks',
'text' => elgg_echo('bookmarks'),
- 'href' => 'pg/bookmarks/all'
+ 'href' => 'bookmarks/all'
));
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'),
- 'href' => "pg/bookmarks/add/$user_guid?address=$address",
+ 'text' => elgg_view_icon('push-pin-alt'),
+ 'href' => "bookmarks/add/$user_guid?address=$address",
'title' => elgg_echo('bookmarks:this'),
'rel' => 'nofollow',
));
}
// Register granular notification for this type
- if (is_callable('register_notification_object')) {
- register_notification_object('object', 'bookmarks', elgg_echo('bookmarks:new'));
- }
+ register_notification_object('object', 'bookmarks', elgg_echo('bookmarks:new'));
// 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');
@@ -73,24 +74,29 @@ function bookmarks_init() {
* Dispatcher for bookmarks.
*
* URLs take the form of
- * All bookmarks: pg/bookmarks/all
- * User's bookmarks: pg/bookmarks/owner/<username>
- * Friends' bookmarks: pg/bookmarks/friends/<username>
- * View bookmark: pg/bookmarks/view/<guid>/<title>
- * New bookmark: pg/bookmarks/add/<guid> (container: user, group, parent)
- * Edit bookmark: pg/bookmarks/edit/<guid>
- * Group bookmarks: pg/bookmarks/group/<guid>/owner
- * Bookmarklet: pg/bookmarks/bookmarklet/<guid> (user)
+ * All bookmarks: bookmarks/all
+ * User's bookmarks: bookmarks/owner/<username>
+ * Friends' bookmarks: bookmarks/friends/<username>
+ * 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>/all
+ * Bookmarklet: bookmarks/bookmarklet/<guid> (user)
*
* Title is ignored
*
* @param array $page
+ * @return bool
*/
function bookmarks_page_handler($page) {
+
elgg_load_library('elgg:bookmarks');
- elgg_push_breadcrumb(elgg_echo('bookmarks'), 'pg/bookmarks/all');
- elgg_push_context('bookmarks');
+ if (!isset($page[0])) {
+ $page[0] = 'all';
+ }
+
+ elgg_push_breadcrumb(elgg_echo('bookmarks'), 'bookmarks/all');
// old group usernames
if (substr_count($page[0], 'group:')) {
@@ -107,7 +113,7 @@ function bookmarks_page_handler($page) {
bookmarks_url_forwarder($page);
}
- $pages = dirname(__FILE__) . '/pages';
+ $pages = dirname(__FILE__) . '/pages/bookmarks';
switch ($page[0]) {
case "all":
@@ -122,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();
@@ -154,7 +163,6 @@ function bookmarks_page_handler($page) {
}
elgg_pop_context();
-
return true;
}
@@ -172,22 +180,22 @@ function bookmarks_url_forwarder($page) {
switch ($page[1]) {
case "read":
- $url = "{$CONFIG->wwwroot}pg/bookmarks/view/{$page[2]}/{$page[3]}";
+ $url = "{$CONFIG->wwwroot}bookmarks/view/{$page[2]}/{$page[3]}";
break;
case "inbox":
- $url = "{$CONFIG->wwwroot}pg/bookmarks/inbox/{$page[0]}/";
+ $url = "{$CONFIG->wwwroot}bookmarks/inbox/{$page[0]}";
break;
case "friends":
- $url = "{$CONFIG->wwwroot}pg/bookmarks/friends/{$page[0]}/";
+ $url = "{$CONFIG->wwwroot}bookmarks/friends/{$page[0]}";
break;
case "add":
- $url = "{$CONFIG->wwwroot}pg/bookmarks/add/{$page[0]}/";
+ $url = "{$CONFIG->wwwroot}bookmarks/add/{$page[0]}";
break;
case "items":
- $url = "{$CONFIG->wwwroot}pg/bookmarks/owner/{$page[0]}/";
+ $url = "{$CONFIG->wwwroot}bookmarks/owner/{$page[0]}";
break;
case "bookmarklet":
- $url = "{$CONFIG->wwwroot}pg/bookmarks/bookmarklet/{$page[0]}/";
+ $url = "{$CONFIG->wwwroot}bookmarks/bookmarklet/{$page[0]}";
break;
}
@@ -206,20 +214,25 @@ function bookmark_url($entity) {
$title = $entity->title;
$title = elgg_get_friendly_title($title);
- return $CONFIG->url . "pg/bookmarks/view/" . $entity->getGUID() . "/" . $title;
+ return $CONFIG->url . "bookmarks/view/" . $entity->getGUID() . "/" . $title;
}
/**
* 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')) {
- $url = "pg/bookmarks/owner/{$params['entity']->username}";
+ $url = "bookmarks/owner/{$params['entity']->username}";
$item = new ElggMenuItem('bookmarks', elgg_echo('bookmarks'), $url);
$return[] = $item;
} else {
if ($params['entity']->bookmarks_enable != 'no') {
- $url = "pg/bookmarks/group/{$params['entity']->guid}/owner";
+ $url = "bookmarks/group/{$params['entity']->guid}/all";
$item = new ElggMenuItem('bookmarks', elgg_echo('bookmarks:group'), $url);
$return[] = $item;
}
@@ -229,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'];
@@ -243,65 +256,61 @@ 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() . "pg/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 = "pg/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()) {
// only show bookmarklet in bookmark pages
if (elgg_in_context('bookmarks')) {
$page_owner = elgg_get_page_owner_entity();
+ 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');
}
- $return[] = new ElggMenuItem('bookmarklet', $title, 'pg/bookmarks/bookmarklet/' . $page_owner->getGUID());
+ $return[] = new ElggMenuItem('bookmarklet', $title, 'bookmarks/bookmarklet/' . $page_owner->getGUID());
}
}
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;
+}
diff --git a/mod/bookmarks/views/default/bookmarks/bookmarklet.php b/mod/bookmarks/views/default/bookmarks/bookmarklet.php
index 091a15997..b3e9737fe 100644
--- a/mod/bookmarks/views/default/bookmarks/bookmarklet.php
+++ b/mod/bookmarks/views/default/bookmarks/bookmarklet.php
@@ -20,13 +20,16 @@ if (!$name && ($user = elgg_get_logged_in_user_entity())) {
}
$url = elgg_get_site_url();
-
-$bookmarklet = "<a href=\"javascript:location.href='{$url}pg/bookmarks/add/$guid?address='"
+$img = elgg_view('output/img', array(
+ 'src' => 'mod/bookmarks/graphics/bookmarklet.gif',
+ 'alt' => $title,
+));
+$bookmarklet = "<a href=\"javascript:location.href='{$url}bookmarks/add/$guid?address='"
. "+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)\">"
- . "<img src=\"{$url}mod/bookmarks/graphics/bookmarklet.gif\" alt=\"$title\" /> </a>";
+ . $img . "</a>";
?>
<p><?php echo elgg_echo("bookmarks:bookmarklet:description"); ?></p>
<p><?php echo $bookmarklet; ?></p>
<p><?php echo elgg_echo("bookmarks:bookmarklet:descriptionie"); ?></p>
-<p><?php echo elgg_echo("bookmarks:bookmarklet:description:conclusion"); ?></p> \ No newline at end of file
+<p><?php echo elgg_echo("bookmarks:bookmarklet:description:conclusion"); ?></p>
diff --git a/mod/bookmarks/views/default/bookmarks/group_module.php b/mod/bookmarks/views/default/bookmarks/group_module.php
index 94204d7e8..60a727819 100644
--- a/mod/bookmarks/views/default/bookmarks/group_module.php
+++ b/mod/bookmarks/views/default/bookmarks/group_module.php
@@ -12,13 +12,11 @@ if ($group->bookmarks_enable == "no") {
}
$all_link = elgg_view('output/url', array(
- 'href' => "pg/bookmarks/group/$group->guid/owner",
+ 'href' => "bookmarks/group/$group->guid/all",
'text' => elgg_echo('link:view:all'),
+ 'is_trusted' => true,
));
-$header = "<span class=\"group-widget-viewall\">$all_link</span>";
-$header .= '<h3>' . elgg_echo('bookmarks:group') . '</h3>';
-
elgg_push_context('widgets');
$options = array(
'type' => 'object',
@@ -36,9 +34,14 @@ if (!$content) {
}
$new_link = elgg_view('output/url', array(
- 'href' => "pg/bookmarks/add/$group->guid",
+ 'href' => "bookmarks/add/$group->guid",
'text' => elgg_echo('bookmarks:add'),
+ 'is_trusted' => true,
));
-$content .= "<span class='elgg-widget-more'>$new_link</span>";
-echo elgg_view_module('info', '', $content, array('header' => $header));
+echo elgg_view('groups/profile/module', array(
+ 'title' => elgg_echo('bookmarks:group'),
+ 'content' => $content,
+ 'all_link' => $all_link,
+ 'add_link' => $new_link,
+));
diff --git a/mod/bookmarks/views/default/bookmarks/js.php b/mod/bookmarks/views/default/bookmarks/js.php
index 35dc82f70..c36823c09 100644
--- a/mod/bookmarks/views/default/bookmarks/js.php
+++ b/mod/bookmarks/views/default/bookmarks/js.php
@@ -1,3 +1,4 @@
+
elgg.provide('elgg.bookmarks');
elgg.bookmarks.init = function() {
@@ -6,6 +7,6 @@ elgg.bookmarks.init = function() {
var e = $('a.elgg-bookmark-page');
var link = e.attr('href') + '&title=' + encodeURIComponent(title);
e.attr('href', link);
-}
+};
-elgg.register_event_handler('init', 'system', elgg.bookmarks.init); \ No newline at end of file
+elgg.register_hook_handler('init', 'system', elgg.bookmarks.init);
diff --git a/mod/bookmarks/views/default/bookmarks/sidebar.php b/mod/bookmarks/views/default/bookmarks/sidebar.php
new file mode 100644
index 000000000..811284ef3
--- /dev/null
+++ b/mod/bookmarks/views/default/bookmarks/sidebar.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Bookmarks sidebar
+ */
+
+echo elgg_view('page/elements/comments_block', array(
+ 'subtypes' => 'bookmarks',
+ 'owner_guid' => elgg_get_page_owner_guid(),
+));
+
+echo elgg_view('page/elements/tagcloud_block', array(
+ 'subtypes' => 'bookmarks',
+ 'owner_guid' => elgg_get_page_owner_guid(),
+));
diff --git a/mod/bookmarks/views/default/forms/bookmarks/save.php b/mod/bookmarks/views/default/forms/bookmarks/save.php
index 4930aacdb..7d064a55b 100644
--- a/mod/bookmarks/views/default/forms/bookmarks/save.php
+++ b/mod/bookmarks/views/default/forms/bookmarks/save.php
@@ -5,7 +5,7 @@
* @package Bookmarks
*/
-// once elgg_view stops throwing all sorts of junk into $vars, we can use
+// once elgg_view stops throwing all sorts of junk into $vars, we can use extract()
$title = elgg_extract('title', $vars, '');
$desc = elgg_extract('description', $vars, '');
$address = elgg_extract('address', $vars, '');
@@ -44,7 +44,7 @@ if ($categories) {
<label><?php echo elgg_echo('access'); ?></label><br />
<?php echo elgg_view('input/access', array('name' => 'access_id', 'value' => $access_id)); ?>
</div>
-<div>
+<div class="elgg-foot">
<?php
echo elgg_view('input/hidden', array('name' => 'container_guid', 'value' => $container_guid));
diff --git a/mod/bookmarks/views/default/object/bookmarks.php b/mod/bookmarks/views/default/object/bookmarks.php
index 8c5de61a4..83bae2b13 100644
--- a/mod/bookmarks/views/default/object/bookmarks.php
+++ b/mod/bookmarks/views/default/object/bookmarks.php
@@ -5,7 +5,7 @@
* @package ElggBookmarks
*/
-$full = elgg_extract('full', $vars, FALSE);
+$full = elgg_extract('full_view', $vars, FALSE);
$bookmark = elgg_extract('entity', $vars, FALSE);
if (!$bookmark) {
@@ -13,19 +13,20 @@ if (!$bookmark) {
}
$owner = $bookmark->getOwnerEntity();
+$owner_icon = elgg_view_entity_icon($owner, 'tiny');
$container = $bookmark->getContainerEntity();
$categories = elgg_view('output/categories', $vars);
-$link = filter_tags(elgg_view('output/url', array('href' => $bookmark->address)));
+$link = elgg_view('output/url', array('href' => $bookmark->address));
$description = elgg_view('output/longtext', array('value' => $bookmark->description, 'class' => 'pbl'));
$owner_link = elgg_view('output/url', array(
- 'href' => "pg/bookmarks/owner/$owner->username",
+ 'href' => "bookmarks/owner/$owner->username",
'text' => $owner->name,
+ 'is_trusted' => true,
));
$author_text = elgg_echo('byline', array($owner_link));
-$tags = elgg_view('output/tags', array('tags' => $bookmark->tags));
$date = elgg_view_friendly_time($bookmark->time_created);
$comments_count = $bookmark->countComments();
@@ -35,17 +36,20 @@ if ($comments_count != 0) {
$comments_link = elgg_view('output/url', array(
'href' => $bookmark->getURL() . '#comments',
'text' => $text,
+ 'is_trusted' => true,
));
} else {
$comments_link = '';
}
-$metadata = elgg_view('navigation/menu/metadata', array(
- 'entity' => $bookmark,
+$metadata = elgg_view_menu('entity', array(
+ 'entity' => $vars['entity'],
'handler' => 'bookmarks',
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
));
-$subtitle = "$author_text $date $categories $comments_link";
+$subtitle = "$author_text $date $comments_link $categories";
// do not show the metadata and controls in widget view
if (elgg_in_context('widgets')) {
@@ -53,26 +57,31 @@ if (elgg_in_context('widgets')) {
}
if ($full && !elgg_in_context('gallery')) {
- $header = elgg_view_title($bookmark->title);
$params = array(
'entity' => $bookmark,
'title' => false,
'metadata' => $metadata,
'subtitle' => $subtitle,
- 'tags' => $tags,
);
- $bookmark_info = elgg_view('page/components/list/body', $params);
- $bookmark_icon = elgg_view_icon('bookmark');
- echo <<<HTML
-$header
-$bookmark_info
-<div class="bookmark elgg-content">
- $bookmark_icon<h3 class="pbl">$link</h3>
+ $params = $params + $vars;
+ $summary = elgg_view('object/elements/summary', $params);
+
+ $bookmark_icon = elgg_view_icon('push-pin-alt');
+ $body = <<<HTML
+<div class="bookmark elgg-content mts">
+ $bookmark_icon<span class="elgg-heading-basic mbs">$link</span>
$description
</div>
HTML;
+ echo elgg_view('object/elements/full', array(
+ 'entity' => $bookmark,
+ 'icon' => $owner_icon,
+ 'summary' => $summary,
+ 'body' => $body,
+ ));
+
} elseif (elgg_in_context('gallery')) {
echo <<<HTML
<div class="bookmarks-gallery-item">
@@ -98,20 +107,21 @@ HTML;
}
}
- $link = filter_tags(elgg_view('output/url', array(
+ $link = elgg_view('output/url', array(
'href' => $bookmark->address,
- 'text' => $display_text
- )));
+ 'text' => $display_text,
+ ));
- $content = elgg_view_icon('bookmark') . "$link{$excerpt}";
+ $content = elgg_view_icon('push-pin-alt') . "$link{$excerpt}";
$params = array(
'entity' => $bookmark,
'metadata' => $metadata,
'subtitle' => $subtitle,
- 'tags' => $tags,
'content' => $content,
);
-
- echo elgg_view('page/components/list/body', $params);
-} \ No newline at end of file
+ $params = $params + $vars;
+ $body = elgg_view('object/elements/summary', $params);
+
+ echo elgg_view_image_block($owner_icon, $body);
+}
diff --git a/mod/bookmarks/views/default/river/object/bookmarks/create.php b/mod/bookmarks/views/default/river/object/bookmarks/create.php
index 743efdb22..388f54ac9 100644
--- a/mod/bookmarks/views/default/river/object/bookmarks/create.php
+++ b/mod/bookmarks/views/default/river/object/bookmarks/create.php
@@ -8,29 +8,8 @@
$object = $vars['item']->getObjectEntity();
$excerpt = elgg_get_excerpt($object->description);
-$params = array(
- 'href' => $object->getURL(),
- 'text' => $object->title,
-);
-$link = elgg_view('output/url', $params);
-
-$group_string = '';
-$container = $object->getContainerEntity();
-if ($container instanceof ElggGroup) {
- $params = array(
- 'href' => $container->getURL(),
- 'text' => $container->name,
- );
- $group_link = elgg_view('output/url', $params);
- $group_string = elgg_echo('river:ingroup', array($group_link));
-}
-
-$link = elgg_echo('bookmarks:river:created', array($link));
-
-echo " $link $group_string";
-
-if ($excerpt) {
- echo '<div class="elgg-river-content">';
- echo $excerpt;
- echo '</div>';
-}
+echo elgg_view('river/elements/layout', array(
+ 'item' => $vars['item'],
+ 'message' => $excerpt,
+ 'attachments' => elgg_view('output/url', array('href' => $object->address)),
+));
diff --git a/mod/bookmarks/views/default/widgets/bookmarks/content.php b/mod/bookmarks/views/default/widgets/bookmarks/content.php
index 5f9f469d1..0b85017fc 100644
--- a/mod/bookmarks/views/default/widgets/bookmarks/content.php
+++ b/mod/bookmarks/views/default/widgets/bookmarks/content.php
@@ -20,10 +20,11 @@ $content = elgg_list_entities($options);
echo $content;
if ($content) {
- $url = "pg/bookmarks/owner/" . elgg_get_page_owner_entity()->username;
+ $url = "bookmarks/owner/" . elgg_get_page_owner_entity()->username;
$more_link = elgg_view('output/url', array(
'href' => $url,
'text' => elgg_echo('bookmarks:more'),
+ 'is_trusted' => true,
));
echo "<span class=\"elgg-widget-more\">$more_link</span>";
} else {
diff --git a/mod/bookmarks/views/default/widgets/bookmarks/edit.php b/mod/bookmarks/views/default/widgets/bookmarks/edit.php
index 99d65ac8f..ed9c7fd88 100644
--- a/mod/bookmarks/views/default/widgets/bookmarks/edit.php
+++ b/mod/bookmarks/views/default/widgets/bookmarks/edit.php
@@ -6,13 +6,13 @@
*/
// set default value
-if (!isset($vars['entity']->max_display)) {
- $vars['entity']->max_display = 4;
+if (!isset($vars['entity']->num_display)) {
+ $vars['entity']->num_display = 4;
}
$params = array(
- 'name' => 'params[max_display]',
- 'value' => $vars['entity']->max_display,
+ 'name' => 'params[num_display]',
+ 'value' => $vars['entity']->num_display,
'options' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
);
$dropdown = elgg_view('input/dropdown', $params);
diff --git a/mod/bookmarks/views/rss/object/bookmarks.php b/mod/bookmarks/views/rss/object/bookmarks.php
index 8e88485f1..1abda4710 100644
--- a/mod/bookmarks/views/rss/object/bookmarks.php
+++ b/mod/bookmarks/views/rss/object/bookmarks.php
@@ -1,23 +1,37 @@
<?php
/**
- * Elgg bookmark rss view
- *
+ * Bookmark RSS object view
+ *
* @package ElggBookmarks
*/
$title = $vars['entity']->title;
if (empty($title)) {
- $title = substr($vars['entity']->description,0,32);
- if (strlen($vars['entity']->description) > 32)
- $title .= " ...";
+ $title = strip_tags($vars['entity']->description);
+ $title = elgg_get_excerpt($title, 32);
}
-?>
+$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8');
+$pubdate = date('r', $vars['entity']->getTimeCreated());
+$url_text = elgg_echo('bookmarks:address');
+$link = elgg_view('output/url', array('href' => $vars['entity']->address));
+$description = $vars['entity']->description . "<p>$url_text: $link</p>";
+
+$creator = elgg_view('page/components/creator', $vars);
+$georss = elgg_view('page/components/georss', $vars);
+$extension = elgg_view('extensions/item');
+
+$item = <<<__HTML
<item>
- <guid isPermaLink='true'><?php echo $vars['entity']->getURL(); ?></guid>
- <pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate>
- <link><?php echo $vars['entity']->address; ?></link>
- <title><![CDATA[<?php echo $title; ?>]]></title>
- <description><![CDATA[<?php echo (autop($vars['entity']->description)); ?>]]></description>
+ <guid isPermaLink="true">$permalink</guid>
+ <pubDate>$pubdate</pubDate>
+ <link>$permalink</link>
+ <title><![CDATA[$title]]></title>
+ <description><![CDATA[$description]]></description>
+ $creator$georss$extension
</item>
+
+__HTML;
+
+echo $item;