diff options
Diffstat (limited to 'mod/bookmarks')
| -rw-r--r-- | mod/bookmarks/actions/bookmarks/save.php | 4 | ||||
| -rw-r--r-- | mod/bookmarks/languages/en.php | 17 | ||||
| -rw-r--r-- | mod/bookmarks/manifest.xml | 7 | ||||
| -rw-r--r-- | mod/bookmarks/pages/bookmarks/all.php | 9 | ||||
| -rw-r--r-- | mod/bookmarks/pages/bookmarks/friends.php | 11 | ||||
| -rw-r--r-- | mod/bookmarks/pages/bookmarks/owner.php | 6 | ||||
| -rw-r--r-- | mod/bookmarks/pages/bookmarks/view.php | 6 | ||||
| -rw-r--r-- | mod/bookmarks/start.php | 57 | ||||
| -rw-r--r-- | mod/bookmarks/views/default/bookmarks/bookmarklet.php | 9 | ||||
| -rw-r--r-- | mod/bookmarks/views/default/bookmarks/js.php | 2 | ||||
| -rw-r--r-- | mod/bookmarks/views/default/object/bookmarks.php | 22 | ||||
| -rw-r--r-- | mod/bookmarks/views/default/river/object/bookmarks/create.php | 2 | ||||
| -rw-r--r-- | mod/bookmarks/views/default/widgets/bookmarks/edit.php | 8 | ||||
| -rw-r--r-- | mod/bookmarks/views/rss/object/bookmarks.php | 36 |
14 files changed, 124 insertions, 72 deletions
diff --git a/mod/bookmarks/actions/bookmarks/save.php b/mod/bookmarks/actions/bookmarks/save.php index f240c4b26..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'); diff --git a/mod/bookmarks/languages/en.php b/mod/bookmarks/languages/en.php index 0478e292f..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 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', @@ -68,14 +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 nto be saved.", + '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 72e9af9b0..b95af87f8 100644 --- a/mod/bookmarks/manifest.xml +++ b/mod/bookmarks/manifest.xml @@ -10,11 +10,10 @@ <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/all.php b/mod/bookmarks/pages/bookmarks/all.php index d9ac2767f..5c6011ad9 100644 --- a/mod/bookmarks/pages/bookmarks/all.php +++ b/mod/bookmarks/pages/bookmarks/all.php @@ -10,16 +10,17 @@ 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( diff --git a/mod/bookmarks/pages/bookmarks/friends.php b/mod/bookmarks/pages/bookmarks/friends.php index 3491090a5..173996346 100644 --- a/mod/bookmarks/pages/bookmarks/friends.php +++ b/mod/bookmarks/pages/bookmarks/friends.php @@ -5,16 +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'); } @@ -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/bookmarks/owner.php b/mod/bookmarks/pages/bookmarks/owner.php index 679c986be..b7b907916 100644 --- a/mod/bookmarks/pages/bookmarks/owner.php +++ b/mod/bookmarks/pages/bookmarks/owner.php @@ -6,18 +6,18 @@ */ $page_owner = elgg_get_page_owner_entity(); +if (!$page_owner) { + forward('', '404'); +} elgg_push_breadcrumb($page_owner->name); elgg_register_title_button(); -$offset = (int)get_input('offset', 0); $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 8e097b090..70a6a5bfe 100644 --- a/mod/bookmarks/pages/bookmarks/view.php +++ b/mod/bookmarks/pages/bookmarks/view.php @@ -6,6 +6,11 @@ */ $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(); @@ -28,7 +33,6 @@ $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 2a7b44e97..caea43587 100644 --- a/mod/bookmarks/start.php +++ b/mod/bookmarks/start.php @@ -56,6 +56,9 @@ function bookmarks_init() { // Listen to notification events and supply a more useful message elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'bookmarks_notify_message'); + // Register bookmarks view for ecml parsing + elgg_register_plugin_hook_handler('get_views', 'ecml', 'bookmarks_ecml_views_hook'); + // Register a URL handler for bookmarks elgg_register_entity_url_handler('object', 'bookmarks', 'bookmark_url'); @@ -83,10 +86,16 @@ function bookmarks_init() { * 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'); // old group usernames @@ -119,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(); @@ -151,7 +163,6 @@ function bookmarks_page_handler($page) { } elgg_pop_context(); - return true; } @@ -245,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; } @@ -280,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'); @@ -293,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/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/object/bookmarks.php b/mod/bookmarks/views/default/object/bookmarks.php index 784263232..83bae2b13 100644 --- a/mod/bookmarks/views/default/object/bookmarks.php +++ b/mod/bookmarks/views/default/object/bookmarks.php @@ -27,7 +27,6 @@ $owner_link = elgg_view('output/url', array( )); $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(); @@ -50,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')) { @@ -58,29 +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, ); $params = $params + $vars; - $list_body = elgg_view('object/elements/summary', $params); - $bookmark_info = elgg_view_image_block($owner_icon, $list_body); + $summary = elgg_view('object/elements/summary', $params); $bookmark_icon = elgg_view_icon('push-pin-alt'); - echo <<<HTML -$header -$bookmark_info + $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"> @@ -117,11 +118,10 @@ HTML; 'entity' => $bookmark, 'metadata' => $metadata, 'subtitle' => $subtitle, - 'tags' => $tags, 'content' => $content, ); $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 984d109be..388f54ac9 100644 --- a/mod/bookmarks/views/default/river/object/bookmarks/create.php +++ b/mod/bookmarks/views/default/river/object/bookmarks/create.php @@ -8,7 +8,7 @@ $object = $vars['item']->getObjectEntity(); $excerpt = elgg_get_excerpt($object->description); -echo elgg_view('river/item', array( +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/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; |
