X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FContact.php;h=2203b62162372e482e084e5eb0607a4a41b8720f;hb=940c8fc4cd77e013398a072b924adff880bb892a;hp=3708603ba33051cd5d2656e5b0f291843bff1ebf;hpb=5ba6c7717a06842c27fec15508ff8cabb3d9a31b;p=friendica.git diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 3708603ba3..2203b62162 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -12,7 +12,7 @@ use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBM; use Friendica\Network\Probe; -use Friendica\Object\Image; +use Friendica\Model\Photo; use Friendica\Protocol\Diaspora; use Friendica\Protocol\DFRN; use Friendica\Protocol\OStatus; @@ -27,6 +27,66 @@ require_once 'include/text.php'; */ class Contact extends BaseObject { + /** + * @brief Returns a list of contacts belonging in a group + * + * @param int $gid + * @return array + */ + public static function getByGroupId($gid) + { + $return = []; + if (intval($gid)) { + $stmt = dba::p('SELECT `group_member`.`contact-id`, `contact`.* + FROM `contact` + INNER JOIN `group_member` + ON `contact`.`id` = `group_member`.`contact-id` + WHERE `gid` = ? + AND `contact`.`uid` = ? + AND NOT `contact`.`self` + AND NOT `contact`.`blocked` + AND NOT `contact`.`pending` + ORDER BY `contact`.`name` ASC', + $gid, + local_user() + ); + if (DBM::is_result($stmt)) { + $return = dba::inArray($stmt); + } + } + + return $return; + } + + /** + * @brief Returns the count of OStatus contacts in a group + * + * @param int $gid + * @return int + */ + public static function getOStatusCountByGroupId($gid) + { + $return = 0; + if (intval($gid)) { + $contacts = dba::fetch_first('SELECT COUNT(*) AS `count` + FROM `contact` + INNER JOIN `group_member` + ON `contact`.`id` = `group_member`.`contact-id` + WHERE `gid` = ? + AND `contact`.`uid` = ? + AND `contact`.`network` = ? + AND `contact`.`notify` != ""', + $gid, + local_user(), + NETWORK_OSTATUS + ); + $return = $contacts['count']; + } + + return $return; + } + + /** * Creates the self-contact for the provided user id * @@ -36,11 +96,11 @@ class Contact extends BaseObject public static function createSelfFromUserId($uid) { // Only create the entry if it doesn't exist yet - if (dba::exists('contact', ['uid' => intval($uid), 'self'])) { + if (dba::exists('contact', ['uid' => $uid, 'self' => true])) { return true; } - $user = dba::select('user', ['uid', 'username', 'nickname'], ['uid' => intval($uid)], ['limit' => 1]); + $user = dba::select('user', ['uid', 'username', 'nickname'], ['uid' => $uid], ['limit' => 1]); if (!DBM::is_result($user)) { return false; } @@ -545,7 +605,9 @@ class Contact extends BaseObject AND NOT `pending` AND `id` NOT IN ( SELECT DISTINCT(`contact-id`) - FROM `group_member` WHERE `uid` = %d + FROM `group_member` + INNER JOIN `group` ON `group`.`id` = `group_member`.`gid` + WHERE `group`.`uid` = %d ) LIMIT %d, %d", intval($uid), intval($uid), intval($start), intval($count) ); @@ -921,7 +983,7 @@ class Contact extends BaseObject } if (($r["avatar"] != $avatar) || $force) { - $photos = Image::importProfilePhoto($avatar, $uid, $cid, true); + $photos = Photo::importProfilePhoto($avatar, $uid, $cid, true); if ($photos) { dba::update(