Open Journal Systems  3.3.0
DataciteSettingsForm.inc.php
1 <?php
2 
16 import('lib.pkp.classes.form.Form');
17 
18 class DataciteSettingsForm extends Form {
19 
20  //
21  // Private properties
22  //
24  var $_contextId;
25 
30  function _getContextId() {
31  return $this->_contextId;
32  }
33 
35  var $_plugin;
36 
41  function _getPlugin() {
42  return $this->_plugin;
43  }
44 
45  //
46  // Constructor
47  //
53  function __construct($plugin, $contextId) {
54  $this->_contextId = $contextId;
55  $this->_plugin = $plugin;
56 
57  parent::__construct($plugin->getTemplateResource('settingsForm.tpl'));
58 
59  // DOI plugin settings action link
60  $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
61  if (isset($pubIdPlugins['doipubidplugin'])) {
63  $request = $application->getRequest();
64  $dispatcher = $application->getDispatcher();
65  import('lib.pkp.classes.linkAction.request.AjaxModal');
66  $doiPluginSettingsLinkAction = new LinkAction(
67  'settings',
68  new 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')
71  ),
72  __('plugins.importexport.common.settings.DOIPluginSettings'),
73  null
74  );
75  $this->setData('doiPluginSettingsLinkAction', $doiPluginSettingsLinkAction);
76  }
77 
78  // Add form validation checks.
79  // The username is used in HTTP basic authentication and according to RFC2617 it therefore may not contain a colon.
80  $this->addCheck(new FormValidatorRegExp($this, 'username', FORM_VALIDATOR_OPTIONAL_VALUE, 'plugins.importexport.datacite.settings.form.usernameRequired', '/^[^:]+$/'));
81  $this->addCheck(new FormValidatorPost($this));
82  }
83 
84 
85  //
86  // Implement template methods from Form
87  //
91  function initData() {
92  $contextId = $this->_getContextId();
93  $plugin = $this->_getPlugin();
94  foreach($this->getFormFields() as $fieldName => $fieldType) {
95  $this->setData($fieldName, $plugin->getSetting($contextId, $fieldName));
96  }
97  }
98 
102  function readInputData() {
103  $this->readUserVars(array_keys($this->getFormFields()));
104  }
105 
109  function execute(...$functionArgs) {
110  $plugin = $this->_getPlugin();
111  $contextId = $this->_getContextId();
112  parent::execute(...$functionArgs);
113  foreach($this->getFormFields() as $fieldName => $fieldType) {
114  $plugin->updateSetting($contextId, $fieldName, $this->getData($fieldName), $fieldType);
115  }
116  }
117 
118 
119  //
120  // Public helper methods
121  //
126  function getFormFields() {
127  return array(
128  'username' => 'string',
129  'password' => 'string',
130  'automaticRegistration' => 'bool',
131  'testMode' => 'bool'
132  );
133  }
134 
140  function isOptional($settingName) {
141  return in_array($settingName, array('username', 'password', 'automaticRegistration', 'testMode'));
142  }
143 
144 }
145 
146 
DataciteSettingsForm\$_contextId
$_contextId
Definition: DataciteSettingsForm.inc.php:27
$application
$application
Definition: index.php:65
Form\setData
setData($key, $value=null)
Definition: Form.inc.php:229
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
DataciteSettingsForm
Form for journal managers to setup the DataCite plugin.
Definition: DataciteSettingsForm.inc.php:18
Form\getData
getData($key)
Definition: Form.inc.php:220
FormValidatorPost
Form validation check to make sure the form is POSTed.
Definition: FormValidatorPost.inc.php:18
DataciteSettingsForm\_getPlugin
_getPlugin()
Definition: DataciteSettingsForm.inc.php:47
PluginRegistry\loadCategory
static loadCategory($category, $enabledOnly=false, $mainContextId=null)
Definition: PluginRegistry.inc.php:103
DataciteSettingsForm\__construct
__construct($plugin, $contextId)
Definition: DataciteSettingsForm.inc.php:59
DataciteSettingsForm\initData
initData()
Definition: DataciteSettingsForm.inc.php:97
DataciteSettingsForm\isOptional
isOptional($settingName)
Definition: DataciteSettingsForm.inc.php:146
AjaxModal
A modal that retrieves its content from via AJAX.
Definition: AjaxModal.inc.php:18
LinkAction
Base class defining an action that can be performed by the user in the user interface.
Definition: LinkAction.inc.php:22
DataciteSettingsForm\_getContextId
_getContextId()
Definition: DataciteSettingsForm.inc.php:33
DataciteSettingsForm\readInputData
readInputData()
Definition: DataciteSettingsForm.inc.php:108
DataciteSettingsForm\$_plugin
$_plugin
Definition: DataciteSettingsForm.inc.php:41
FormValidatorRegExp
Form validation check using a regular expression.
Definition: FormValidatorRegExp.inc.php:18
DataciteSettingsForm\getFormFields
getFormFields()
Definition: DataciteSettingsForm.inc.php:132
DataciteSettingsForm\execute
execute(... $functionArgs)
Definition: DataciteSettingsForm.inc.php:115
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235