+ $data = ['@context' => self::CONTEXT];
+ $data['id'] = System::baseUrl() . '/followers/' . $owner['nickname'];
+ $data['type'] = 'OrderedCollection';
+ $data['totalItems'] = $count;
+
+ // When we hide our friends we will only show the pure number but don't allow more.
+ $profile = Profile::getByUID($owner['uid']);
+ if (!empty($profile['hide-friends'])) {
+ return $data;
+ }
+
+ if (empty($page)) {
+ $data['first'] = System::baseUrl() . '/followers/' . $owner['nickname'] . '?page=1';
+ } else {
+ $list = [];
+
+ $contacts = DBA::select('contact', ['url'], $condition, ['limit' => [($page - 1) * 100, 100]]);
+ while ($contact = DBA::fetch($contacts)) {
+ $list[] = $contact['url'];
+ }
+
+ if (!empty($list)) {
+ $data['next'] = System::baseUrl() . '/followers/' . $owner['nickname'] . '?page=' . ($page + 1);
+ }
+
+ $data['partOf'] = System::baseUrl() . '/followers/' . $owner['nickname'];
+
+ $data['orderedItems'] = $list;
+ }
+
+ return $data;
+ }
+
+ /**
+ * @brief Create list of following contacts
+ *
+ * @param array $owner Owner array
+ * @param integer $page Page numbe
+ *
+ * @return array of following contacts
+ */
+ public static function getFollowing($owner, $page = null)
+ {
+ $condition = ['rel' => [Contact::SHARING, Contact::FRIEND], 'network' => Protocol::NATIVE_SUPPORT, 'uid' => $owner['uid'],
+ 'self' => false, 'hidden' => false, 'archive' => false, 'pending' => false];
+ $count = DBA::count('contact', $condition);
+
+ $data = ['@context' => self::CONTEXT];
+ $data['id'] = System::baseUrl() . '/following/' . $owner['nickname'];
+ $data['type'] = 'OrderedCollection';
+ $data['totalItems'] = $count;
+
+ // When we hide our friends we will only show the pure number but don't allow more.
+ $profile = Profile::getByUID($owner['uid']);
+ if (!empty($profile['hide-friends'])) {
+ return $data;
+ }
+
+ if (empty($page)) {
+ $data['first'] = System::baseUrl() . '/following/' . $owner['nickname'] . '?page=1';
+ } else {
+ $list = [];
+
+ $contacts = DBA::select('contact', ['url'], $condition, ['limit' => [($page - 1) * 100, 100]]);
+ while ($contact = DBA::fetch($contacts)) {
+ $list[] = $contact['url'];
+ }
+
+ if (!empty($list)) {
+ $data['next'] = System::baseUrl() . '/following/' . $owner['nickname'] . '?page=' . ($page + 1);
+ }
+
+ $data['partOf'] = System::baseUrl() . '/following/' . $owner['nickname'];
+
+ $data['orderedItems'] = $list;