17 import(
'lib.pkp.classes.form.Form');
56 $this->_contextId = $contextId;
57 $this->_plugin = $plugin;
59 parent::__construct($plugin->getTemplateResource(
'settingsForm.tpl'));
62 $this->
addCheck(
new FormValidatorRegExp($this,
'doiPrefix',
'required',
'plugins.pubIds.doi.manager.settings.doiPrefixPattern',
'/^10\.[0-9]{4,7}$/'));
63 $this->
addCheck(
new FormValidatorCustom($this,
'doiPublicationSuffixPattern',
'required',
'plugins.pubIds.doi.manager.settings.doiPublicationSuffixPatternRequired',
function($doiPublicationSuffixPattern) use ($form) {
64 if ($form->getData(
'doiSuffix') ==
'pattern' && $form->getData(
'enablePublicationDoi'))
return $doiPublicationSuffixPattern !=
'';
67 $this->
addCheck(
new FormValidatorCustom($this,
'doiRepresentationSuffixPattern',
'required',
'plugins.pubIds.doi.manager.settings.doiRepresentationSuffixPatternRequired',
function($doiRepresentationSuffixPattern) use ($form) {
68 if ($form->getData(
'doiSuffix') ==
'pattern' && $form->getData(
'enableRepresentationDoi'))
return $doiRepresentationSuffixPattern !=
'';
75 import(
'lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
80 $request->getSession(),
81 __(
'plugins.pubIds.doi.manager.settings.doiReassign.confirm'),
83 $request->url(
null,
null,
'manage',
null, array(
'verb' =>
'clearPubIds',
'plugin' => $plugin->getName(),
'category' =>
'pubIds')),
86 __(
'plugins.pubIds.doi.manager.settings.doiReassign'),
92 $request->getSession(),
93 __(
'plugins.pubIds.doi.manager.settings.doiAssignJournalWide.confirm'),
94 __(
'plugins.pubIds.doi.manager.settings.doiAssignJournalWide'),
95 $request->url(
null,
null,
'manage',
null, array(
'verb' =>
'assignPubIds',
'plugin' => $plugin->getName(),
'category' =>
'pubIds')),
98 __(
'plugins.pubIds.doi.manager.settings.doiAssignJournalWide'),
101 $this->
setData(
'pluginName', $plugin->getName());
115 $this->
setData($fieldName, $plugin->getSetting($contextId, $fieldName));
129 function execute(...$functionArgs) {
133 $plugin->updateSetting($contextId, $fieldName, $this->
getData($fieldName), $fieldType);
135 parent::execute(...$functionArgs);
144 'enablePublicationDoi' =>
'bool',
145 'enableRepresentationDoi' =>
'bool',
146 'enablePublicationDoiAutoAssign' =>
'bool',
147 'doiPrefix' =>
'string',
148 'doiSuffix' =>
'string',
149 'doiPublicationSuffixPattern' =>
'string',
150 'doiRepresentationSuffixPattern' =>
'string',