17 define(
'VERSION_CODE_PATH',
'dbscripts/xml/version.xml');
19 import(
'lib.pkp.classes.db.XMLDAO');
20 import(
'lib.pkp.classes.site.Version');
31 !defined(
'RUNNING_UPGRADE') &&
36 $uniqueSiteId = $pluginSettingsDao->getSetting(CONTEXT_SITE,
'UsageEventPlugin',
'uniqueSiteId');
37 }
else $uniqueSiteId =
null;
42 ($includeId?
'?id=' . urlencode($uniqueSiteId) .
43 '&oai=' . urlencode($request->url(
'index',
'oai'))
54 return $versionDao->getCurrentVersion();
64 return $versionInfo[
'version'];
76 $data = $xmlDao->parseStruct($url, array());
77 if (!$data)
return false;
80 $versionInfo = array();
82 if(isset($data[
'application'][0][
'value']))
83 $versionInfo[
'application'] = $data[
'application'][0][
'value'];
84 if(isset($data[
'type'][0][
'value']))
85 $versionInfo[
'type'] = $data[
'type'][0][
'value'];
86 if(isset($data[
'release'][0][
'value']))
87 $versionInfo[
'release'] = $data[
'release'][0][
'value'];
88 if(isset($data[
'tag'][0][
'value']))
89 $versionInfo[
'tag'] = $data[
'tag'][0][
'value'];
90 if(isset($data[
'date'][0][
'value']))
91 $versionInfo[
'date'] = $data[
'date'][0][
'value'];
92 if(isset($data[
'info'][0][
'value']))
93 $versionInfo[
'info'] = $data[
'info'][0][
'value'];
94 if(isset($data[
'package'][0][
'value']))
95 $versionInfo[
'package'] = $data[
'package'][0][
'value'];
96 if(isset($data[
'patch'][0][
'value'])) {
97 $versionInfo[
'patch'] = array();
98 foreach ($data[
'patch'] as $patch) {
99 $versionInfo[
'patch'][$patch[
'attributes'][
'from']] = $patch[
'value'];
102 if (isset($data[
'class'][0][
'value'])) $versionInfo[
'class'] = (string) $data[
'class'][0][
'value'];
104 $versionInfo[
'lazy-load'] = (isset($data[
'lazy-load'][0][
'value']) ? (int) $data[
'lazy-load'][0][
'value'] : 0);
105 $versionInfo[
'sitewide'] = (isset($data[
'sitewide'][0][
'value']) ? (int) $data[
'sitewide'][0][
'value'] : 0);
107 if(isset($data[
'release'][0][
'value']) && isset($data[
'application'][0][
'value'])) {
109 $data[
'release'][0][
'value'],
110 isset($data[
'type'][0][
'value']) ? $data[
'type'][0][
'value'] :
null,
111 $data[
'application'][0][
'value'],
112 isset($data[
'class'][0][
'value']) ? $data[
'class'][0][
'value'] :
'',
113 $versionInfo[
'lazy-load'],
114 $versionInfo[
'sitewide']
127 static function getPatch($versionInfo, $codeVersion =
null) {
128 if (!isset($codeVersion)) {
131 if (isset($versionInfo[
'patch'][$codeVersion->getVersionString()])) {
132 return $versionInfo[
'patch'][$codeVersion->getVersionString()];
146 if ($fileManager->fileExists($versionFile)) {
149 throw new Exception(__(
'manager.plugins.versionFileNotFound'));
153 $productType = explode(
".", $versionInfo[
'type']);
154 if(count($productType) != 2 || $productType[0] !=
'plugins') {
155 throw new Exception(__(
'manager.plugins.versionFileInvalid'));
158 $pluginVersion = $versionInfo[
'version'];
159 $namesToValidate = array($pluginVersion->getProduct(), $productType[1]);
160 foreach($namesToValidate as $nameToValidate) {
162 throw new Exception(__(
'manager.plugins.versionFileInvalid'));
166 return $pluginVersion;
176 $latestVersion = $versionInfo[
'release'];
179 if ($currentVersion->compare($latestVersion) < 0)
return $latestVersion;