aboutsummaryrefslogtreecommitdiff
path: root/mod/riverdashboard/views/default/river/item/wrapper.php
blob: eabe48e5398b9f412d2f767c700263a295477fd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
/**
 * Elgg river item wrapper.
 * Wraps all river items.
 */

//set required variables
$object = get_entity($vars['item']->object_guid);
//get object url
$object_url = $object->getURL();
//user
//if displaying on the profile get the object owner, else the subject_guid
if(get_context() == 'profile' && $object->getSubtype() ==  'thewire')
	$user = get_entity($object->owner_guid);
else
	$user = get_entity($vars['item']->subject_guid);

//get the right annotation type
//*todo - use the same for comments, everywhere e.g. comment
switch($vars['item']->subtype){
	case 'thewire':
	$annotation_comment = 'wire_reply';
	break;
	default:
	$annotation_comment = 'generic_comment';
	break;
}

//count comment annotations
$comment_count = count_annotations($vars['item']->object_guid, $vars['item']->type, $vars['item']->subtype, $annotation_comment);

//count like annotations
$likes = count_annotations($vars['item']->object_guid, $vars['item']->type, $vars['item']->subtype, "likes");

//get last two comments display
$get_comments = get_annotations($vars['item']->object_guid, "", "", $annotation_comment, "", "", 3, 0, "desc");

if($get_comments){
	//reverse the array so we can display comments in the right order
	$get_comments = array_reverse($get_comments);	
}

//minus two off the comment total as we display two by default
if($comment_count < 3)
	$num_comments = 0;
else
	$num_comments = $comment_count - 3;
?>
<div class="river_item">
	<span class="river_item_useravatar">
		<?php echo elgg_view("profile/icon",array('entity' => $user, 'size' => 'small')); ?>
	</span>
	<div class="river_item_contents clearfloat">
		<!-- body contents, generated by the river view in each plugin -->
		<?php echo $vars['body']; ?>
	</div>
	
<!-- display comments -->
<?php
	//display latest 2 comments if there are any
	if($get_comments){
		$counter = 0;
		$background = "";
		echo "<div class='river_comments'>";
			
		//display the number of comments if there are any
		if($num_comments != 0){
			//set the correct context comment or comments
			if($num_comments == 1)
				echo "<a class='river_more_comments' href=\"{$object_url}\">+{$num_comments} more comment</a>";
			else
				echo "<a class='river_more_comments' href=\"{$object_url}\">+{$num_comments} more comments</a>";
		}
			
		foreach($get_comments as $gc){
			//get the comment owner
			$comment_owner = get_user($gc->owner_guid);
			//get the comment owner's profile url
			$comment_owner_url = $comment_owner->getURL();
			// color-code each of the 3 comments
			if( ($counter == 2 && $comment_count >= 4) || ($counter == 1 && $comment_count == 2) || ($counter == 0 && $comment_count == 1) || ($counter == 2 && $comment_count == 3) )
				$alt = 'latest';
			else if( ($counter == 1 && $comment_count >= 4) || ($counter == 0 && $comment_count == 2) || ($counter == 1 && $comment_count == 3) )
				$alt = 'penultimate';
			
			//display comment
			echo "<div class='river_comment {$alt} clearfloat'>";
			echo "<span class='river_comment_owner_icon'>";
			echo elgg_view("profile/icon",array('entity' => $comment_owner, 'size' => 'tiny'));
			echo "</span>";
			//truncate comment to 150 characters
			if(strlen($gc->value) > 150) {
		        	$gc->value = substr($gc->value, 0, strpos($gc->value, ' ', 150)) . "...";
		    }
			$contents = strip_tags($gc->value);
		    echo "<div class='river_comment_contents'>";
			echo "<a href=\"{$comment_owner_url}\">" . $comment_owner->name . "</a> " . parse_urls($contents);
			echo "<span class='entity_subtext'>" . friendly_time($gc->time_created) . "</span>";
			echo "</div></div>";
			$counter++;
		}
			echo "</div>";
		}
			//display the comment link
		if($vars['item']->type != 'user'){
			//for now don't display the comment link on bookmarks and wire messages
			if($vars['item']->subtype != 'thewire' && $vars['item']->subtype != 'bookmarks' && $vars['item']->subtype != '')
				echo "<a class='comment_link' href=\"{$object_url}\">Comment</a>";
			}
		?>
</div>