| Server IP : 10.10.92.66 / Your IP : 104.23.243.85 Web Server : Apache/2.4.52 (Ubuntu) System : Linux jurnalpolinema 5.15.0-177-generic #187-Ubuntu SMP Sat Apr 11 22:54:33 UTC 2026 x86_64 User : jurnal ( 1001) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/jurnal/public_html/lib/pkp/classes/user/ |
Upload File : |
<?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());
}
}