17 import(
'lib.pkp.classes.controlledVocab.ControlledVocabDAO');
19 define(
'CONTROLLED_VOCAB_SUBMISSION_KEYWORD',
'submissionKeyword');
28 function build($publicationId) {
30 return parent::_build(CONTROLLED_VOCAB_SUBMISSION_KEYWORD, ASSOC_TYPE_PUBLICATION, $publicationId);
38 return array(
'submissionKeyword');
50 $keywords = $this->
build($publicationId);
52 $submissionKeywords = $submissionKeywordEntryDao->getByControlledVocabId($keywords->getId());
53 while ($keywordEntry = $submissionKeywords->next()) {
54 $keyword = $keywordEntry->getKeyword();
55 foreach ($keyword as $locale => $value) {
56 if (empty($locales) || in_array($locale, $locales)) {
57 if (!array_key_exists($locale, $result)) {
58 $result[$locale] = [];
60 $result[$locale][] = $value;
76 'SELECT DISTINCT setting_value FROM controlled_vocab_entry_settings WHERE setting_name = ?', CONTROLLED_VOCAB_SUBMISSION_KEYWORD
79 while (!$result->EOF) {
80 $keywords[] = $result->fields[0];
102 $currentKeywords = $this->
build($publicationId);
104 if (is_array($keywords)) {
106 foreach ($keywords as $locale => $list) {
107 if (is_array($list)) {
108 $list = array_unique($list);
110 foreach ($list as $keyword) {
111 $keywordEntry = $submissionKeywordEntryDao->newDataObject();
112 $keywordEntry->setControlledVocabId($currentKeywords->getId());
113 $keywordEntry->setKeyword(urldecode($keyword), $locale);
114 $keywordEntry->setSequence($i);
116 $submissionKeywordEntryDao->insertObject($keywordEntry);
132 $currentKeywords = $this->
build($publicationId);
134 $existingEntries = $keywordDao->enumerate($currentKeywords->getId(), CONTROLLED_VOCAB_SUBMISSION_KEYWORD);
135 foreach ($existingEntries as $id => $entry) {
136 $entry = trim($entry);
137 $entryObj = $submissionKeywordEntryDao->getById($id);
138 $submissionKeywordEntryDao->deleteObjectById($id);
141 return $currentKeywords;