[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
14082024
/
Data
/
htdocs
/
htdocs
/
ojs
/
kesmas
/
33018
/
lib
/
pkp
/
classes
/
user
/
[
Home
]
File: InterestManager.inc.php
<?php /** * @file classes/user/InterestManager.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class InterestManager * @ingroup user * @see InterestDAO * @brief Handle user interest functions. */ class InterestManager { /** * Constructor. */ function __construct() { } /** * Get all interests for all users in the system * @param $filter string * @return array */ function getAllInterests($filter = null) { $interestDao = DAORegistry::getDAO('InterestDAO'); /* @var $interestDao InterestDAO */ $interests = $interestDao->getAllInterests($filter); $interestReturner = array(); while($interest = $interests->next()) { $interestReturner[] = $interest->getInterest(); } return $interestReturner; } /** * Get user reviewing interests. (Cached in memory for batch fetches.) * @param $user User * @return array */ function getInterestsForUser($user) { static $interestsCache = array(); $interests = array(); $interestDao = DAORegistry::getDAO('InterestDAO'); /* @var $interestDao InterestDAO */ $interestEntryDao = DAORegistry::getDAO('InterestEntryDAO'); /* @var $interestEntryDao InterestEntryDAO */ $controlledVocab = $interestDao->build(); foreach($interestDao->getUserInterestIds($user->getId()) as $interestEntryId) { if (!isset($interestsCache[$interestEntryId])) { $interestsCache[$interestEntryId] = $interestEntryDao->getById( $interestEntryId, $controlledVocab->getId() ); } if (isset($interestsCache[$interestEntryId])) { $interests[] = $interestsCache[$interestEntryId]->getInterest(); } } return $interests; } /** * Returns a comma separated string of a user's interests * @param $user User * @return string */ function getInterestsString($user) { $interests = $this->getInterestsForUser($user); return implode(', ', $interests); } /** * Set a user's interests * @param $user User * @param $interests mixed */ 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()); } }