17 import(
'lib.pkp.classes.controlledVocab.ControlledVocabDAO');
19 define(
'CONTROLLED_VOCAB_SUBMISSION_LANGUAGE',
'submissionLanguage');
28 function build($publicationId) {
30 return parent::_build(CONTROLLED_VOCAB_SUBMISSION_LANGUAGE, ASSOC_TYPE_PUBLICATION, $publicationId);
38 return array(
'submissionLanguage');
50 $languages = $this->
build($publicationId);
52 $submissionLanguages = $submissionLanguageEntryDao->getByControlledVocabId($languages->getId());
53 while ($languageEntry = $submissionLanguages->next()) {
54 $language = $languageEntry->getLanguage();
55 foreach ($language 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_LANGUAGE
79 while (!$result->EOF) {
80 $languages[] = $result->fields[0];
98 $currentLanguages = $this->
build($publicationId);
101 $existingEntries = $languageDao->enumerate($currentLanguages->getId(), CONTROLLED_VOCAB_SUBMISSION_LANGUAGE);
103 foreach ($existingEntries as $id => $entry) {
104 $entry = trim($entry);
105 $submissionLanguageEntryDao->deleteObjectById($id);
108 if (is_array($languages)) {
110 foreach ($languages as $locale => $list) {
111 if (is_array($list)) {
112 $list = array_unique($list);
114 foreach ($list as $language) {
115 $languageEntry = $submissionLanguageEntryDao->newDataObject();
116 $languageEntry->setControlledVocabId($currentLanguages->getId());
117 $languageEntry->setLanguage(urldecode($language), $locale);
118 $languageEntry->setSequence($i);
120 $submissionLanguageEntryDao->insertObject($languageEntry);