16 import(
'lib.pkp.classes.form.Form');
54 $this->_contextId = $contextId;
55 $this->_plugin = $plugin;
57 parent::__construct($plugin->getTemplateResource(
'settingsForm.tpl'));
61 if (isset($pubIdPlugins[
'doipubidplugin'])) {
65 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
69 $dispatcher->url($request, ROUTE_COMPONENT,
null,
'grid.settings.plugins.SettingsPluginGridHandler',
'manage',
null, array(
'plugin' =>
'doipubidplugin',
'category' =>
'pubIds')),
70 __(
'plugins.importexport.common.settings.DOIPluginSettings')
72 __(
'plugins.importexport.common.settings.DOIPluginSettings'),
75 $this->
setData(
'doiPluginSettingsLinkAction', $doiPluginSettingsLinkAction);
79 $this->
addCheck(
new FormValidator($this,
'registrantName', FORM_VALIDATOR_REQUIRED_VALUE,
'plugins.importexport.medra.settings.form.registrantNameRequired'));
80 $this->
addCheck(
new FormValidator($this,
'fromCompany', FORM_VALIDATOR_REQUIRED_VALUE,
'plugins.importexport.medra.settings.form.fromCompanyRequired'));
81 $this->
addCheck(
new FormValidator($this,
'fromName', FORM_VALIDATOR_REQUIRED_VALUE,
'plugins.importexport.medra.settings.form.fromNameRequired'));
82 $this->
addCheck(
new FormValidatorEmail($this,
'fromEmail', FORM_VALIDATOR_REQUIRED_VALUE,
'plugins.importexport.medra.settings.form.fromEmailRequired'));
83 $this->
addCheck(
new FormValidatorInSet($this,
'exportIssuesAs', FORM_VALIDATOR_REQUIRED_VALUE,
'plugins.importexport.medra.settings.form.exportIssuesAs', array(O4DOI_ISSUE_AS_WORK, O4DOI_ISSUE_AS_MANIFESTATION)));
84 $this->
addCheck(
new FormValidatorInSet($this,
'publicationCountry', FORM_VALIDATOR_REQUIRED_VALUE,
'plugins.importexport.medra.settings.form.publicationCountry', array_keys($this->
_getCountries())));
86 $this->
addCheck(
new FormValidatorRegExp($this,
'username', FORM_VALIDATOR_OPTIONAL_VALUE,
'plugins.importexport.medra.settings.form.usernameRequired',
'/^[^:]+$/'));
100 foreach($this->
getFormFields() as $fieldName => $fieldType) {
101 $this->
setData($fieldName, $plugin->getSetting($contextId, $fieldName));
108 function fetch($request) {
112 $exportIssueOptions = array(
113 O4DOI_ISSUE_AS_WORK => __(
'plugins.importexport.medra.settings.form.work'),
114 O4DOI_ISSUE_AS_MANIFESTATION => __(
'plugins.importexport.medra.settings.form.manifestation'),
116 $templateMgr->assign(
'exportIssueOptions', $exportIssueOptions);
120 return parent::fetch($request);
133 function execute(...$functionArgs) {
136 parent::execute(...$functionArgs);
137 foreach($this->
getFormFields() as $fieldName => $fieldType) {
138 $plugin->updateSetting($contextId, $fieldName, $this->
getData($fieldName), $fieldType);
152 'registrantName' =>
'string',
153 'fromCompany' =>
'string',
154 'fromName' =>
'string',
155 'fromEmail' =>
'string',
156 'publicationCountry' =>
'string',
157 'exportIssuesAs' =>
'int',
158 'username' =>
'string',
159 'password' =>
'string',
160 'automaticRegistration' =>
'bool',
171 return in_array($settingName, array(
'username',
'password',
'automaticRegistration',
'testMode'));
183 $isoCodes = new \Sokil\IsoCodes\IsoCodesFactory();
184 $countries = array();
185 foreach ($isoCodes->getCountries() as $country) {
186 $countries[$country->getAlpha2()] = $country->getLocalName();