- $json_info = array(
- 'fn' => $a->profile['name'],
- 'key' => $a->profile['pubkey'],
- 'homepage' => $a->get_baseurl()."/profile/{$which}",
- 'comm' => (x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY),
- 'photo' => $a->profile['photo'],
- 'tags' => $keywords
- );
+ $contactPhoto = dba::selectFirst('contact', ['photo'], ['self' => true, 'uid' => $a->profile['uid']]);
+
+ $json_info = [
+ 'fn' => $a->profile['name'],
+ 'addr' => $a->profile['addr'],
+ 'nick' => $which,
+ 'guid' => $a->profile['guid'],
+ 'key' => $a->profile['pubkey'],
+ 'homepage' => System::baseUrl()."/profile/{$which}",
+ 'comm' => (x($a->profile, 'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY),
+ 'photo' => $contactPhoto["photo"],
+ 'tags' => $keywords
+ ];
+
+ if (is_array($a->profile) && !$a->profile['hide-friends']) {
+ /// @todo What should this value tell us?
+ $r = q("SELECT `gcontact`.`updated` FROM `contact` INNER JOIN `gcontact` WHERE `gcontact`.`nurl` = `contact`.`nurl` AND `self` AND `uid` = %d LIMIT 1",
+ intval($a->profile['uid']));
+ if (DBM::is_result($r)) {
+ $json_info["updated"] = date("c", strtotime($r[0]['updated']));
+ }
+
+ $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 AND `hidden` = 0 AND `archive` = 0
+ AND `network` IN ('%s', '%s', '%s', '')",
+ intval($a->profile['uid']),
+ dbesc(NETWORK_DFRN),
+ dbesc(NETWORK_DIASPORA),
+ dbesc(NETWORK_OSTATUS)
+ );
+ if (DBM::is_result($r)) {
+ $json_info["contacts"] = intval($r[0]['total']);
+ }
+ }
+
+ // We display the last activity (post or login), reduced to year and week number
+ $last_active = 0;
+ $condition = ['uid' => $a->profile['uid'], 'self' => true];
+ $contact = dba::selectFirst('contact', ['last-item'], $condition);
+ if (DBM::is_result($contact)) {
+ $last_active = strtotime($contact['last-item']);
+ }
+
+ $condition = ['uid' => $a->profile['uid']];
+ $user = dba::selectFirst('user', ['login_date'], $condition);
+ if (DBM::is_result($user)) {
+ if ($last_active < strtotime($user['login_date'])) {
+ $last_active = strtotime($user['login_date']);
+ }
+ }
+ $json_info["last-activity"] = date("o-W", $last_active);