author | Dan Fuhry <dan@enanocms.org> |
Mon, 15 Nov 2010 19:21:40 -0500 | |
changeset 1311 | a228f7e8fb15 |
parent 1227 | bdac73ed481e |
permissions | -rw-r--r-- |
<?php /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between * Copyright (C) 2006-2009 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. */ // // cron.php - Maintenance tasks that should be run periodically // // The cron script is triggered by way of an image. This is a 1x1px transparent GIF. define('ENANO_GIF_SPACER', base64_decode('R0lGODlhAQABAIAAAP///////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgABACwAAAAAAQABAAACAkwBADs=')); // Don't need a page to load, all we should need is the Enano API require('includes/common.php'); global $db, $session, $paths, $template, $plugins; // Common objects // Hope now that plugins are loaded :-) global $cron_tasks; foreach ( $cron_tasks as $interval => $tasks ) { $interval = doubleval($interval); $last_run = intval(getConfig("cron_lastrun_ivl_$interval")); $last_run_threshold = doubleval(time()) - ( 3600.0 * $interval ); if ( $last_run_threshold >= $last_run ) { foreach ( $tasks as $task ) { call_user_func($task); } setConfig("cron_lastrun_ivl_$interval", strval(time())); } } $expiry_date = date('r', get_cron_next_run()); $etag = sha1($expiry_date); if ( isset($_SERVER['HTTP_IF_NONE_MATCH']) ) { if ( "\"$etag\"" == $_SERVER['HTTP_IF_NONE_MATCH'] ) { header('HTTP/1.1 304 Not Modified'); exit(); } } header("ETag: $etag"); header('Expires: ' . $expiry_date); header('Content-type: image/gif'); echo ENANO_GIF_SPACER; ?>