aboutsummaryrefslogtreecommitdiff
path: root/mod/updateclient/start.php
diff options
context:
space:
mode:
authormarcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-07-29 10:46:47 +0000
committermarcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-07-29 10:46:47 +0000
commit5b8a710ced369533f4242f32032e26116c0d04e7 (patch)
treef923ff23f917e855782a4741f44adcac06add979 /mod/updateclient/start.php
parent0f1ff71fa5959301b92cd4a69ebcf425272bf553 (diff)
downloadelgg-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/start.php')
-rw-r--r--mod/updateclient/start.php59
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