File Manager
Upload
Current Directory: /home/lartcid/public_html/journal.lartc.id
[Back]
..
[Open]
Hapus
Rename
.htaccess
[Edit]
Hapus
Rename
.well-known
[Open]
Hapus
Rename
README.md
[Edit]
Hapus
Rename
api
[Open]
Hapus
Rename
cache
[Open]
Hapus
Rename
cgi-bin
[Open]
Hapus
Rename
classes
[Open]
Hapus
Rename
config.TEMPLATE.inc.php
[Edit]
Hapus
Rename
config.inc.php
[Edit]
Hapus
Rename
controllers
[Open]
Hapus
Rename
cypress.json
[Edit]
Hapus
Rename
dbscripts
[Open]
Hapus
Rename
docs
[Open]
Hapus
Rename
error_log
[Edit]
Hapus
Rename
favicon.ico
[Edit]
Hapus
Rename
index.php
[Edit]
Hapus
Rename
js
[Open]
Hapus
Rename
lib
[Open]
Hapus
Rename
locale
[Open]
Hapus
Rename
mini.php
[Edit]
Hapus
Rename
pages
[Open]
Hapus
Rename
php.ini
[Edit]
Hapus
Rename
plugins
[Open]
Hapus
Rename
public
[Open]
Hapus
Rename
registry
[Open]
Hapus
Rename
scheduledTaskLogs
[Open]
Hapus
Rename
schemas
[Open]
Hapus
Rename
styles
[Open]
Hapus
Rename
templates
[Open]
Hapus
Rename
tools
[Open]
Hapus
Rename
Edit File
<?php /** * @file api/v1/vocabs/PKPVocabHandler.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class PKPVocabHandler * @ingroup api_v1_vocab * * @brief Handle API requests for controlled vocab operations. * */ use Stringy\Stringy; import('lib.pkp.classes.handler.APIHandler'); import('classes.core.Services'); class PKPVocabHandler extends APIHandler { /** * Constructor */ public function __construct() { $this->_handlerPath = 'vocabs'; $this->_endpoints = [ 'GET' => [ [ 'pattern' => $this->getEndpointPattern(), 'handler' => [$this, 'getMany'], 'roles' => [ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT, ROLE_ID_AUTHOR], ], ], ]; parent::__construct(); } // // Implement methods from PKPHandler // function authorize($request, &$args, $roleAssignments) { import('lib.pkp.classes.security.authorization.ContextAccessPolicy'); $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments)); return parent::authorize($request, $args, $roleAssignments); } /** * Get the controlled vocab entries available in this context * * @param $slimRequest Request Slim request object * @param $response Response object * @param array $args arguments * @return Response */ public function getMany($slimRequest, $response, $args) { $request = Application::get()->getRequest(); $context = $request->getContext(); if (!$context) { return $response->withStatus(404)->withJsonError('api.404.resourceNotFound'); } $requestParams = $slimRequest->getQueryParams(); $vocab = $requestParams['vocab'] ?? ''; $locale = $requestParams['locale'] ?? AppLocale::getLocale(); $term = $requestParams['term'] ?? null; if (!in_array($locale, $context->getData('supportedSubmissionLocales'))) { return $response->withStatus(400)->withJsonError('api.vocabs.400.localeNotSupported', ['locale' => $locale]); } // Load constants DAORegistry::getDAO('SubmissionKeywordDAO'); DAORegistry::getDAO('SubmissionSubjectDAO'); DAORegistry::getDAO('SubmissionDisciplineDAO'); DAORegistry::getDAO('SubmissionLanguageDAO'); DAORegistry::getDAO('SubmissionAgencyDAO'); switch ($vocab) { case CONTROLLED_VOCAB_SUBMISSION_KEYWORD: $submissionKeywordEntryDao = DAORegistry::getDAO('SubmissionKeywordEntryDAO'); /** @var SubmissionKeywordEntryDAO $submissionKeywordEntryDao */ $entries = $submissionKeywordEntryDao->getByContextId($vocab, $context->getId(), $locale, $term)->toArray(); break; case CONTROLLED_VOCAB_SUBMISSION_SUBJECT: $submissionSubjectEntryDao = DAORegistry::getDAO('SubmissionSubjectEntryDAO'); /** @var SubmissionSubjectEntryDAO $submissionSubjectEntryDao */ $entries = $submissionSubjectEntryDao->getByContextId($vocab, $context->getId(), $locale, $term)->toArray(); break; case CONTROLLED_VOCAB_SUBMISSION_DISCIPLINE: $submissionDisciplineEntryDao = DAORegistry::getDAO('SubmissionDisciplineEntryDAO'); /** @var SubmissionDisciplineEntryDAO $submissionDisciplineEntryDao */ $entries = $submissionDisciplineEntryDao->getByContextId($vocab, $context->getId(), $locale, $term)->toArray(); break; case CONTROLLED_VOCAB_SUBMISSION_LANGUAGE: $isoCodes = new \Sokil\IsoCodes\IsoCodesFactory(); $words = array_filter(PKPString::regexp_split('/\s+/', $term), 'strlen'); $languageNames = []; foreach ($isoCodes->getLanguages(\Sokil\IsoCodes\IsoCodesFactory::OPTIMISATION_IO) as $language) { if ($language->getAlpha2() && $language->getType() === 'L' && $language->getScope() === 'I' && Stringy::create($language->getLocalName())->containsAny($words, false)) { $languageNames[] = $language->getLocalName(); } } asort($languageNames); return $response->withJson($languageNames, 200); case CONTROLLED_VOCAB_SUBMISSION_AGENCY: $submissionAgencyEntryDao = DAORegistry::getDAO('SubmissionAgencyEntryDAO'); /* @var $submissionAgencyEntryDao SubmissionAgencyEntryDAO */ $entries = $submissionAgencyEntryDao->getByContextId($vocab, $context->getId(), $locale, $term)->toArray(); break; default: $entries = []; \HookRegistry::call('API::vocabs::getMany', [$vocab, &$entries, $slimRequest, $response, $this->request]); } $data = []; foreach ($entries as $entry) { $data[] = $entry->getData($vocab, $locale); } $data = array_values(array_unique($data)); return $response->withJson($data, 200); } }
Simpan