getAllInterests($filter); $interestReturner = []; while ($interest = $interests->next()) { $interestReturner[] = $interest->getInterest(); } return $interestReturner; } /** * Get user reviewing interests. (Cached in memory for batch fetches.) */ public function getInterestsForUser(User $user): array { static $interestsCache = []; $interests = []; $interestDao = DAORegistry::getDAO('InterestDAO'); /** @var InterestDAO $interestDao */ $interestEntryDao = DAORegistry::getDAO('InterestEntryDAO'); /** @var InterestEntryDAO $interestEntryDao */ $controlledVocab = $interestDao->build(); foreach ($interestDao->getUserInterestIds($user->getId()) as $interestEntryId) { /** @var InterestEntry */ $interestEntry = $interestsCache[$interestEntryId] ??= $interestEntryDao->getById( $interestEntryId, $controlledVocab->getId() ); if ($interestEntry) { $interests[] = $interestEntry->getInterest(); } } return $interests; } /** * Returns a comma separated string of a user's interests * * @param User $user * * @return string */ public function getInterestsString($user) { $interests = $this->getInterestsForUser($user); return implode(', ', $interests); } /** * Set a user's interests * * @param User $user */ public function setInterestsForUser($user, $interests) { $interestDao = DAORegistry::getDAO('InterestDAO'); /** @var InterestDAO $interestDao */ $interests = is_array($interests) ? $interests : (empty($interests) ? null : explode(',', $interests)); $interestDao->setUserInterests($interests, $user->getId()); } } if (!PKP_STRICT_MODE) { class_alias('\PKP\user\InterestManager', '\InterestManager'); }