17 import(
'lib.pkp.classes.controlledVocab.ControlledVocabDAO');
19 define(
'CONTROLLED_VOCAB_INTEREST',
'interest');
28 return parent::_build(CONTROLLED_VOCAB_INTEREST);
37 $controlledVocab = $this->
build();
39 'SELECT cve.controlled_vocab_entry_id FROM controlled_vocab_entries cve, user_interests ui WHERE cve.controlled_vocab_id = ? AND ui.controlled_vocab_entry_id = cve.controlled_vocab_entry_id AND ui.user_id = ?',
40 array((
int) $controlledVocab->getId(), (
int) $userId)
44 while (!$result->EOF) {
45 $row = $result->GetRowAssoc(
false);
46 $ids[] = $row[
'controlled_vocab_entry_id'];
62 FROM user_interests ui
63 INNER JOIN controlled_vocab_entry_settings cves ON (ui.controlled_vocab_entry_id = cves.controlled_vocab_entry_id)
64 WHERE cves.setting_name = ? AND cves.setting_value = ?',
65 array(
'interest', $interest)
69 while (!$result->EOF) {
70 $row = $result->GetRowAssoc(
false);
71 $returner[] = $row[
'user_id'];
85 $controlledVocab = $this->
build();
87 $iterator = $interestEntryDao->getByControlledVocabId($controlledVocab->getId(),
null, $filter);
90 $interests = $iterator->toArray();
91 usort($interests,
function($s1, $s2) {
92 return strcmp($s1->getInterest(), $s2->getInterest());
96 import(
'lib.pkp.classes.core.ArrayItemIterator');
107 $interests = isset($interests) ? $interests : array();
108 $interests = array_unique($interests);
111 $interests = array_map(
'trim', $interests);
115 'DELETE FROM user_interests WHERE user_id = ?',
120 $controlledVocab = $this->
build();
123 foreach ((array) $interests as $interest) {
124 $interestEntry = $interestEntryDao->getBySetting($interest, $controlledVocab->getSymbolic(),
125 $controlledVocab->getAssocId(), $controlledVocab->getAssocType(), $controlledVocab->getSymbolic()
128 if(!$interestEntry) {
129 $interestEntry = $interestEntryDao->newDataObject();
130 $interestEntry->setInterest($interest);
131 $interestEntry->setControlledVocabId($controlledVocab->getId());
132 $interestEntry->setId($interestEntryDao->insertObject($interestEntry));
136 'INSERT INTO user_interests (user_id, controlled_vocab_entry_id) VALUES (?, ?)',
137 array((
int) $userId, (
int) $interestEntry->getId())