aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Widget/Activity.php
blob: 19f7acadb94743acb7a60324c0733193f5c29b25 (plain) (blame)
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
<?php

/**
 *   * Name: Activity
 *   * Description: Shows the unseen activity count per contact
 */

namespace Zotlabs\Widget;

class Activity {

	function widget($arr) {

		if(! local_channel())
			return '';

		$o = '';

		if(is_array($arr) && array_key_exists('limit',$arr))
			$limit = " limit " . intval($arr['limit']) . " ";
		else
			$limit = '';

		$perms_sql = item_permissions_sql(local_channel()) . item_normal();

		$r = q("select author_xchan from item where item_unseen = 1 and uid = %d $perms_sql",
			intval(local_channel())
		);

		$contributors = [];
		$arr = [];

		if($r) {
			foreach($r as $rv) {
				if(array_key_exists($rv['author_xchan'],$contributors)) {
					$contributors[$rv['author_xchan']] ++;
				}
				else {
					$contributors[$rv['author_xchan']] = 1;
				}
			}
			foreach($contributors as $k => $v) {
				$arr[] = [ 'author_xchan' => $k, 'total' => $v	];
			}
			usort($arr,'total_sort');
			xchan_query($arr);
		}

		$x = [ 'entries' => $arr ];
		call_hooks('activity_widget',$x);
		$arr = $x['entries'];

		if($arr) {
			$o .= '<div class="widget">';
			$o .= '<h3>' . t('Activity','widget') . '</h3><ul class="nav rounded-pill flex-column">';

			foreach($arr as $rv) {
				$o .= '<li class="nav-item"><a class="nav-link" href="network?f=&xchan=' . urlencode($rv['author_xchan']) . '" ><span class="badge bg-secondary float-end">' . ((intval($rv['total'])) ? intval($rv['total']) : '') . '</span><img src="' . $rv['author']['xchan_photo_s'] . '" class="menu-img-1" /> ' . $rv['author']['xchan_name'] . '</a></li>';
			}
			$o .= '</ul></div>';
		}
		return $o;
	}

}