2011-11-19 14:56:40 +04:00
< ? php
/**
* ownCloud
*
* @ author Frank Karlitschek
2012-05-26 21:14:24 +04:00
* @ copyright 2012 Frank Karlitschek frank @ owncloud . org
2011-11-19 14:56:40 +04:00
*
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation ; either
* version 3 of the License , or any later version .
*
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details .
*
* You should have received a copy of the GNU Affero General Public
* License along with this library . If not , see < http :// www . gnu . org / licenses />.
*
*/
/**
* Class that handels autoupdating of ownCloud
*/
class OC_Updater {
/**
* Check if a new version is available
*/
public static function check (){
2012-02-18 00:59:43 +04:00
OC_Appconfig :: setValue ( 'core' , 'lastupdatedat' , microtime ( true ));
2012-06-09 19:43:02 +04:00
if ( OC_Appconfig :: getValue ( 'core' , 'installedat' , '' ) == '' ) OC_Appconfig :: setValue ( 'core' , 'installedat' , microtime ( true ));
2011-11-19 14:56:40 +04:00
$updaterurl = 'http://apps.owncloud.com/updater.php' ;
$version = OC_Util :: getVersion ();
2012-06-09 19:43:02 +04:00
$version [ 'installed' ] = OC_Appconfig :: getValue ( 'core' , 'installedat' );
$version [ 'updated' ] = OC_Appconfig :: getValue ( 'core' , 'lastupdatedat' );
2011-11-19 14:56:40 +04:00
$version [ 'updatechannel' ] = 'stable' ;
2012-04-01 13:20:12 +04:00
$version [ 'edition' ] = OC_Util :: getEditionString ();
2011-11-19 14:56:40 +04:00
$versionstring = implode ( 'x' , $version );
//fetch xml data from updater
$url = $updaterurl . '?version=' . $versionstring ;
$xml =@ file_get_contents ( $url );
if ( $xml == FALSE ){
return array ();
}
$data =@ simplexml_load_string ( $xml );
$tmp = array ();
$tmp [ 'version' ] = $data -> version ;
$tmp [ 'versionstring' ] = $data -> versionstring ;
$tmp [ 'url' ] = $data -> url ;
$tmp [ 'web' ] = $data -> web ;
return $tmp ;
}
public static function ShowUpdatingHint (){
2012-06-09 19:43:02 +04:00
if ( OC_Config :: getValue ( 'updatechecker' , true ) == true ){
$data = OC_Updater :: check ();
if ( isset ( $data [ 'version' ]) and $data [ 'version' ] <> '' ) {
$txt = '<span style="color:#AA0000; font-weight:bold;">' . $data [ 'versionstring' ] . ' is available. Get <a href="' . $data [ 'web' ] . '">more information</a></span>' ;
} else {
$txt = 'up to date' ;
}
2011-11-19 14:56:40 +04:00
} else {
2012-06-09 19:43:02 +04:00
$txt = 'updates check is disabled' ;
2011-11-19 14:56:40 +04:00
}
return ( $txt );
}
/**
* do ownCloud update
*/
public static function doUpdate (){
//update ownCloud core
//update all apps
//update version in config
}
}