diff options
| author | marcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-07-29 10:46:47 +0000 | 
|---|---|---|
| committer | marcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-07-29 10:46:47 +0000 | 
| commit | 5b8a710ced369533f4242f32032e26116c0d04e7 (patch) | |
| tree | f923ff23f917e855782a4741f44adcac06add979 /mod/updateclient | |
| parent | 0f1ff71fa5959301b92cd4a69ebcf425272bf553 (diff) | |
| download | elgg-5b8a710ced369533f4242f32032e26116c0d04e7.tar.gz elgg-5b8a710ced369533f4242f32032e26116c0d04e7.tar.bz2 | |
Update client
git-svn-id: https://code.elgg.org/elgg/trunk@1565 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/updateclient')
| -rw-r--r-- | mod/updateclient/languages/en.php | 11 | ||||
| -rw-r--r-- | mod/updateclient/start.php | 59 | 
2 files changed, 69 insertions, 1 deletions
| diff --git a/mod/updateclient/languages/en.php b/mod/updateclient/languages/en.php index bde861d8f..734e5400e 100644 --- a/mod/updateclient/languages/en.php +++ b/mod/updateclient/languages/en.php @@ -18,7 +18,16 @@  		'updateclient:settings:days' => 'Check for updates every',  		'updateclient:days' => 'days', -		'updateclient:settings:server' => 'Update server' +		'updateclient:settings:server' => 'Update server', +	 +		'updateclient:message:title' => 'New version of Elgg released!', +		'updateclient:message:body' => 'A new version of Elgg (%s %s) codenamed %s has been released! +		 +Go here to download: %s + +Or scroll down and read the release notes: + +%s',  	);  	add_translation("en", $english); diff --git a/mod/updateclient/start.php b/mod/updateclient/start.php index 0f52146f9..8e5a5a4f7 100644 --- a/mod/updateclient/start.php +++ b/mod/updateclient/start.php @@ -18,6 +18,13 @@  		// Register a page handler, so we can have nice URLs  		register_page_handler('updateclient','updateclient_page_handler'); +		$now = time(); +		$time = get_plugin_setting('days', 'updateclient'); +		$last_checked = get_plugin_setting('last_checked', 'updateclient'); +		if (($time) && ($last_checked < $now - (86400 * $time))) +		{ +			updateclient_check_core(); +		}  	}  	/** @@ -53,9 +60,61 @@  			include($CONFIG->pluginspath . "updateclient/index.php");  	} +	/** +	 * Send a message to the admin notifications page. +	 * +	 * @param unknown_type $subject +	 * @param unknown_type $message +	 */ +	function updateclient_notify_message($subject, $message) +	{ +		notify_user(2,1,$subject,$message); +	} +	 +	/** +	 * Get updates. +	 * +	 * @return unknown +	 */  	function updateclient_check_core()  	{ +		global $CONFIG; +		 +		// Phone home and check core +		$url = get_plugin_setting('updateserver', 'updateclient'); +		 +		$result = send_api_get_call($url, array('method' => 'elgg.system.getlatestversion'), array()); +		 +		if (($result) && ($result->status == 0)) +		{ +			$result = $result->result; +			 +			include_once($CONFIG->url . "version.php"); +		 +			if ( +				($version != $result['version']) || +				($release != $result['release']) +			) +			{ +				// Notify +				updateclient_notify_message( +					elgg_echo('updateclient:message:title'), +					sprintf(elgg_echo('updateclient:message:body'), +						$release['release'], +						$release['version'], +						$release['codename'], +						$release['url'], +						$release['notes'] +					) +				); +				 +			} +		} +		 +		// Set last_checked +		set_plugin_setting('last_checked', time(), 'updateclient'); +		return true;  	}  	// Initialise | 
