Open Journal Systems  3.3.0
MedraExportPlugin.inc.php
1 <?php
2 
16 import('classes.plugins.DOIPubIdExportPlugin');
17 
18 // O4DOI schemas.
19 define('O4DOI_ISSUE_AS_WORK', 0x01);
20 define('O4DOI_ISSUE_AS_MANIFESTATION', 0x02);
21 define('O4DOI_ARTICLE_AS_WORK', 0x03);
22 define('O4DOI_ARTICLE_AS_MANIFESTATION', 0x04);
23 
25 
29  function getName() {
30  return 'MedraExportPlugin';
31  }
32 
36  function getDisplayName() {
37  return __('plugins.importexport.medra.displayName');
38  }
39 
43  function getDescription() {
44  return __('plugins.importexport.medra.description');
45  }
46 
50  function getSubmissionFilter() {
51  return 'article=>medra-xml';
52  }
53 
57  function getIssueFilter() {
58  return 'issue=>medra-xml';
59  }
60 
65  return 'galley=>medra-xml';
66  }
67 
72  return 'medra';
73  }
74 
79  return 'MedraSettingsForm';
80  }
81 
86  return 'MedraExportDeployment';
87  }
88 
92  function depositXML($objects, $context, $filename) {
93  // Use a different endpoint for testing and
94  // production.
95  $this->import('classes.MedraWebservice');
96  $endpoint = ($this->isTestMode($context) ? MEDRA_WS_ENDPOINT_DEV : MEDRA_WS_ENDPOINT);
97 
98  // Get credentials.
99  $username = $this->getSetting($context->getId(), 'username');
100  $password = $this->getSetting($context->getId(), 'password');
101  // Retrieve the XML.
102  assert(is_readable($filename));
103  $xml = file_get_contents($filename);
104  assert($xml !== false && !empty($xml));
105 
106  // Instantiate the mEDRA web service wrapper.
107  $ws = new MedraWebservice($endpoint, $username, $password);
108  // Register the XML with mEDRA.
109  $result = $ws->upload($xml);
110 
111  if ($result === true) {
112  // Mark all objects as registered.
113  foreach($objects as $object) {
114  $object->setData($this->getDepositStatusSettingName(), EXPORT_STATUS_REGISTERED);
115  $this->saveRegisteredDoi($context, $object);
116  }
117  } else {
118  // Handle errors.
119  if (is_string($result)) {
120  $result = array(
121  array('plugins.importexport.common.register.error.mdsError', $result)
122  );
123  } else {
124  $result = false;
125  }
126  }
127  return $result;
128  }
129 
130 }
131 
132 
PubObjectsExportPlugin\getDepositStatusSettingName
getDepositStatusSettingName()
Definition: PubObjectsExportPlugin.inc.php:521
MedraExportPlugin\getRepresentationFilter
getRepresentationFilter()
Definition: MedraExportPlugin.inc.php:64
DOIPubIdExportPlugin
Basis class for DOI XML metadata export plugins.
Definition: DOIPubIdExportPlugin.inc.php:24
MedraExportPlugin
mEDRA Onix for DOI (O4DOI) export/registration plugin.
Definition: MedraExportPlugin.inc.php:24
PubObjectsExportPlugin\isTestMode
isTestMode($context)
Definition: PubObjectsExportPlugin.inc.php:513
DOIPubIdExportPlugin\saveRegisteredDoi
saveRegisteredDoi($context, $object, $testPrefix='10.1234')
Definition: DOIPubIdExportPlugin.inc.php:96
MedraExportPlugin\getDisplayName
getDisplayName()
Definition: MedraExportPlugin.inc.php:36
MedraWebservice
A wrapper for the mEDRA web service 2.0.
Definition: MedraWebservice.inc.php:26
Plugin\getSetting
getSetting($contextId, $name)
Definition: Plugin.inc.php:473
MedraExportPlugin\getSubmissionFilter
getSubmissionFilter()
Definition: MedraExportPlugin.inc.php:50
MedraExportPlugin\getDescription
getDescription()
Definition: MedraExportPlugin.inc.php:43
MedraExportPlugin\getIssueFilter
getIssueFilter()
Definition: MedraExportPlugin.inc.php:57
MedraExportPlugin\depositXML
depositXML($objects, $context, $filename)
Definition: MedraExportPlugin.inc.php:92
MedraExportPlugin\getName
getName()
Definition: MedraExportPlugin.inc.php:29
MedraExportPlugin\getExportDeploymentClassName
getExportDeploymentClassName()
Definition: MedraExportPlugin.inc.php:85
MedraExportPlugin\getSettingsFormClassName
getSettingsFormClassName()
Definition: MedraExportPlugin.inc.php:78
MedraExportPlugin\getPluginSettingsPrefix
getPluginSettingsPrefix()
Definition: MedraExportPlugin.inc.php:71