16 import(
'lib.pkp.classes.form.Form');
18 define(
'MARKUP_CSL_STYLE_DEFAULT',
'674e1c66aa817a0713a410915ac1b298');
19 define(
'MARKUP_DOCUMENT_SERVER_URL_DEFAULT',
'https://pkp-xml-demo.lib.sfu.ca/');
38 $this->_journalId = $journalId;
39 $this->_plugin = $plugin;
41 parent::__construct($plugin->getTemplateResource(
'settingsForm.tpl'));
44 $this->_settings = array(
45 'cslStyle' =>
'string',
46 'markupHostPass' =>
'string',
47 'markupHostURL' =>
'string',
48 'markupHostUser' =>
'string',
49 'wantedFormats' =>
'object',
50 'xmlConversionStages' =>
'object',
53 $this->_plugin->import(
'classes.MarkupConversionHelper');
66 if ($plugin->getSetting($journalId,
'cslStyle') ==
'') {
67 $plugin->updateSetting($journalId,
'cslStyle', MARKUP_CSL_STYLE_DEFAULT);
69 if ($plugin->getSetting($journalId,
'markupHostURL') ==
'') {
70 $plugin->updateSetting($journalId,
'markupHostURL', MARKUP_DOCUMENT_SERVER_URL_DEFAULT);
73 $this->
setData(
'authType', $plugin->getSetting($journalId,
'authType'));
74 $this->
setData(
'cslStyle', $plugin->getSetting($journalId,
'cslStyle'));
79 $this->
setData(
'markupConfigCredsAvailable',
true);
81 $this->
setData(
'markupHostURL', $configCreds[
'host']);
84 $this->
setData(
'markupConfigCredsAvailable',
false);
85 $this->
setData(
'markupHostUser', $plugin->getSetting($journalId,
'markupHostUser'));
86 $this->
setData(
'markupHostPass', $plugin->getSetting($journalId,
'markupHostPass'));
87 $this->
setData(
'markupHostURL', $plugin->getSetting($journalId,
'markupHostURL'));
91 $citationStyleHash =
Config::getVar(
'markup',
'ots_citation_style_hash');
92 if (is_null($citationStyleHash)) {
93 $this->
setData(
'markupConfigDefaultCitationHashAvailable',
false);
96 $this->
setData(
'markupConfigDefaultCitationHashAvailable',
true);
100 $wantedFormats = $plugin->getSetting($journalId,
'wantedFormats');
101 if (is_null($wantedFormats)) {
102 $wantedFormats = $this->_plugin->getFormatList();
106 $xmlConversionStages = $plugin->getSetting($journalId,
'xmlConversionStages');
107 if (is_null($xmlConversionStages)) {
108 $xmlConversionStages = $this->_plugin->getXmlConversionStages();
111 $this->
setData(
'wantedFormats', $wantedFormats);
112 $this->
setData(
'xmlConversionStages', $xmlConversionStages);
129 'xmlConversionStages',
144 $authType = $this->
getData(
'authType');
145 $loginCredsFieldsType = ($authType ==
'site') ?
'required' :
'optional';
146 $this->
addCheck(
new FormValidator($this,
'authType',
'required',
'plugins.generic.markup.required.authType'));
147 $this->
addCheck(
new FormValidator($this,
'markupHostUser', $loginCredsFieldsType,
"plugins.generic.markup.{$loginCredsFieldsType}.markupHostUser"));
148 $this->
addCheck(
new FormValidator($this,
'markupHostPass', $loginCredsFieldsType,
"plugins.generic.markup.{$loginCredsFieldsType}.markupHostPass"));
149 $this->
addCheck(
new FormValidator($this,
'markupHostURL',
'required',
'plugins.generic.markup.required.markupHostURL'));
153 $citationStyleHash =
Config::getVar(
'markup',
'ots_citation_style_hash');
154 if (is_null($citationStyleHash)) {
155 $this->
addCheck(
new FormValidator($this,
'cslStyle',
'required',
'plugins.generic.markup.required.cslStyle'));
159 $this->
addCheck(
new FormValidator($this,
'wantedFormats',
'required',
'plugins.generic.markup.required.wantedFormats'));
160 $this->
addCheck(
new FormValidator($this,
'xmlConversionStages',
'required',
'plugins.generic.markup.required.xmlConversionStages'));
162 return parent::validate();
168 function fetch($request) {
170 $templateMgr->assign(
'pluginJavaScriptURL', $this->_plugin->getJsUrl($request));
172 $templateMgr->assign(
'pluginName', $this->_plugin->getName());
173 $templateMgr->assign(
'templatePath', $this->_plugin->getTemplatePath());
176 $templateMgr->assign(
'curlSupport', function_exists(
'curl_init') ? __(
'plugins.generic.markup.settings.installed') : __(
'plugins.generic.markup.settings.notInstalled'));
177 $templateMgr->assign(
'zipSupport', extension_loaded(
'zlib') ? __(
'plugins.generic.markup.settings.installed') : __(
'plugins.generic.markup.settings.notInstalled'));
178 $templateMgr->assign(
'pathInfo', $request->isPathInfoEnabled() ? __(
'plugins.generic.markup.settings.enabled') : __(
'plugins.generic.markup.settings.disabled'));
180 return parent::fetch($request);
186 function execute(...$functionArgs) {
190 $markupHostURL = $this->
getData(
'markupHostURL');
191 if ($markupHostURL) {
192 if (!parse_url($markupHostURL, PHP_URL_SCHEME)) {
193 $markupHostURL =
'http://' . $markupHostURL;
195 if (substr(parse_url($markupHostURL, PHP_URL_PATH), -1) !=
'/') {
196 $markupHostURL .=
'/';
200 $authType = $this->
getData(
'authType');
201 $markupHostUser = $this->
getData(
'markupHostUser');
202 $markupHostPass = $this->
getData(
'markupHostPass');
205 if ($authType ==
'user') {
206 $markupHostUser = $markupHostPass =
'';
213 $plugin->updateSetting($journalId,
'authType', $authType);
214 $plugin->updateSetting($journalId,
'markupHostURL', $markupHostURL);
215 $plugin->updateSetting($journalId,
'markupHostUser', $markupHostUser);
216 $plugin->updateSetting($journalId,
'markupHostPass', $markupHostPass);
220 $citationStyleHash =
Config::getVar(
'markup',
'ots_citation_style_hash');
221 if (is_null($citationStyleHash)) {
222 $plugin->updateSetting($journalId,
'cslStyle', $this->
getData(
'cslStyle'));
225 $plugin->updateSetting($journalId,
'wantedFormats', $this->
getData(
'wantedFormats'));
226 $plugin->updateSetting($journalId,
'xmlConversionStages', $this->
getData(
'xmlConversionStages'));
228 parent::execute(...$functionArgs);