aboutsummaryrefslogtreecommitdiffstats
path: root/include/activities.php
blob: 0894186359d3da76c867017b2cb2d5804d0dc06b (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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php /** @file */

function profile_activity($changed, $value) {
	$a = get_app();

	if(! local_user() || ! is_array($changed) || ! count($changed))
		return;

	if(! get_pconfig(local_user(),'system','post_profilechange'))
		return;

	require_once('include/items.php');

	$self = $a->get_channel();

	if(! count($self))
		return;

	$arr = array();
	$arr['uri']         = $arr['parent_uri'] = item_message_id();
	$arr['uid']         = local_user();
	$arr['aid']         = $self['channel_account_id'];
	$arr['owner_xchan'] = $arr['author_xchan'] = $self['xchan_hash'];
	$arr['item_flags']  = ITEM_WALL|ITEM_ORIGIN|ITEM_THREAD_TOP;
	$arr['verb']        = ACTIVITY_UPDATE;
	$arr['obj_type']    = ACTIVITY_OBJ_PROFILE;
				
	$A = '[url=' . z_root() . '/channel/' . $self['channel_address'] . ']' . $self['channel_name'] . '[/url]';


	$changes = '';
	$t = count($changed);
	$z = 0;
	foreach($changed as $ch) {
		if(strlen($changes)) {
			if ($z == ($t - 1))
				$changes .= t(' and ');
			else
				$changes .= ', ';
		}
		$z ++;
		$changes .= $ch;
	}

	$prof = '[url=' . z_root() . '/profile/' . $self['channel_address'] . ']' . t('public profile') . '[/url]';	

	if($t == 1 && strlen($value)) {
		$message = sprintf( t('%1$s changed %2$s to &ldquo;%3$s&rdquo;'), $A, $changes, $value);
		$message .= "\n\n" . sprintf( t('Visit %1$s\'s %2$s'), $A, $prof);
	}
	else
		$message = 	sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes);
 

	$arr['body'] = $message;  

	$links   = array();
	$links[] = array('rel' => 'alternate', 'type' => 'text/html', 
		'href' => z_root() . '/profile/' . $self['channel_address']);
	$links[] = array('rel' => 'photo', 'type' => $self['xchan_photo_mimetype'], 
		'href' => $self['xchan_photo_l']); 

	$arr['object'] = json_encode(array(
		'type'  => ACTIVITY_OBJ_PROFILE,
		'title' => $self['channel_name'],
		'id'    => $self['xchan_url'] . '/' . $self['xchan_hash'],
		'link'  => $links
	));

	
	$arr['allow_cid'] = $self['channel_allow_cid'];
	$arr['allow_gid'] = $self['channel_allow_gid'];
	$arr['deny_cid']  = $self['channel_deny_cid'];
	$arr['deny_gid']  = $self['channel_deny_gid'];

	$i = item_store($arr);

	if($i) {
		// FIXME - limit delivery in notifier.php to those specificed in the perms argument
	   	proc_run('php',"include/notifier.php","activity","$i", 'PERMS_R_PROFILE');
	}

}