diff options
Diffstat (limited to 'mod/updateclient/start.php')
| -rw-r--r-- | mod/updateclient/start.php | 59 | 
1 files changed, 59 insertions, 0 deletions
| 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 | 
