36 if (empty($categoryIds))
42 ->setSelect([
'USER_ID',
'CATEGORY_ID'])
43 ->whereIn(
'USER_ID', [Common::SYSTEM_USER_ID, $this->userId])
44 ->whereIn(
'CATEGORY_ID', $categoryIds)
47 $mutedQueryResult = $mutedQuery->exec();
49 $mutedCategoryIds = [];
50 $defaultMutedCategoryIds = [];
51 while ($mute = $mutedQueryResult->fetchObject())
53 $userId = $mute->getUserId();
54 $categoryId = $mute->getCategoryId();
55 if ($userId === Common::SYSTEM_USER_ID)
57 $defaultMutedCategoryIds[$categoryId] = $categoryId;
61 $mutedCategoryIds[$categoryId] = $categoryId;
65 $mutes = array_map(
static function(
int $id) use ($defaultMutedCategoryIds, $mutedCategoryIds) {
66 $isMutedByDefault = isset($defaultMutedCategoryIds[$id]);
67 if ($isMutedByDefault)
69 $isUnmutedByUser = isset($mutedCategoryIds[$id]);
70 $isMuted = !$isUnmutedByUser;
74 $isMutedByUser = isset($mutedCategoryIds[$id]);
75 $isMuted = $isMutedByUser;
81 return array_combine($categoryIds, $mutes);