| Server IP : 127.0.1.1 / Your IP : 216.73.216.60 Web Server : Apache/2.4.58 (Ubuntu) System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/public_html/lib/pkp/classes/user/ |
Upload File : |
<?php
/**
* @file classes/user/InterestEntryDAO.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 InterestsEntryDAO
* @ingroup user
* @see User
*
* @brief Operations for retrieving and modifying a user's review interests.
*/
import('lib.pkp.classes.user.InterestEntry');
import('lib.pkp.classes.controlledVocab.ControlledVocabEntryDAO');
class InterestEntryDAO extends ControlledVocabEntryDAO {
/**
* Construct a new data object corresponding to this DAO.
* @return PaperTypeEntry
*/
function newDataObject() {
return new InterestEntry();
}
/**
* Get the list of non-localized additional fields to store.
* @return array
*/
function getAdditionalFieldNames() {
return array('interest');
}
/**
* Retrieve an iterator of controlled vocabulary entries matching a
* particular controlled vocabulary ID.
* @param $controlledVocabId int
* @param $rangeInfo RangeInfo optional range information for result
* @param $filter string Optional filter to match to beginnings of results
* @return object DAOResultFactory containing matching CVE objects
*/
function getByControlledVocabId($controlledVocabId, $rangeInfo = null, $filter = null) {
$params = array((int) $controlledVocabId);
if ($filter) {
$params[] = 'interest';
$params[] = $filter . '%';
}
$result = $this->retrieveRange(
'SELECT cve.*
FROM controlled_vocab_entries cve
JOIN user_interests ui ON (cve.controlled_vocab_entry_id = ui.controlled_vocab_entry_id)
' . ($filter?'JOIN controlled_vocab_entry_settings cves ON (cves.controlled_vocab_entry_id = cve.controlled_vocab_entry_id)':'') . '
WHERE cve.controlled_vocab_id = ?
' . ($filter?'AND cves.setting_name=? AND LOWER(cves.setting_value) LIKE LOWER(?)':'') . '
GROUP BY cve.controlled_vocab_entry_id
ORDER BY seq',
$params,
$rangeInfo
);
return new DAOResultFactory($result, $this, '_fromRow');
}
/**
* Retrieve controlled vocab entries matching a list of vocab entry IDs
*
* @param $entryIds array
* @return DAOResultFactory
*/
public function getByIds($entryIds) {
$entryString = join(',', array_map('intval', $entryIds));
$result = $this->retrieve(
'SELECT * FROM controlled_vocab_entries WHERE controlled_vocab_entry_id IN (' . $entryString . ')'
);
return new DAOResultFactory($result, $this, '_fromRow');
}
}