One Hat Cyber Team
Your IP :
216.73.216.182
Server IP :
203.175.9.166
Server :
Linux tanggamus.iixcp.rumahweb.net 5.14.0-427.28.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 2 03:44:10 EDT 2024 x86_64
Server Software :
LiteSpeed
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
cite5577
/
public_html
/
lib
/
pkp
/
api
/
v1
/
vocabs
/
Edit File:
PKPVocabHandler.inc.php
<?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