X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FPost%2FCollection.php;h=34b5dc6dee7a2ae83b3e22075fbb0833083b5043;hb=6eb70bea165d4c3f88121456fd9e8bc2c3916b2b;hp=f7a1a996bbcaca58a50faefb06c17c3f44fb61b4;hpb=9339d4e53b8ce18031d488504a03bba662057dec;p=friendica.git diff --git a/src/Model/Post/Collection.php b/src/Model/Post/Collection.php index f7a1a996bb..34b5dc6dee 100644 --- a/src/Model/Post/Collection.php +++ b/src/Model/Post/Collection.php @@ -24,6 +24,8 @@ namespace Friendica\Model\Post; use Friendica\Database\DBA; use BadMethodCallException; use Friendica\Database\Database; +use Friendica\DI; +use Friendica\Protocol\ActivityPub; class Collection { @@ -34,14 +36,19 @@ class Collection * * @param integer $uri_id * @param integer $type + * @param integer $cache_uid If set to a non zero value, the featured cache is cleared */ - public static function add(int $uri_id, int $type) + public static function add(int $uri_id, int $type, int $cache_uid = 0) { if (empty($uri_id)) { throw new BadMethodCallException('Empty URI_id'); } DBA::insert('post-collection', ['uri-id' => $uri_id, 'type' => $type], Database::INSERT_IGNORE); + + if (!empty($cache_uid) && ($type == self::FEATURED)) { + DI::cache()->delete(ActivityPub\Transmitter::CACHEKEY_FEATURED . $cache_uid); + } } /** @@ -49,13 +56,31 @@ class Collection * * @param integer $uri_id * @param integer $type + * @param integer $cache_uid If set to a non zero value, the featured cache is cleared */ - public static function remove(int $uri_id, int $type) + public static function remove(int $uri_id, int $type, int $cache_uid = 0) { if (empty($uri_id)) { throw new BadMethodCallException('Empty URI_id'); } DBA::delete('post-collection', ['uri-id' => $uri_id, 'type' => $type]); + + if (!empty($cache_uid) && ($type == self::FEATURED)) { + DI::cache()->delete(ActivityPub\Transmitter::CACHEKEY_FEATURED . $cache_uid); + } + } + + /** + * Fetch collections for a given contact + * + * @param integer $cid + * @param [type] $type + * @param array $fields + * @return array + */ + public static function selectToArrayForContact(int $cid, int $type = self::FEATURED, array $fields = []) + { + return DBA::selectToArray('collection-view', $fields, ['cid' => $cid, 'type' => $type]); } }