aboutsummaryrefslogtreecommitdiff
path: root/mod/bookmarks/views/default/object/bookmarks.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bookmarks/views/default/object/bookmarks.php')
-rw-r--r--mod/bookmarks/views/default/object/bookmarks.php175
1 files changed, 109 insertions, 66 deletions
diff --git a/mod/bookmarks/views/default/object/bookmarks.php b/mod/bookmarks/views/default/object/bookmarks.php
index fbb00e545..83bae2b13 100644
--- a/mod/bookmarks/views/default/object/bookmarks.php
+++ b/mod/bookmarks/views/default/object/bookmarks.php
@@ -1,84 +1,127 @@
<?php
/**
* Elgg bookmark view
- *
+ *
* @package ElggBookmarks
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
*/
-$owner = $vars['entity']->getOwnerEntity();
-$friendlytime = friendly_time($vars['entity']->time_created);
-$parsed_url = parse_url($vars['entity']->address);
-$faviconurl = $parsed_url['scheme'] . "://" . $parsed_url['host'] . "/favicon.ico";
-
-//sort out the access level for display
-$object_acl = get_readable_access_level($vars['entity']->access_id);
-//files with these access level don't need an icon
-$general_access = array('Public', 'Logged in users', 'Friends');
-//set the right class for access level display - need it to set on groups and shared access only
-$is_group = get_entity($vars['entity']->container_guid);
-if($is_group instanceof ElggGroup){
- //get the membership type open/closed
- $membership = $is_group->membership;
- //we decided to show that the item is in a group, rather than its actual access level
- $object_acl = "Group: " . $is_group->name;
- if($membership == 2)
- $access_level = "class='access_level group_open'";
- else
- $access_level = "class='access_level group_closed'";
-}elseif($object_acl == 'Private'){
- $access_level = "class='access_level private'";
-}else{
- if(!in_array($object_acl, $general_access))
- $access_level = "class='access_level shared_collection'";
- else
- $access_level = "class='access_level entity_access'";
+$full = elgg_extract('full_view', $vars, FALSE);
+$bookmark = elgg_extract('entity', $vars, FALSE);
+
+if (!$bookmark) {
+ return;
}
-if($vars['entity']->description != '')
- $view_notes = "<a class='link' onclick=\"elgg_slide_toggle(this,'.entity_listing','.note');\">note</a>";
-else
- $view_notes = '';
-if (@file_exists($faviconurl)) {
- $icon = "<img src=\"{$faviconurl}\" />";
+$owner = $bookmark->getOwnerEntity();
+$owner_icon = elgg_view_entity_icon($owner, 'tiny');
+$container = $bookmark->getContainerEntity();
+$categories = elgg_view('output/categories', $vars);
+
+$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));
+
+$date = elgg_view_friendly_time($bookmark->time_created);
+
+$comments_count = $bookmark->countComments();
+//only display if there are commments
+if ($comments_count != 0) {
+ $text = elgg_echo("comments") . " ($comments_count)";
+ $comments_link = elgg_view('output/url', array(
+ 'href' => $bookmark->getURL() . '#comments',
+ 'text' => $text,
+ 'is_trusted' => true,
+ ));
} else {
- $icon = elgg_view("profile/icon", array('entity' => $owner,'size' => 'tiny',));
+ $comments_link = '';
}
+$metadata = elgg_view_menu('entity', array(
+ 'entity' => $vars['entity'],
+ 'handler' => 'bookmarks',
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
+));
+
+$subtitle = "$author_text $date $comments_link $categories";
-//delete
-if($vars['entity']->canEdit()){
-$delete .= "<span class='delete_button'>" . elgg_view('output/confirmlink',array(
- 'href' => $vars['url'] . "action/bookmarks/delete?bookmark_guid=" . $vars['entity']->guid,
- 'text' => elgg_echo("delete"),
- 'confirm' => elgg_echo("bookmarks:delete:confirm"),
- )) . "</span>";
+// do not show the metadata and controls in widget view
+if (elgg_in_context('widgets')) {
+ $metadata = '';
}
- $info = "<div class='entity_metadata'><span {$access_level}>{$object_acl}</span>";
+if ($full && !elgg_in_context('gallery')) {
-//include edit and delete options
-if($vars['entity']->canEdit()){
- $info .= "<span class='entity_edit'><a href=\"{$vars['url']}pg/bookmarks/{$owner->username}/edit/{$vars['entity']->getGUID()}\">" . elgg_echo('edit') . "</a></span>";
- // include a view for plugins to extend
- $info .= elgg_view("bookmarks/options",array('entity' => $vars['entity']));
- $info .= $delete;
-}
- $info .= "</div>";
+ $params = array(
+ 'entity' => $bookmark,
+ 'title' => false,
+ 'metadata' => $metadata,
+ 'subtitle' => $subtitle,
+ );
+ $params = $params + $vars;
+ $summary = elgg_view('object/elements/summary', $params);
-$info .= "<p class='entity_title'><a href=\"{$vars['entity']->address}\" target=\"_blank\">{$vars['entity']->title}</a></p>";
-$info .= "<p class='entity_subtext'>Bookmarked by <a href=\"{$vars['url']}pg/bookmarks/{$owner->username}\">{$owner->name}</a> {$friendlytime} {$view_notes}</p>";
+ $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;
-$tags = elgg_view('output/tags', array('tags' => $vars['entity']->tags));
-if (!empty($tags)) {
- $info .= '<p class="tags">' . $tags . '</p>';
-}
-if($view_notes != ''){
- $info .= "<div class='note hidden'>". $vars['entity']->description . "</div>";
-}
+ 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">
+ <h3>$bookmark->title</h3>
+ <p class='subtitle'>$owner_link $date</p>
+</div>
+HTML;
+} else {
+ // brief view
+ $url = $bookmark->address;
+ $display_text = $url;
+ $excerpt = elgg_get_excerpt($bookmark->description);
+ if ($excerpt) {
+ $excerpt = " - $excerpt";
+ }
+
+ if (strlen($url) > 25) {
+ $bits = parse_url($url);
+ if (isset($bits['host'])) {
+ $display_text = $bits['host'];
+ } else {
+ $display_text = elgg_get_excerpt($url, 100);
+ }
+ }
+
+ $link = elgg_view('output/url', array(
+ 'href' => $bookmark->address,
+ 'text' => $display_text,
+ ));
+
+ $content = elgg_view_icon('push-pin-alt') . "$link{$excerpt}";
+
+ $params = array(
+ 'entity' => $bookmark,
+ 'metadata' => $metadata,
+ 'subtitle' => $subtitle,
+ 'content' => $content,
+ );
+ $params = $params + $vars;
+ $body = elgg_view('object/elements/summary', $params);
-//display
-echo elgg_view_listing($icon, $info); \ No newline at end of file
+ echo elgg_view_image_block($owner_icon, $body);
+}