aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/cron.php
diff options
context:
space:
mode:
authormarcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-10-01 16:16:41 +0000
committermarcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-10-01 16:16:41 +0000
commitba5dce43c9cd44ded0657f89b05d8dba29cf6a4b (patch)
treed5b584fd979fb2b02b4d366e2d6a2bf970bc4181 /engine/lib/cron.php
parent420200475b9893755adec774d04024d01a84afac (diff)
downloadelgg-ba5dce43c9cd44ded0657f89b05d8dba29cf6a4b.tar.gz
elgg-ba5dce43c9cd44ded0657f89b05d8dba29cf6a4b.tar.bz2
Improved cron support
git-svn-id: https://code.elgg.org/elgg/trunk@2160 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib/cron.php')
-rw-r--r--engine/lib/cron.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/engine/lib/cron.php b/engine/lib/cron.php
new file mode 100644
index 000000000..f488bab0f
--- /dev/null
+++ b/engine/lib/cron.php
@@ -0,0 +1,59 @@
+<?php
+ /**
+ * Elgg cron library.
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.org/
+ */
+
+ /** The cron exception. */
+ class CronException extends Exception {}
+
+ /**
+ * Initialisation
+ *
+ */
+ function cron_init()
+ {
+ // Register a pagehandler for cron
+ register_page_handler('cron','cron_page_handler');
+ }
+
+ /**
+ * Cron handler for redirecting pages.
+ *
+ * @param unknown_type $page
+ */
+ function cron_page_handler($page)
+ {
+ global $CONFIG;
+
+ if ($page[0])
+ {
+ switch (strtolower($page[0]))
+ {
+ case 'hourly' :
+ case 'daily' :
+ case 'weekly' :
+ case 'monthly':
+ case 'yearly' :
+ case 'reboot' : set_input('period', $page[0]); break;
+ default : throw new CronException(sprintf(elgg_echo('CronException:unknownperiod'), $page[0]));
+ }
+
+ // Include cron handler
+ include($CONFIG->path . "engine/handlers/cron_handler.php");
+ }
+ else
+ include($CONFIG->pluginspath . "ss_sms/index.php");
+ }
+
+
+ // Register a startup event
+ register_elgg_event_handler('init','system','cron_init');
+
+?> \ No newline at end of file