17 import(
'lib.pkp.classes.controlledVocab.ControlledVocabEntry');
35 function getById($controlledVocabEntryId, $controlledVocabId =
null) {
36 $params = array((
int) $controlledVocabEntryId);
37 if (!empty($controlledVocabId)) $params[] = (int) $controlledVocabId;
40 'SELECT * FROM controlled_vocab_entries WHERE controlled_vocab_entry_id = ?' .
41 (!empty($controlledVocabId)?
' AND controlled_vocab_id = ?':
''),
46 if ($result->RecordCount() != 0) {
47 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
64 function getBySetting($settingValue, $symbolic, $assocType = 0, $assocId = 0, $settingName =
'name', $locale =
'') {
67 FROM controlled_vocabs cv
68 INNER JOIN controlled_vocab_entries cve ON cv.controlled_vocab_id = cve.controlled_vocab_id
69 INNER JOIN controlled_vocab_entry_settings cves ON cve.controlled_vocab_entry_id = cves.controlled_vocab_entry_id
70 WHERE cves.setting_name = ? AND
72 cves.setting_value = ? AND
76 array($settingName, $locale, $settingValue, $symbolic, $assocType, $assocId)
80 if ($result->RecordCount() != 0) {
81 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
103 $controlledVocabEntry->setControlledVocabId($row[
'controlled_vocab_id']);
104 $controlledVocabEntry->setId($row[
'controlled_vocab_entry_id']);
105 $controlledVocabEntry->setSequence($row[
'seq']);
107 $this->
getDataObjectSettings(
'controlled_vocab_entry_settings',
'controlled_vocab_entry_id', $row[
'controlled_vocab_entry_id'], $controlledVocabEntry);
109 return $controlledVocabEntry;
117 return array(
'name');
126 'controlled_vocab_entry_id' => $controlledVocabEntry->getId()
137 'INSERT INTO controlled_vocab_entries (controlled_vocab_id, seq)
140 (
int) $controlledVocabEntry->getControlledVocabId(),
141 (
float) $controlledVocabEntry->getSequence()
144 $controlledVocabEntry->setId($this->
getInsertId());
146 return (
int)$controlledVocabEntry->getId();
162 $params = array((
int) $controlledVocabEntryId);
163 $this->
update(
'DELETE FROM controlled_vocab_entry_settings WHERE controlled_vocab_entry_id = ?', $params);
164 $this->
update(
'DELETE FROM controlled_vocab_entries WHERE controlled_vocab_entry_id = ?', $params);
174 $params = array((
int) $controlledVocabId);
175 if (!empty($filter)) $params[] =
"%$filter%";
179 FROM controlled_vocab_entries cve '.
180 (!empty($filter) ?
'INNER JOIN controlled_vocab_entry_settings cves ON cve.controlled_vocab_entry_id = cves.controlled_vocab_entry_id ' :
'') .
181 'WHERE controlled_vocab_id = ? ' .
182 (!empty($filter) ?
'AND cves.setting_value LIKE ? ' :
'') .
204 FROM controlled_vocab_entries AS cve
205 LEFT JOIN controlled_vocabs AS cv ON (cv.controlled_vocab_id = cve.controlled_vocab_id)
206 LEFT JOIN controlled_vocab_entry_settings AS cves ON (cves.controlled_vocab_entry_id = cve.controlled_vocab_entry_id)
207 LEFT JOIN publications as p ON (p.publication_id = cv.assoc_id)
208 LEFT JOIN submissions AS s ON (s.submission_id = p.submission_id)
209 WHERE cv.symbolic = ?
210 AND cv.assoc_type = ?
213 ORDER BY cve.seq DESC',
216 ASSOC_TYPE_PUBLICATION,
231 'UPDATE controlled_vocab_entries
232 SET controlled_vocab_id = ?,
234 WHERE controlled_vocab_entry_id = ?',
236 (
int) $controlledVocabEntry->getControlledVocabId(),
237 (
float) $controlledVocabEntry->getSequence(),
238 (
int) $controlledVocabEntry->getId()
250 'SELECT controlled_vocab_entry_id FROM controlled_vocab_entries WHERE controlled_vocab_id = ? ORDER BY seq',
251 array((
int) $controlledVocabId)
254 for ($i=1; !$result->EOF; $i++) {
255 list($controlledVocabEntryId) = $result->fields;
257 'UPDATE controlled_vocab_entries SET seq = ? WHERE controlled_vocab_entry_id = ?',
260 (
int) $controlledVocabEntryId
275 return parent::_getInsertId(
'controlled_vocab_entries',
'controlled_vocab_entry_id');