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.php37
-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/add.php34
-rw-r--r--mod/bookmarks/pages/all.php32
-rw-r--r--mod/bookmarks/pages/bookmarks/add.php22
-rw-r--r--mod/bookmarks/pages/bookmarks/all.php33
-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)7
-rw-r--r--mod/bookmarks/pages/bookmarks/friends.php (renamed from mod/bookmarks/pages/friends.php)15
-rw-r--r--mod/bookmarks/pages/bookmarks/owner.php (renamed from mod/bookmarks/pages/owner.php)14
-rw-r--r--mod/bookmarks/pages/bookmarks/view.php38
-rw-r--r--mod/bookmarks/pages/view.php35
-rw-r--r--mod/bookmarks/start.php182
-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/page_links.php20
-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
27 files changed, 384 insertions, 336 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 b0b9fc9c4..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');
@@ -16,7 +14,32 @@ $guid = get_input('guid');
$share = get_input('share');
$container_guid = get_input('container_guid', elgg_get_logged_in_user_guid());
-if (!$title || !$address || !filter_var($address, FILTER_VALIDATE_URL)) {
+elgg_make_sticky_form('bookmarks');
+
+// don't use elgg_normalize_url() because we don't want
+// relative links resolved to this site.
+if ($address && !preg_match("#^((ht|f)tps?:)?//#i", $address)) {
+ $address = "http://$address";
+}
+
+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);
}
@@ -44,8 +67,8 @@ $bookmark->tags = $tagarray;
if ($bookmark->save()) {
- elgg_clear_sticky_form();
-
+ elgg_clear_sticky_form('bookmarks');
+
// @todo
if (is_array($shares) && sizeof($shares) > 0) {
foreach($shares as $share) {
@@ -63,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/add.php
deleted file mode 100644
index c748daca5..000000000
--- a/mod/bookmarks/pages/add.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Add bookmark page
- *
- * @package Bookmarks
- */
-
-$bookmark_guid = get_input('guid');
-$bookmark = get_entity($bookmark_guid);
-$container_guid = (int) get_input('container_guid');
-$container = get_entity($container_guid);
-
-// for groups.
-$page_owner = $container;
-if (elgg_instanceof($container, 'object')) {
- $page_owner = $container->getContainerEntity();
-}
-
-elgg_set_page_owner_guid($page_owner->getGUID());
-
-$title = elgg_echo('bookmarks:add');
-elgg_push_breadcrumb($title);
-
-$vars = bookmarks_prepare_form_vars();
-$content = elgg_view_form('bookmarks/save', array(), $vars);
-
-$body = elgg_view_layout('content', array(
- 'filter' => '',
- 'buttons' => '',
- 'content' => $content,
- 'title' => $title,
-));
-
-echo elgg_view_page($title, $body); \ No newline at end of file
diff --git a/mod/bookmarks/pages/all.php b/mod/bookmarks/pages/all.php
deleted file mode 100644
index 5a01b6f34..000000000
--- a/mod/bookmarks/pages/all.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/**
- * Elgg bookmarks plugin everyone page
- *
- * @package ElggBookmarks
- */
-
-$page_owner = elgg_get_page_owner_entity();
-if (!$page_owner) {
- $page_owner = elgg_get_logged_in_user_guid();
- elgg_set_page_owner_guid($page_owner);
-}
-
-$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
-));
-
-$title = elgg_echo('bookmarks:everyone');
-
-$body = elgg_view_layout('content', array(
- 'filter_context' => 'all',
- 'content' => $content,
- 'title' => $title
-));
-
-echo elgg_view_page($title, $body); \ No newline at end of file
diff --git a/mod/bookmarks/pages/bookmarks/add.php b/mod/bookmarks/pages/bookmarks/add.php
new file mode 100644
index 000000000..d80d4a4bc
--- /dev/null
+++ b/mod/bookmarks/pages/bookmarks/add.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Add bookmark page
+ *
+ * @package Bookmarks
+ */
+
+$page_owner = elgg_get_page_owner_entity();
+
+$title = elgg_echo('bookmarks:add');
+elgg_push_breadcrumb($title);
+
+$vars = bookmarks_prepare_form_vars();
+$content = elgg_view_form('bookmarks/save', array(), $vars);
+
+$body = elgg_view_layout('content', array(
+ 'filter' => '',
+ 'content' => $content,
+ 'title' => $title,
+));
+
+echo elgg_view_page($title, $body); \ No newline at end of file
diff --git a/mod/bookmarks/pages/bookmarks/all.php b/mod/bookmarks/pages/bookmarks/all.php
new file mode 100644
index 000000000..5c6011ad9
--- /dev/null
+++ b/mod/bookmarks/pages/bookmarks/all.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Elgg bookmarks plugin everyone page
+ *
+ * @package ElggBookmarks
+ */
+
+elgg_pop_breadcrumb();
+elgg_push_breadcrumb(elgg_echo('bookmarks'));
+
+elgg_register_title_button();
+
+$content = elgg_list_entities(array(
+ 'type' => 'object',
+ 'subtype' => 'bookmarks',
+ 'full_view' => 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,
+ '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 7b055e699..93b143c36 100644
--- a/mod/bookmarks/pages/edit.php
+++ b/mod/bookmarks/pages/bookmarks/edit.php
@@ -7,17 +7,13 @@
$bookmark_guid = get_input('guid');
$bookmark = get_entity($bookmark_guid);
-$container_guid = (int) get_input('container_guid');
-$container = get_entity($container_guid);
if (!elgg_instanceof($bookmark, 'object', 'bookmarks') || !$bookmark->canEdit()) {
register_error(elgg_echo('bookmarks:unknown_bookmark'));
forward(REFERRER);
}
-// for groups.
-$container = $bookmark->getContainerEntity();
-elgg_set_page_owner_guid($container->getGUID());
+$page_owner = elgg_get_page_owner_entity();
$title = elgg_echo('bookmarks:edit');
elgg_push_breadcrumb($title);
@@ -27,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 3c55317eb..173996346 100644
--- a/mod/bookmarks/pages/friends.php
+++ b/mod/bookmarks/pages/bookmarks/friends.php
@@ -4,17 +4,20 @@
*
* @package ElggBookmarks
*/
-$guid = get_input('guid');
-elgg_set_page_owner_guid($guid);
-$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');
}
@@ -27,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 72843f9f0..b7b907916 100644
--- a/mod/bookmarks/pages/owner.php
+++ b/mod/bookmarks/pages/bookmarks/owner.php
@@ -5,20 +5,19 @@
* @package Bookmarks
*/
-$guid = get_input('guid');
-
-elgg_set_page_owner_guid($guid);
$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
));
@@ -37,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/bookmarks/view.php b/mod/bookmarks/pages/bookmarks/view.php
new file mode 100644
index 000000000..70a6a5bfe
--- /dev/null
+++ b/mod/bookmarks/pages/bookmarks/view.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * View a bookmark
+ *
+ * @package ElggBookmarks
+ */
+
+$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, "bookmarks/group/$page_owner->guid/all");
+} else {
+ elgg_push_breadcrumb($crumbs_title, "bookmarks/owner/$page_owner->username");
+}
+
+$title = $bookmark->title;
+
+elgg_push_breadcrumb($title);
+
+$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' => '',
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/bookmarks/pages/view.php b/mod/bookmarks/pages/view.php
deleted file mode 100644
index 131a0b52b..000000000
--- a/mod/bookmarks/pages/view.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * View a bookmark
- *
- * @package ElggBookmarks
- */
-
-$bookmark = get_entity(get_input('guid'));
-
-elgg_set_page_owner_guid($bookmark->getContainerGUID());
-$owner = elgg_get_page_owner_entity();
-
-$crumbs_title = $owner->name;
-
-if (elgg_instanceof($owner, 'group')) {
- elgg_push_breadcrumb($crumbs_title, "pg/bookmarks/group/$owner->guid/owner");
-} else {
- elgg_push_breadcrumb($crumbs_title, "pg/bookmarks/owner/$owner->username");
-}
-
-$title = $bookmark->title;
-
-elgg_push_breadcrumb($title);
-
-$content = elgg_view_entity($bookmark, 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 31c414741..caea43587 100644
--- a/mod/bookmarks/start.php
+++ b/mod/bookmarks/start.php
@@ -11,44 +11,56 @@ 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");
// actions
$action_path = "$root/actions/bookmarks";
- elgg_register_action('bookmarks/save', "$action_path/save.php", 'logged_in');
- elgg_register_action('bookmarks/delete', "$action_path/delete.php", 'logged_in');
- elgg_register_action('bookmarks/share', "$action_path/share.php", 'logged_in');
+ elgg_register_action('bookmarks/save', "$action_path/save.php");
+ elgg_register_action('bookmarks/delete', "$action_path/delete.php");
+ elgg_register_action('bookmarks/share', "$action_path/share.php");
// menus
elgg_register_menu_item('site', array(
'name' => 'bookmarks',
- 'title' => elgg_echo('bookmarks'),
- 'url' => 'pg/bookmarks/all'
+ 'text' => elgg_echo('bookmarks'),
+ '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/screen', 'bookmarks/css');
+ elgg_extend_view('css/elgg', 'bookmarks/css');
elgg_extend_view('js/elgg', 'bookmarks/js');
- elgg_extend_view('page/links', 'bookmarks/page_links');
- // Register granular notification for this type
- if (is_callable('register_notification_object')) {
- register_notification_object('object', 'bookmarks', elgg_echo('bookmarks:new'));
+ 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('push-pin-alt'),
+ 'href' => "bookmarks/add/$user_guid?address=$address",
+ 'title' => elgg_echo('bookmarks:this'),
+ 'rel' => 'nofollow',
+ ));
}
+ // Register granular notification for this type
+ 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');
+ elgg_register_entity_url_handler('object', 'bookmarks', 'bookmark_url');
// Register entity type for search
elgg_register_entity_type('object', 'bookmarks');
@@ -62,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:')) {
@@ -96,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":
@@ -104,24 +121,24 @@ function bookmarks_page_handler($page) {
break;
case "owner":
- set_input('username', $page[1]);
include "$pages/owner.php";
break;
case "friends":
- set_input('username', $page[1]);
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();
- set_input('container_guid', $page[1]);
include "$pages/add.php";
break;
@@ -133,7 +150,6 @@ function bookmarks_page_handler($page) {
case 'group':
group_gatekeeper();
- set_input('guid', $page[1]);
include "$pages/owner.php";
break;
@@ -147,7 +163,6 @@ function bookmarks_page_handler($page) {
}
elgg_pop_context();
-
return true;
}
@@ -165,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;
}
@@ -199,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;
}
@@ -222,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'];
@@ -236,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 42bd1e913..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\" border=\"0\" title=\"$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/page_links.php b/mod/bookmarks/views/default/bookmarks/page_links.php
deleted file mode 100644
index 92ea8600a..000000000
--- a/mod/bookmarks/views/default/bookmarks/page_links.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * Shows a "Bookmark this" link and icon
- */
-if (!elgg_is_logged_in()) {
- return;
-}
-
-$url = 'pg/bookmarks/add/' . elgg_get_logged_in_user_guid()
- . '?address=' . urlencode(current_page_url());
- $return[] = new ElggMenuItem('bookmark_this_page', elgg_echo('bookmarks:this'), $url);
-
-echo elgg_view('output/url', array(
- 'text' => '<span class="elgg-icon elgg-icon-bookmark"></span>',
- 'href' => $url,
- 'title' => $label,
- 'rel' => 'nofollow',
- 'encode_text' => false,
- 'class' => 'right elgg-bookmark-page',
-)); \ No newline at end of file
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 f28a45619..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/file/owner/$owner->username",
+ 'href' => "bookmarks/owner/$owner->username",
'text' => $owner->name,
+ 'is_trusted' => true,
));
-$author_text = elgg_echo('blog:author_by_line', array($owner_link));
+$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('layout/objects/list/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('layout/objects/list/body', $params);
+ $params = $params + $vars;
+ $summary = elgg_view('object/elements/summary', $params);
- echo <<<HTML
-$header
-$bookmark_info
-<div class="bookmark elgg-content">
- <span class="elgg-icon elgg-icon-following"></span><h3 class="pbl">$link</h3>
+ $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 = "<span class=\"elgg-icon elgg-icon-following\"></span>$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('layout/objects/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;