From 7261f0f3586af2e61d127c0f3a6c7c65a6744728 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 19 Nov 2011 15:50:28 +0100 Subject: [PATCH] at least provide some simple upgrade path for our existing users when we release ownCloud 3 --- lib/setup.php | 2 + lib/updater.php | 91 +++++++++++++++++++++++++++++++++ settings/templates/personal.php | 4 +- 3 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 lib/updater.php diff --git a/lib/setup.php b/lib/setup.php index e2d56ddaf4a..36ee966c556 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -77,6 +77,8 @@ class OC_Setup { OC_Config::setValue('datadirectory', $datadir); OC_Config::setValue('dbtype', $dbtype); OC_Config::setValue('version',implode('.',OC_Util::getVersion())); + OC_Config::setValue('installedat',microtime(true)); + OC_Config::setValue('lastupdatedat',microtime(true)); if($dbtype == 'mysql') { $dbuser = $options['dbuser']; $dbpass = $options['dbpass']; diff --git a/lib/updater.php b/lib/updater.php new file mode 100644 index 00000000000..e4db719a62c --- /dev/null +++ b/lib/updater.php @@ -0,0 +1,91 @@ +. + * + */ + +/** + * Class that handels autoupdating of ownCloud + */ +class OC_Updater{ + + /** + * Check if a new version is available + */ + public static function check(){ + OC_Config::setValue('lastupdatedat',microtime(true)); + + $updaterurl='http://apps.owncloud.com/updater.php'; + $version=OC_Util::getVersion(); + $version['installed']=OC_Config::getValue( "installedat"); + $version['updated']=OC_Config::getValue( "lastupdatedat"); + $version['updatechannel']='stable'; + $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(){ + $data=OC_Updater::check(); + if(isset($data['version']) and $data['version']<>'') { + $txt=''.$data['versionstring'].' is available. Please click here for more information'; + }else{ + $txt='Your ownCloud is up to date'; + } + return($txt); + + } + + + /** + * do ownCloud update + */ + public static function doUpdate(){ + + //update ownCloud core + + //update all apps + + //update version in config + + } + +} + + + +?> diff --git a/settings/templates/personal.php b/settings/templates/personal.php index 19bd8789125..2c219ecf9d4 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -50,7 +50,9 @@ };?>

- ownCloud , source code licensed freely under AGPL + ownCloud
+
+ source code licensed freely under AGPL