Open Journal Systems  3.3.0
CrossRefSettingsForm.inc.php
1 <?php
2 
17 import('lib.pkp.classes.form.Form');
18 
19 class CrossRefSettingsForm extends Form {
20 
21  //
22  // Private properties
23  //
25  var $_contextId;
26 
31  function _getContextId() {
32  return $this->_contextId;
33  }
34 
36  var $_plugin;
37 
42  function _getPlugin() {
43  return $this->_plugin;
44  }
45 
46 
47  //
48  // Constructor
49  //
55  function __construct($plugin, $contextId) {
56  $this->_contextId = $contextId;
57  $this->_plugin = $plugin;
58 
59  parent::__construct($plugin->getTemplateResource('settingsForm.tpl'));
60 
61  // DOI plugin settings action link
62  $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
63  if (isset($pubIdPlugins['doipubidplugin'])) {
65  $request = $application->getRequest();
66  $dispatcher = $application->getDispatcher();
67  import('lib.pkp.classes.linkAction.request.AjaxModal');
68  $doiPluginSettingsLinkAction = new LinkAction(
69  'settings',
70  new AjaxModal(
71  $dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.settings.plugins.SettingsPluginGridHandler', 'manage', null, array('plugin' => 'doipubidplugin', 'category' => 'pubIds')),
72  __('plugins.importexport.common.settings.DOIPluginSettings')
73  ),
74  __('plugins.importexport.common.settings.DOIPluginSettings'),
75  null
76  );
77  $this->setData('doiPluginSettingsLinkAction', $doiPluginSettingsLinkAction);
78  }
79 
80  // Add form validation checks.
81  $this->addCheck(new FormValidator($this, 'depositorName', 'required', 'plugins.importexport.crossref.settings.form.depositorNameRequired'));
82  $this->addCheck(new FormValidatorEmail($this, 'depositorEmail', 'required', 'plugins.importexport.crossref.settings.form.depositorEmailRequired'));
83  $this->addCheck(new FormValidatorPost($this));
84  $this->addCheck(new FormValidatorCSRF($this));
85  }
86 
87 
88  //
89  // Implement template methods from Form
90  //
94  function initData() {
95  $contextId = $this->_getContextId();
96  $plugin = $this->_getPlugin();
97  foreach($this->getFormFields() as $fieldName => $fieldType) {
98  $this->setData($fieldName, $plugin->getSetting($contextId, $fieldName));
99  }
100  }
101 
105  function readInputData() {
106  $this->readUserVars(array_keys($this->getFormFields()));
107  }
108 
112  function execute(...$functionArgs) {
113  $plugin = $this->_getPlugin();
114  $contextId = $this->_getContextId();
115  foreach($this->getFormFields() as $fieldName => $fieldType) {
116  $plugin->updateSetting($contextId, $fieldName, $this->getData($fieldName), $fieldType);
117  }
118  parent::execute(...$functionArgs);
119  }
120 
121 
122  //
123  // Public helper methods
124  //
129  function getFormFields() {
130  return array(
131  'depositorName' => 'string',
132  'depositorEmail' => 'string',
133  'username' => 'string',
134  'password' => 'string',
135  'automaticRegistration' => 'bool',
136  'testMode' => 'bool'
137  );
138  }
139 
145  function isOptional($settingName) {
146  return in_array($settingName, array('username', 'password', 'automaticRegistration', 'testMode'));
147  }
148 
149 }
150 
151 
CrossRefSettingsForm\$_contextId
$_contextId
Definition: CrossRefSettingsForm.inc.php:28
$application
$application
Definition: index.php:65
CrossRefSettingsForm\getFormFields
getFormFields()
Definition: CrossRefSettingsForm.inc.php:135
CrossRefSettingsForm\execute
execute(... $functionArgs)
Definition: CrossRefSettingsForm.inc.php:118
Form\setData
setData($key, $value=null)
Definition: Form.inc.php:229
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
FormValidatorEmail
Form validation check for email addresses.
Definition: FormValidatorEmail.inc.php:20
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
CrossRefSettingsForm\readInputData
readInputData()
Definition: CrossRefSettingsForm.inc.php:111
PluginRegistry\loadCategory
static loadCategory($category, $enabledOnly=false, $mainContextId=null)
Definition: PluginRegistry.inc.php:103
CrossRefSettingsForm\_getContextId
_getContextId()
Definition: CrossRefSettingsForm.inc.php:34
CrossRefSettingsForm\$_plugin
$_plugin
Definition: CrossRefSettingsForm.inc.php:42
CrossRefSettingsForm
Form for journal managers to setup CrossRef plugin.
Definition: CrossRefSettingsForm.inc.php:19
CrossRefSettingsForm\__construct
__construct($plugin, $contextId)
Definition: CrossRefSettingsForm.inc.php:61
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
FormValidator
Class to represent a form validation check.
Definition: FormValidator.inc.php:23
CrossRefSettingsForm\isOptional
isOptional($settingName)
Definition: CrossRefSettingsForm.inc.php:151
CrossRefSettingsForm\initData
initData()
Definition: CrossRefSettingsForm.inc.php:100
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
FormValidatorCSRF
Form validation check to make sure the CSRF token is correct.
Definition: FormValidatorCSRF.inc.php:18
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
CrossRefSettingsForm\_getPlugin
_getPlugin()
Definition: CrossRefSettingsForm.inc.php:48