17 import(
'lib.pkp.classes.form.Form');
55 $this->_contextId = $contextId;
56 $this->_plugin = $plugin;
58 parent::__construct($plugin->getTemplateResource(
'settingsForm.tpl'));
61 $this->
addCheck(
new FormValidatorCustom($this,
'urnObjects',
'required',
'plugins.pubIds.urn.manager.settings.urnObjectsRequired',
function($enableIssueURN) use ($form) {
62 return $form->getData(
'enableIssueURN') || $form->getData(
'enablePublicationURN') || $form->getData(
'enableRepresentationURN');
64 $this->
addCheck(
new FormValidatorRegExp($this,
'urnPrefix',
'required',
'plugins.pubIds.urn.manager.settings.form.urnPrefixPattern',
'/^urn:[a-zA-Z0-9-]*:.*/'));
65 $this->
addCheck(
new FormValidatorCustom($this,
'urnIssueSuffixPattern',
'required',
'plugins.pubIds.urn.manager.settings.form.urnIssueSuffixPatternRequired',
function($urnIssueSuffixPattern) use ($form) {
66 if ($form->getData(
'urnSuffix') ==
'pattern' && $form->getData(
'enableIssueURN'))
return $urnIssueSuffixPattern !=
'';
69 $this->
addCheck(
new FormValidatorCustom($this,
'urnPublicationSuffixPattern',
'required',
'plugins.pubIds.urn.manager.settings.form.urnPublicationSuffixPatternRequired',
function($urnPublicationSuffixPattern) use ($form) {
70 if ($form->getData(
'urnSuffix') ==
'pattern' && $form->getData(
'enablePublicationURN'))
return $urnPublicationSuffixPattern !=
'';
73 $this->
addCheck(
new FormValidatorCustom($this,
'urnRepresentationSuffixPattern',
'required',
'plugins.pubIds.urn.manager.settings.form.urnRepresentationSuffixPatternRequired',
function($urnRepresentationSuffixPattern) use ($form) {
74 if ($form->getData(
'urnSuffix') ==
'pattern' && $form->getData(
'enableRepresentationURN'))
return $urnRepresentationSuffixPattern !=
'';
77 $this->
addCheck(
new FormValidatorUrl($this,
'urnResolver',
'required',
'plugins.pubIds.urn.manager.settings.form.urnResolverRequired'));
82 import(
'lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
87 $request->getSession(),
88 __(
'plugins.pubIds.urn.manager.settings.urnReassign.confirm'),
90 $request->url(
null,
null,
'manage',
null, array(
'verb' =>
'clearPubIds',
'plugin' => $plugin->getName(),
'category' =>
'pubIds')),
93 __(
'plugins.pubIds.urn.manager.settings.urnReassign'),
96 $this->
setData(
'pluginName', $plugin->getName());
106 function fetch($request) {
107 $urnNamespaces = array(
109 'urn:nbn:de' =>
'urn:nbn:de',
110 'urn:nbn:at' =>
'urn:nbn:at',
111 'urn:nbn:ch' =>
'urn:nbn:ch',
112 'urn:nbn' =>
'urn:nbn',
116 $templateMgr->assign(
'urnNamespaces', $urnNamespaces);
117 return parent::fetch($request);
127 $this->
setData($fieldName, $plugin->getSetting($contextId, $fieldName));
141 function execute(...$functionArgs) {
145 $plugin->updateSetting($contextId, $fieldName, $this->
getData($fieldName), $fieldType);
147 parent::execute(...$functionArgs);
155 'enableIssueURN' =>
'bool',
156 'enablePublicationURN' =>
'bool',
157 'enableRepresentationURN' =>
'bool',
158 'urnPrefix' =>
'string',
159 'urnSuffix' =>
'string',
160 'urnIssueSuffixPattern' =>
'string',
161 'urnPublicationSuffixPattern' =>
'string',
162 'urnRepresentationSuffixPattern' =>
'string',
163 'urnCheckNo' =>
'bool',
164 'urnNamespace' =>
'string',
165 'urnResolver' =>
'string',