silverstripe-docsviewer/code/extensions/DocumentationViewerVersionWarning.php

59 lines
1.5 KiB
PHP
Raw Normal View History

<?php
/**
* @package docsviewer
*/
2015-11-21 07:25:41 +01:00
class DocumentationViewerVersionWarning extends Extension
{
/**
* Check to see if the currently accessed version is out of date or perhaps a
* future version rather than the stable edition.
*
* @return false|ArrayData
*/
2015-11-21 07:25:41 +01:00
public function VersionWarning()
{
$page = $this->owner->getPage();
if (!$page) {
return false;
}
2015-11-21 07:25:41 +01:00
$entity = $page->getEntity();
if (!$entity) {
return false;
}
$versions = $this->owner->getManifest()->getAllVersionsOfEntity($entity);
if ($entity->getIsStable()) {
return false;
}
$stable = $this->owner->getManifest()->getStableVersion($entity);
$compare = $entity->compare($stable);
if ($entity->getVersion() == 'master' || $compare > 0) {
2016-12-02 03:31:18 +01:00
return $this->owner->customise(
new ArrayData(
array(
'FutureRelease' => true,
'StableVersion' => DBField::create_field('HTMLText', $stable->getVersion())
2016-12-02 03:31:18 +01:00
)
)
);
2015-11-21 07:25:41 +01:00
} else {
2016-12-02 03:31:18 +01:00
return $this->owner->customise(
new ArrayData(
array(
'OutdatedRelease' => true,
'StableVersion' => DBField::create_field('HTMLText', $stable->getVersion())
2016-12-02 03:31:18 +01:00
)
)
);
2015-11-21 07:25:41 +01:00
}
2015-11-21 07:25:41 +01:00
return false;
}
}