[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
plugins
/
generic
/
crossref
/
classes
/
[
Home
]
File: CrossrefSettings.php
<?php /** * @file plugins/generic/crossref/classes/CrossrefSettings.php * * Copyright (c) 2014-2023 Simon Fraser University * Copyright (c) 2003-2023 John Willinsky * Distributed under The MIT License. For full terms see the file LICENSE. * * @class CrossrefSettings * * @ingroup plugins_generic_crossref * * @brief Setting management class to handle schema, fields, validation, etc. for Crossref plugin */ namespace APP\plugins\generic\crossref\classes; use APP\core\Application; use PKP\components\forms\FieldHTML; use PKP\components\forms\FieldOptions; use PKP\components\forms\FieldText; use PKP\context\Context; use PKP\core\PKPApplication; class CrossrefSettings extends \PKP\doi\RegistrationAgencySettings { public function getSchema(): \stdClass { return (object) [ 'title' => 'Crossref Plugin', 'description' => 'Registration agency plugin for Crossref', 'type' => 'object', 'required' => ['depositorName', 'depositorEmail'], 'properties' => (object) [ 'depositorName' => (object) [ 'type' => 'string', 'validation' => ['required', 'max:60'], ], 'depositorEmail' => (object) [ 'type' => 'string', 'validation' => ['required', 'email', 'max:90'], ], 'username' => (object) [ 'type' => 'string', 'validation' => ['nullable', 'max:120'], ], 'password' => (object) [ 'type' => 'string', 'validation' => ['nullable', 'max:50'], ], 'testMode' => (object) [ 'type' => 'boolean', ] ], ]; } /** @inheritDoc */ public function getFields(Context $context): array { return [ new FieldHTML('preamble', [ 'label' => __('plugins.importexport.crossref.settings'), 'description' => $this->_getPreambleText($context), ]), new FieldText('depositorName', [ 'label' => __('plugins.importexport.crossref.settings.form.depositorName'), 'description' => __('plugins.importexport.crossref.settings.form.depositorName.description'), 'isRequired' => true, 'value' => $this->agencyPlugin->getSetting($context->getId(), 'depositorName'), ]), new FieldText('depositorEmail', [ 'label' => __('plugins.importexport.crossref.settings.form.depositorEmail'), 'description' => __('plugins.importexport.crossref.settings.form.depositorEmail.description'), 'isRequired' => true, 'value' => $this->agencyPlugin->getSetting($context->getId(), 'depositorEmail'), ]), new FieldHTML('credentialsExplanation', [ 'description' => __('plugins.importexport.crossref.registrationIntro'), ]), new FieldText('username', [ 'label' => __('plugins.importexport.crossref.settings.form.username'), 'description' => __('plugins.importexport.crossref.settings.form.username.description'), 'value' => $this->agencyPlugin->getSetting($context->getId(), 'username'), 'inputType' => 'text', ]), new FieldText('password', [ 'label' => __('plugins.importexport.common.settings.form.password'), 'description' => __('plugins.importexport.common.settings.form.password.description'), 'value' => $this->agencyPlugin->getSetting($context->getId(), 'password'), 'inputType' => 'password', ]), new FieldOptions('testMode', [ 'label' => __('plugins.importexport.common.settings.form.testMode.label'), 'options' => [ ['value' => true, 'label' => __('plugins.importexport.crossref.settings.form.testMode.description')] ], 'value' => (bool) $this->agencyPlugin->getSetting($context->getId(), 'testMode'), ]) ]; } protected function _getPreambleText(Context $context): string { $text = ''; $journalSettingsUrl = Application::get()->getDispatcher()->url( Application::get()->getRequest(), PKPApplication::ROUTE_PAGE, $context->getPath(), 'management', 'settings', 'context' ); $notices = []; if (!$context->getData('publisherInstitution')) { $notices[] = __('plugins.importexport.crossref.error.publisherNotConfigured', ['journalSettingsUrl' => $journalSettingsUrl]); } if (!$context->getData('onlineIssn') && !$context->getData('printIssn')) { $notices[] = __('plugins.importexport.crossref.error.issnNotConfigured', ['journalSettingsUrl' => $journalSettingsUrl]); } if (!empty($notices)) { $text .= '<div class="pkpNotification pkpNotification--warning">'; $text .= '<p><strong>' . __('plugins.importexport.common.missingRequirements') . '</strong></p><ul>'; foreach ($notices as $notice) { $text .= '<li>' . $notice . '</li>'; } $text .= '</ul></div>'; } $text .= '<p>' . __('plugins.importexport.crossref.settings.depositorIntro') . '</p>'; return $text; } }