diff options
author | marcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-10-01 16:16:41 +0000 |
---|---|---|
committer | marcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-10-01 16:16:41 +0000 |
commit | ba5dce43c9cd44ded0657f89b05d8dba29cf6a4b (patch) | |
tree | d5b584fd979fb2b02b4d366e2d6a2bf970bc4181 /engine/lib | |
parent | 420200475b9893755adec774d04024d01a84afac (diff) | |
download | elgg-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')
-rw-r--r-- | engine/lib/cron.php | 59 |
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 |