Open Journal Systems  3.3.0
GalleryPlugin.inc.php
1 <?php
2 
16 define('PLUGIN_GALLERY_STATE_AVAILABLE', 0);
17 define('PLUGIN_GALLERY_STATE_INCOMPATIBLE', 0);
18 define('PLUGIN_GALLERY_STATE_UPGRADABLE', 1);
19 define('PLUGIN_GALLERY_STATE_CURRENT', 2);
20 define('PLUGIN_GALLERY_STATE_NEWER', 3);
21 
22 class GalleryPlugin extends DataObject {
23 
29  function getLocalizedName($preferredLocale = null) {
30  return $this->getLocalizedData('name', $preferredLocale);
31  }
32 
38  function setName($name, $locale = null) {
39  $this->setData('name', $name, $locale);
40  }
41 
47  function getName($locale = null) {
48  return $this->getData('name', $locale);
49  }
50 
55  function getHomepage() {
56  return $this->getData('homepage');
57  }
58 
63  function setHomepage($homepage) {
64  $this->setData('homepage', $homepage);
65  }
66 
71  function getProduct() {
72  return $this->getData('product');
73  }
74 
79  function setProduct($product) {
80  $this->setData('product', $product);
81  }
82 
87  function getCategory() {
88  return $this->getData('category');
89  }
90 
95  function setCategory($category) {
96  $this->setData('category', $category);
97  }
98 
105  function getVersion($pad = false) {
106  $version = $this->getData('version');
107  if ($pad) {
108  // Ensure there are 4 terms (3 separators)
109  $separators = substr_count($version, '.');
110  if ($separators<3) $version .= str_repeat('.0', 3-$separators);
111  }
112  return $version;
113  }
114 
119  function setVersion($version) {
120  $this->setData('version', $version);
121  }
122 
127  function getDate() {
128  return $this->getData('date');
129  }
130 
135  function setDate($date) {
136  $this->setData('date', $date);
137  }
138 
143  function getContactName() {
144  return $this->getData('contactName');
145  }
146 
151  function setContactName($contactName) {
152  $this->setData('contactName', $contactName);
153  }
154 
160  return $this->getData('contactInstitutionName');
161  }
162 
167  function setContactInstitutionName($contactInstitutionName) {
168  $this->setData('contactInstitutionName', $contactInstitutionName);
169  }
170 
175  function getContactEmail() {
176  return $this->getData('contactEmail');
177  }
178 
183  function setContactEmail($contactEmail) {
184  $this->setData('contactEmail', $contactEmail);
185  }
186 
192  function getSummary($locale = null) {
193  return $this->getData('summary', $locale);
194  }
195 
201  function setSummary($summary, $locale = null) {
202  $this->setData('summary', $summary, $locale);
203  }
204 
210  function getDescription($locale = null) {
211  return $this->getData('description', $locale);
212  }
213 
219  function setDescription($description, $locale = null) {
220  $this->setData('description', $description, $locale);
221  }
222 
228  function getInstallationInstructions($locale = null) {
229  return $this->getData('installation', $locale);
230  }
231 
237  function setInstallationInstructions($installation, $locale = null) {
238  $this->setData('installation', $installation, $locale);
239  }
240 
246  function getReleaseDescription($locale = null) {
247  return $this->getData('releaseDescription', $locale);
248  }
249 
255  function setReleaseDescription($releaseDescription, $locale = null) {
256  $this->setData('releaseDescription', $releaseDescription, $locale);
257  }
258 
263  function getReleaseMD5() {
264  return $this->getData('releaseMD5');
265  }
266 
271  function setReleaseMD5($releaseMD5) {
272  $this->setData('releaseMD5', $releaseMD5);
273  }
274 
280  return $this->getData('releaseCertifications');
281  }
282 
287  function setReleaseCertifications($certifications) {
288  $this->setData('releaseCertifications', $certifications);
289  }
290 
295  function getReleasePackage() {
296  return $this->getData('releasePackage');
297  }
298 
303  function setReleasePackage($releasePackage) {
304  $this->setData('releasePackage', $releasePackage);
305  }
306 
311  function getLocalizedSummary() {
312  return $this->getLocalizedData('summary');
313  }
314 
320  return $this->getLocalizedData('installation');
321  }
322 
328  return $this->getLocalizedData('description');
329  }
330 
336  return $this->getLocalizedData('releaseDescription');
337  }
338 
344  function getInstalledVersion() {
345  $versionDao = DAORegistry::getDAO('VersionDAO'); /* @var $versionDao VersionDAO */
346  return $versionDao->getCurrentVersion('plugins.' . $this->getCategory(), $this->getProduct(), true);
347  }
348 
354  function getCurrentStatus() {
355  $installedVersion = $this->getInstalledVersion();
356  if ($this->getVersion()===null) return PLUGIN_GALLERY_STATE_INCOMPATIBLE;
357  if (!$installedVersion) return PLUGIN_GALLERY_STATE_AVAILABLE;
358  if ($installedVersion->compare($this->getVersion(true))>0) return PLUGIN_GALLERY_STATE_NEWER;
359  if ($installedVersion->compare($this->getVersion(true))<0) return PLUGIN_GALLERY_STATE_UPGRADABLE;
360 
361  $targetPath = Core::getBaseDir() . '/plugins/' . $this->getCategory() . '/' . $this->getProduct();
362  if (!is_dir($targetPath)) return PLUGIN_GALLERY_STATE_UPGRADABLE;
363 
364  return PLUGIN_GALLERY_STATE_CURRENT;
365  }
366 }
367 
368 
GalleryPlugin\setContactEmail
setContactEmail($contactEmail)
Definition: GalleryPlugin.inc.php:183
GalleryPlugin\setDate
setDate($date)
Definition: GalleryPlugin.inc.php:135
DataObject\getData
& getData($key, $locale=null)
Definition: DataObject.inc.php:100
GalleryPlugin\setDescription
setDescription($description, $locale=null)
Definition: GalleryPlugin.inc.php:219
GalleryPlugin\setReleaseDescription
setReleaseDescription($releaseDescription, $locale=null)
Definition: GalleryPlugin.inc.php:255
DataObject\getLocalizedData
getLocalizedData($key, $preferredLocale=null)
Definition: DataObject.inc.php:71
GalleryPlugin\setInstallationInstructions
setInstallationInstructions($installation, $locale=null)
Definition: GalleryPlugin.inc.php:237
GalleryPlugin\getLocalizedName
getLocalizedName($preferredLocale=null)
Definition: GalleryPlugin.inc.php:29
GalleryPlugin\getLocalizedSummary
getLocalizedSummary()
Definition: GalleryPlugin.inc.php:311
DataObject
Any class with an associated DAO should extend this class.
Definition: DataObject.inc.php:18
GalleryPlugin\getReleasePackage
getReleasePackage()
Definition: GalleryPlugin.inc.php:295
GalleryPlugin\getInstalledVersion
getInstalledVersion()
Definition: GalleryPlugin.inc.php:344
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
GalleryPlugin\setReleaseCertifications
setReleaseCertifications($certifications)
Definition: GalleryPlugin.inc.php:287
GalleryPlugin\setContactName
setContactName($contactName)
Definition: GalleryPlugin.inc.php:151
GalleryPlugin\getContactName
getContactName()
Definition: GalleryPlugin.inc.php:143
GalleryPlugin\setSummary
setSummary($summary, $locale=null)
Definition: GalleryPlugin.inc.php:201
GalleryPlugin\getVersion
getVersion($pad=false)
Definition: GalleryPlugin.inc.php:105
GalleryPlugin\getLocalizedInstallationInstructions
getLocalizedInstallationInstructions()
Definition: GalleryPlugin.inc.php:319
GalleryPlugin\getLocalizedDescription
getLocalizedDescription()
Definition: GalleryPlugin.inc.php:327
GalleryPlugin\getReleaseMD5
getReleaseMD5()
Definition: GalleryPlugin.inc.php:263
GalleryPlugin\setReleasePackage
setReleasePackage($releasePackage)
Definition: GalleryPlugin.inc.php:303
GalleryPlugin\getSummary
getSummary($locale=null)
Definition: GalleryPlugin.inc.php:192
GalleryPlugin\setHomepage
setHomepage($homepage)
Definition: GalleryPlugin.inc.php:63
GalleryPlugin\getReleaseDescription
getReleaseDescription($locale=null)
Definition: GalleryPlugin.inc.php:246
GalleryPlugin\setVersion
setVersion($version)
Definition: GalleryPlugin.inc.php:119
GalleryPlugin\getDescription
getDescription($locale=null)
Definition: GalleryPlugin.inc.php:210
GalleryPlugin\setReleaseMD5
setReleaseMD5($releaseMD5)
Definition: GalleryPlugin.inc.php:271
GalleryPlugin\getCategory
getCategory()
Definition: GalleryPlugin.inc.php:87
GalleryPlugin\getReleaseCertifications
getReleaseCertifications()
Definition: GalleryPlugin.inc.php:279
GalleryPlugin\setName
setName($name, $locale=null)
Definition: GalleryPlugin.inc.php:38
GalleryPlugin\getContactInstitutionName
getContactInstitutionName()
Definition: GalleryPlugin.inc.php:159
GalleryPlugin\getLocalizedReleaseDescription
getLocalizedReleaseDescription()
Definition: GalleryPlugin.inc.php:335
GalleryPlugin\getDate
getDate()
Definition: GalleryPlugin.inc.php:127
GalleryPlugin\getName
getName($locale=null)
Definition: GalleryPlugin.inc.php:47
GalleryPlugin\setContactInstitutionName
setContactInstitutionName($contactInstitutionName)
Definition: GalleryPlugin.inc.php:167
GalleryPlugin\setCategory
setCategory($category)
Definition: GalleryPlugin.inc.php:95
Core\getBaseDir
static getBaseDir()
Definition: Core.inc.php:37
GalleryPlugin\setProduct
setProduct($product)
Definition: GalleryPlugin.inc.php:79
GalleryPlugin\getCurrentStatus
getCurrentStatus()
Definition: GalleryPlugin.inc.php:354
GalleryPlugin
Class describing a plugin in the Plugin Gallery.
Definition: GalleryPlugin.inc.php:22
GalleryPlugin\getHomepage
getHomepage()
Definition: GalleryPlugin.inc.php:55
GalleryPlugin\getInstallationInstructions
getInstallationInstructions($locale=null)
Definition: GalleryPlugin.inc.php:228
DataObject\setData
setData($key, $value, $locale=null)
Definition: DataObject.inc.php:132
GalleryPlugin\getContactEmail
getContactEmail()
Definition: GalleryPlugin.inc.php:175
GalleryPlugin\getProduct
getProduct()
Definition: GalleryPlugin.inc.php:71