X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FTag.php;h=a48f2cb92b6dc71308576e274d78d1fb45667dc1;hb=701dbdf7fc4979f05fde1c655b17ca3aff0a59e0;hp=3424a2377110d7e32aca51b9b864d2220038412d;hpb=b0086a49e2c28c528e178bcdd28203207feceef6;p=friendica.git diff --git a/src/Model/Tag.php b/src/Model/Tag.php index 3424a23771..a48f2cb92b 100644 --- a/src/Model/Tag.php +++ b/src/Model/Tag.php @@ -536,5 +536,41 @@ class Tag } return Strings::startsWithChars($tag, $tag_chars); - } + } + + /** + * Fetch user who subscribed to the given tag + * + * @param string $tag + * @return array User list + */ + private static function getUIDListByTag(string $tag) + { + $uids = []; + $searches = DBA::select('search', ['uid'], ['term' => $tag]); + while ($search = DBA::fetch($searches)) { + $uids[] = $search['uid']; + } + DBA::close($searches); + + return $uids; + } + + /** + * Fetch user who subscribed to the tags of the given item + * + * @param integer $uri_id + * @return array User list + */ + public static function getUIDListByURIId(int $uri_id) + { + $uids = []; + $tags = self::getByURIId($uri_id, [self::HASHTAG]); + + foreach ($tags as $tag) { + $uids = array_merge($uids, self::getUIDListByTag(self::TAG_CHARACTER[self::HASHTAG] . $tag['name'])); + } + + return array_unique($uids); + } }