aboutsummaryrefslogtreecommitdiff
path: root/mod/bookmarks
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bookmarks')
-rw-r--r--mod/bookmarks/actions/bookmarks/delete.php2
-rw-r--r--mod/bookmarks/actions/bookmarks/save.php23
-rw-r--r--mod/bookmarks/languages/en.php25
-rw-r--r--mod/bookmarks/manifest.xml8
-rw-r--r--mod/bookmarks/pages/bookmarks/add.php1
-rw-r--r--mod/bookmarks/pages/bookmarks/all.php14
-rw-r--r--mod/bookmarks/pages/bookmarks/edit.php1
-rw-r--r--mod/bookmarks/pages/bookmarks/friends.php13
-rw-r--r--mod/bookmarks/pages/bookmarks/owner.php8
-rw-r--r--mod/bookmarks/pages/bookmarks/view.php10
-rw-r--r--mod/bookmarks/start.php68
-rw-r--r--mod/bookmarks/views/default/bookmarks/bookmarklet.php9
-rw-r--r--mod/bookmarks/views/default/bookmarks/group_module.php25
-rw-r--r--mod/bookmarks/views/default/bookmarks/js.php2
-rw-r--r--mod/bookmarks/views/default/forms/bookmarks/save.php2
-rw-r--r--mod/bookmarks/views/default/object/bookmarks.php42
-rw-r--r--mod/bookmarks/views/default/river/object/bookmarks/create.php31
-rw-r--r--mod/bookmarks/views/default/widgets/bookmarks/content.php1
-rw-r--r--mod/bookmarks/views/default/widgets/bookmarks/edit.php8
-rw-r--r--mod/bookmarks/views/rss/object/bookmarks.php36
20 files changed, 196 insertions, 133 deletions
diff --git a/mod/bookmarks/actions/bookmarks/delete.php b/mod/bookmarks/actions/bookmarks/delete.php
index 410a67bb7..2e9f41438 100644
--- a/mod/bookmarks/actions/bookmarks/delete.php
+++ b/mod/bookmarks/actions/bookmarks/delete.php
@@ -13,7 +13,7 @@ if (elgg_instanceof($bookmark, 'object', 'bookmarks') && $bookmark->canEdit()) {
if ($bookmark->delete()) {
system_message(elgg_echo("bookmarks:delete:success"));
if (elgg_instanceof($container, 'group')) {
- forward("bookmarks/group/$container->guid/owner");
+ forward("bookmarks/group/$container->guid/all");
} else {
forward("bookmarks/owner/$container->username");
}
diff --git a/mod/bookmarks/actions/bookmarks/save.php b/mod/bookmarks/actions/bookmarks/save.php
index 19bb3c73a..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);
}
diff --git a/mod/bookmarks/languages/en.php b/mod/bookmarks/languages/en.php
index e3f8cd64f..970b39415 100644
--- a/mod/bookmarks/languages/en.php
+++ b/mod/bookmarks/languages/en.php
@@ -9,7 +9,7 @@ $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",
@@ -23,10 +23,19 @@ $english = array(
'bookmarks:more' => "More",
'bookmarks:with' => "Share with",
'bookmarks:new' => "A new bookmark",
- 'bookmarks:via' => "via bookmarks",
- 'bookmarks:address' => "Address of the resource to 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 bookmarks to display',
@@ -35,10 +44,10 @@ $english = array(
'bookmarks:visit' => "Visit resource",
'bookmarks:recent' => "Recent bookmarks",
- 'bookmarks:river:created' => 'bookmarked %s',
+ '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' => '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,13 +77,14 @@ $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 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.",
);
diff --git a/mod/bookmarks/manifest.xml b/mod/bookmarks/manifest.xml
index 88921dcce..b95af87f8 100644
--- a/mod/bookmarks/manifest.xml
+++ b/mod/bookmarks/manifest.xml
@@ -5,15 +5,15 @@
<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/bookmarks/add.php b/mod/bookmarks/pages/bookmarks/add.php
index c7fd3cf79..d80d4a4bc 100644
--- a/mod/bookmarks/pages/bookmarks/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/bookmarks/all.php b/mod/bookmarks/pages/bookmarks/all.php
index 0978fd7fd..5c6011ad9 100644
--- a/mod/bookmarks/pages/bookmarks/all.php
+++ b/mod/bookmarks/pages/bookmarks/all.php
@@ -5,16 +5,22 @@
* @package ElggBookmarks
*/
-$offset = (int)get_input('offset', 0);
+elgg_pop_breadcrumb();
+elgg_push_breadcrumb(elgg_echo('bookmarks'));
+
+elgg_register_title_button();
+
$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(
diff --git a/mod/bookmarks/pages/bookmarks/edit.php b/mod/bookmarks/pages/bookmarks/edit.php
index 24513a960..93b143c36 100644
--- a/mod/bookmarks/pages/bookmarks/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/bookmarks/friends.php b/mod/bookmarks/pages/bookmarks/friends.php
index 6e3f77cf6..173996346 100644
--- a/mod/bookmarks/pages/bookmarks/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, "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/bookmarks/owner.php b/mod/bookmarks/pages/bookmarks/owner.php
index f12d1d83f..b7b907916 100644
--- a/mod/bookmarks/pages/bookmarks/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
));
diff --git a/mod/bookmarks/pages/bookmarks/view.php b/mod/bookmarks/pages/bookmarks/view.php
index 142e0b246..70a6a5bfe 100644
--- a/mod/bookmarks/pages/bookmarks/view.php
+++ b/mod/bookmarks/pages/bookmarks/view.php
@@ -6,13 +6,18 @@
*/
$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/owner");
+ elgg_push_breadcrumb($crumbs_title, "bookmarks/group/$page_owner->guid/all");
} else {
elgg_push_breadcrumb($crumbs_title, "bookmarks/owner/$page_owner->username");
}
@@ -21,14 +26,13 @@ $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 394c6c561..caea43587 100644
--- a/mod/bookmarks/start.php
+++ b/mod/bookmarks/start.php
@@ -35,14 +35,16 @@ function bookmarks_init() {
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',
@@ -54,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');
@@ -75,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:')) {
@@ -118,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();
@@ -150,7 +163,6 @@ function bookmarks_page_handler($page) {
}
elgg_pop_context();
-
return true;
}
@@ -220,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;
}
@@ -244,21 +256,15 @@ 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;
}
@@ -279,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');
@@ -292,3 +301,16 @@ function bookmarks_page_menu($hook, $type, $return, $params) {
return $return;
}
+
+/**
+ * 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 1d0b25498..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();
-
+$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 ff85c23ff..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' => "bookmarks/group/$group->guid/owner",
+ 'href' => "bookmarks/group/$group->guid/all",
'text' => elgg_echo('link:view:all'),
+ 'is_trusted' => true,
));
-$header = "<span class=\"groups-widget-viewall\">$all_link</span>";
-$header .= '<h3>' . elgg_echo('bookmarks:group') . '</h3>';
-
elgg_push_context('widgets');
$options = array(
'type' => 'object',
@@ -35,12 +33,15 @@ if (!$content) {
$content = '<p>' . elgg_echo('bookmarks:none') . '</p>';
}
-if ($group->canWriteToContainer()) {
- $new_link = elgg_view('output/url', array(
- 'href' => "bookmarks/add/$group->guid",
- 'text' => elgg_echo('bookmarks:add'),
- ));
- $content .= "<span class='elgg-widget-more'>$new_link</span>";
-}
+$new_link = elgg_view('output/url', array(
+ 'href' => "bookmarks/add/$group->guid",
+ 'text' => elgg_echo('bookmarks:add'),
+ 'is_trusted' => true,
+));
-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 0e55c510a..c36823c09 100644
--- a/mod/bookmarks/views/default/bookmarks/js.php
+++ b/mod/bookmarks/views/default/bookmarks/js.php
@@ -7,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_hook_handler('init', 'system', elgg.bookmarks.init);
diff --git a/mod/bookmarks/views/default/forms/bookmarks/save.php b/mod/bookmarks/views/default/forms/bookmarks/save.php
index 886283202..7d064a55b 100644
--- a/mod/bookmarks/views/default/forms/bookmarks/save.php
+++ b/mod/bookmarks/views/default/forms/bookmarks/save.php
@@ -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 5605e7277..83bae2b13 100644
--- a/mod/bookmarks/views/default/object/bookmarks.php
+++ b/mod/bookmarks/views/default/object/bookmarks.php
@@ -17,16 +17,16 @@ $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' => "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();
@@ -36,6 +36,7 @@ if ($comments_count != 0) {
$comments_link = elgg_view('output/url', array(
'href' => $bookmark->getURL() . '#comments',
'text' => $text,
+ 'is_trusted' => true,
));
} else {
$comments_link = '';
@@ -48,7 +49,7 @@ $metadata = elgg_view_menu('entity', array(
'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')) {
@@ -56,28 +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,
);
- $list_body = elgg_view('page/components/summary', $params);
- $bookmark_info = elgg_view_image_block($owner_icon, $list_body);
+ $params = $params + $vars;
+ $summary = elgg_view('object/elements/summary', $params);
- $bookmark_icon = elgg_view_icon('bookmark');
- echo <<<HTML
-$header
-$bookmark_info
+ $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">
@@ -103,21 +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,
);
-
- $body = elgg_view('page/components/summary', $params);
+ $params = $params + $vars;
+ $body = elgg_view('object/elements/summary', $params);
+
echo elgg_view_image_block($owner_icon, $body);
-} \ No newline at end of file
+}
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 ea7816345..0b85017fc 100644
--- a/mod/bookmarks/views/default/widgets/bookmarks/content.php
+++ b/mod/bookmarks/views/default/widgets/bookmarks/content.php
@@ -24,6 +24,7 @@ if ($content) {
$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;