58 lines
2.5 KiB
PHP
58 lines
2.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This file does the following things:
|
|
* 1. Calculate how many major versions back the current installation
|
|
* is from the latest release
|
|
* 2. Returns the matching icon based on result of 1, as HTML
|
|
* 3. Returns the matching tooltip message based on result of 1, as HTML
|
|
* (stored in pair of invisible div tags)
|
|
* 4. Returns the current version, as HTML (stored in pair of invisible div tags)
|
|
*/
|
|
class Airtime_View_Helper_VersionNotify extends Zend_View_Helper_Abstract{
|
|
|
|
public function versionNotify(){
|
|
if(Application_Model_Preference::GetPlanLevel() != 'disabled'){
|
|
return "";
|
|
}
|
|
|
|
// retrieve and validate current and latest versions,
|
|
$current = Application_Model_Preference::GetAirtimeVersion();
|
|
$latest = Application_Model_Preference::GetLatestVersion();
|
|
$link = Application_Model_Preference::GetLatestLink();
|
|
$currentExploded = explode('.', $current);
|
|
$latestExploded = explode('.', $latest);
|
|
if(count($currentExploded) != 3 || count($latestExploded) != 3) {
|
|
return "";
|
|
}
|
|
|
|
// Calculate the version difference;
|
|
// Example: if current = 1.9.5 and latest = 3.0.0, diff = 105
|
|
// Note: algorithm assumes the number after 1st dot never goes above 9
|
|
$versionDifference = (intval($latestExploded[0]) * 100 + intval($latestExploded[1]) *10 + intval($latestExploded[2]))
|
|
- (intval($currentExploded[0]) * 100 + intval($currentExploded[1] *10 + intval($currentExploded[2])));
|
|
|
|
// Pick icon based on distance this version is to the latest version available
|
|
if($versionDifference <= 0) {
|
|
// current version is up to date or newer
|
|
$class = "uptodate";
|
|
} else if($versionDifference < 20) {
|
|
// 2 or less major versions back
|
|
$class = "update";
|
|
} else if($versionDifference < 30) {
|
|
// 3 major versions back
|
|
$class = "update2";
|
|
} else {
|
|
// more than 3 major versions back
|
|
$class = "outdated";
|
|
}
|
|
|
|
$result = "<div id='version-diff' style='display:none'>" . $versionDifference . "</div>"
|
|
. "<div id='version-current' style='display:none'>" . $current . "</div>"
|
|
. "<div id='version-latest' style='display:none'>" . $latest . "</div>"
|
|
. "<div id='version-link' style='display:none'>" . $link . "</div>"
|
|
. "<div id='version-icon' class='" . $class . "'></div>";
|
|
return $result;
|
|
}
|
|
}
|