diff --git a/classes/search/ArticleSearch.php b/classes/search/ArticleSearch.php index ee3ee86dfd7..d3bb1c6e30a 100644 --- a/classes/search/ArticleSearch.php +++ b/classes/search/ArticleSearch.php @@ -23,12 +23,12 @@ use APP\core\Request; use APP\facades\Repo; use APP\issue\IssueAction; +use PKP\controlledVocab\ControlledVocab; use PKP\db\DAORegistry; use PKP\facades\Locale; use PKP\plugins\Hook; use PKP\search\SubmissionSearch; use PKP\submission\PKPSubmission; -use PKP\submission\SubmissionKeywordVocab; class ArticleSearch extends SubmissionSearch { @@ -334,7 +334,14 @@ public function getSimilarityTerms($submissionId) $article = Repo::submission()->get($submissionId); if ($article->getData('status') === PKPSubmission::STATUS_PUBLISHED) { // Retrieve keywords (if any). - $allSearchTerms = array_filter(SubmissionKeywordVocab::getKeywords($article->getCurrentPublication()->getId(), [Locale::getLocale(), $article->getData('locale'), Locale::getPrimaryLocale()])); + $allSearchTerms = array_filter( + Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_KEYWORD, + Application::ASSOC_TYPE_PUBLICATION, + $article->getCurrentPublication()->getId(), + [Locale::getLocale(), $article->getData('locale'), Locale::getPrimaryLocale()] + ) + ); foreach ($allSearchTerms as $locale => $localeSearchTerms) { $searchTerms += $localeSearchTerms; } diff --git a/plugins/importexport/doaj/filter/DOAJJsonFilter.php b/plugins/importexport/doaj/filter/DOAJJsonFilter.php index c4fa514d6af..ce0011000f8 100644 --- a/plugins/importexport/doaj/filter/DOAJJsonFilter.php +++ b/plugins/importexport/doaj/filter/DOAJJsonFilter.php @@ -20,9 +20,9 @@ use APP\facades\Repo; use APP\plugins\importexport\doaj\DOAJExportDeployment; use APP\plugins\importexport\doaj\DOAJExportPlugin; +use PKP\controlledVocab\ControlledVocab; use PKP\core\PKPString; use PKP\plugins\importexport\PKPImportExportFilter; -use PKP\submission\SubmissionKeywordVocab; class DOAJJsonFilter extends PKPImportExportFilter { @@ -175,7 +175,13 @@ public function &process(&$pubObject) $article['bibjson']['abstract'] = PKPString::html2text($abstract); } // Keywords - $keywords = SubmissionKeywordVocab::getKeywords($publication->getId(), [$publicationLocale]); + $keywords = Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_KEYWORD, + Application::ASSOC_TYPE_PUBLICATION, + $publication->getId(), + [$publicationLocale] + ); + $allowedNoOfKeywords = array_slice($keywords[$publicationLocale] ?? [], 0, 6); if (!empty($keywords[$publicationLocale])) { $article['bibjson']['keywords'] = $allowedNoOfKeywords; diff --git a/plugins/importexport/doaj/filter/DOAJXmlFilter.php b/plugins/importexport/doaj/filter/DOAJXmlFilter.php index 522ad0c7ea7..06624a950c3 100644 --- a/plugins/importexport/doaj/filter/DOAJXmlFilter.php +++ b/plugins/importexport/doaj/filter/DOAJXmlFilter.php @@ -20,9 +20,9 @@ use APP\plugins\importexport\doaj\DOAJExportPlugin; use APP\publication\Publication; use APP\submission\Submission; +use PKP\controlledVocab\ControlledVocab; use PKP\core\PKPString; use PKP\i18n\LocaleConversion; -use PKP\submission\SubmissionKeywordVocab; class DOAJXmlFilter extends \PKP\plugins\importexport\native\filter\NativeExportFilter { @@ -191,7 +191,12 @@ public function &process(&$pubObjects) // Keywords $supportedLocales = $context->getSupportedFormLocales(); - $articleKeywords = SubmissionKeywordVocab::getKeywords($publication->getId(), $supportedLocales); + $articleKeywords = Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_KEYWORD, + Application::ASSOC_TYPE_PUBLICATION, + $publication->getId(), + $supportedLocales + ); if (array_key_exists($publication->getData('locale'), $articleKeywords)) { $keywordsInArticleLocale = $articleKeywords[$publication->getData('locale')]; diff --git a/plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.php b/plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.php index ae50c911fcc..c9b07cd5567 100644 --- a/plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.php +++ b/plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.php @@ -28,6 +28,7 @@ use APP\oai\ojs\OAIDAO; use APP\plugins\PubIdPlugin; use APP\submission\Submission; +use PKP\controlledVocab\ControlledVocab; use PKP\core\PKPApplication; use PKP\db\DAORegistry; use PKP\facades\Locale; @@ -35,8 +36,6 @@ use PKP\metadata\MetadataDescription; use PKP\plugins\Hook; use PKP\plugins\PluginRegistry; -use PKP\submission\SubmissionKeywordVocab; -use PKP\submission\SubmissionSubjectVocab; class Dc11SchemaArticleAdapter extends MetadataDataObjectAdapter { @@ -92,8 +91,18 @@ public function &extractMetadataFromDataObject(&$article) // Subject $supportedLocales = $journal->getSupportedFormLocales(); $subjects = array_merge_recursive( - SubmissionKeywordVocab::getKeywords($publication->getId(), $supportedLocales), - SubmissionSubjectVocab::getSubjects($publication->getId(), $supportedLocales) + Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_KEYWORD, + Application::ASSOC_TYPE_PUBLICATION, + $publication->getId(), + $supportedLocales + ), + Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_SUBJECT, + Application::ASSOC_TYPE_PUBLICATION, + $publication->getId(), + $supportedLocales + ) ); $this->_addLocalizedElements($dc11Description, 'dc:subject', $subjects); diff --git a/plugins/oaiMetadataFormats/rfc1807/OAIMetadataFormat_RFC1807.php b/plugins/oaiMetadataFormats/rfc1807/OAIMetadataFormat_RFC1807.php index b1b73b50de2..e2d3bf7485b 100644 --- a/plugins/oaiMetadataFormats/rfc1807/OAIMetadataFormat_RFC1807.php +++ b/plugins/oaiMetadataFormats/rfc1807/OAIMetadataFormat_RFC1807.php @@ -17,11 +17,11 @@ namespace APP\plugins\oaiMetadataFormats\rfc1807; use APP\core\Application; +use APP\facades\Repo; use APP\issue\IssueAction; +use PKP\controlledVocab\ControlledVocab; use PKP\oai\OAIMetadataFormat; use PKP\oai\OAIUtils; -use PKP\submission\SubmissionKeywordVocab; -use PKP\submission\SubmissionSubjectVocab; class OAIMetadataFormat_RFC1807 extends OAIMetadataFormat { @@ -68,8 +68,18 @@ public function toXml($record, $format = null) // Subject $supportedLocales = $journal->getSupportedFormLocales(); $subjects = array_merge_recursive( - SubmissionKeywordVocab::getKeywords($publication->getId(), $supportedLocales), - SubmissionSubjectVocab::getSubjects($article->getCurrentPublication()->getId(), $supportedLocales) + Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_KEYWORD, + Application::ASSOC_TYPE_PUBLICATION, + $publication->getId(), + $supportedLocales + ), + Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_SUBJECT, + Application::ASSOC_TYPE_PUBLICATION, + $article->getCurrentPublication()->getId(), + $supportedLocales + ) ); $subject = $subjects[$journal->getPrimaryLocale()] ?? ''; diff --git a/plugins/reports/articles/ArticleReportPlugin.php b/plugins/reports/articles/ArticleReportPlugin.php index 857d32ddb76..97ee6836fce 100644 --- a/plugins/reports/articles/ArticleReportPlugin.php +++ b/plugins/reports/articles/ArticleReportPlugin.php @@ -16,17 +16,15 @@ namespace APP\plugins\reports\articles; +use APP\core\Application; use APP\decision\Decision; use APP\facades\Repo; +use PKP\controlledVocab\ControlledVocab; use PKP\facades\Locale; use PKP\plugins\ReportPlugin; use PKP\security\Role; use PKP\stageAssignment\StageAssignment; use PKP\submission\PKPSubmission; -use PKP\submission\SubmissionAgencyVocab; -use PKP\submission\SubmissionDisciplineVocab; -use PKP\submission\SubmissionKeywordVocab; -use PKP\submission\SubmissionSubjectVocab; class ArticleReportPlugin extends ReportPlugin { @@ -153,10 +151,29 @@ public function display($args, $request) $sectionTitles[$sectionId] = $section->getLocalizedTitle(); } - $subjects = SubmissionSubjectVocab::getSubjects($submission->getCurrentPublication()->getId()); - $disciplines = SubmissionDisciplineVocab::getDisciplines($submission->getCurrentPublication()->getId()); - $keywords = SubmissionKeywordVocab::getKeywords($submission->getCurrentPublication()->getId()); - $agencies = SubmissionAgencyVocab::getAgencies($submission->getCurrentPublication()->getId()); + $subjects = Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_SUBJECT, + Application::ASSOC_TYPE_PUBLICATION, + $submission->getCurrentPublication()->getId() + ); + + $disciplines = Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_DISCIPLINE, + Application::ASSOC_TYPE_PUBLICATION, + $submission->getCurrentPublication()->getId() + ); + + $keywords = Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_KEYWORD, + Application::ASSOC_TYPE_PUBLICATION, + $submission->getCurrentPublication()->getId() + ); + + $agencies = Repo::controlledVocab()->getBySymbolic( + ControlledVocab::CONTROLLED_VOCAB_SUBMISSION_AGENCY, + Application::ASSOC_TYPE_PUBLICATION, + $submission->getCurrentPublication()->getId() + ); // Store the submission results $results[] = [