Ejemplo n.º 1
0
Archivo: cron.php Proyecto: elgg/elgg
/**
 * Cron handler
 *
 * @param array $page Pages
 *
 * @return bool
 * @throws CronException
 * @access private
 */
function _elgg_cron_page_handler($page)
{
    if (!isset($page[0])) {
        forward();
    }
    if (PHP_SAPI !== 'cli' && elgg_get_config('security_protect_cron')) {
        elgg_signed_request_gatekeeper();
    }
    $period = strtolower($page[0]);
    $allowed_periods = elgg_get_config('elgg_cron_periods');
    if ($period != 'run' && !in_array($period, $allowed_periods)) {
        throw new \CronException("{$period} is not a recognized cron period.");
    }
    if ($period == 'run') {
        _elgg_cron_run();
    } else {
        // Get a list of parameters
        $params = array();
        $params['time'] = time();
        // Data to return to
        $old_stdout = "";
        ob_start();
        $msg_key = "cron_latest:{$period}:msg";
        $msg = elgg_echo('admin:cron:started', [$period, date('r', time())]);
        elgg_get_site_entity()->setPrivateSetting($msg_key, $msg);
        $old_stdout = elgg_trigger_plugin_hook('cron', $period, $params, $old_stdout);
        $std_out = ob_get_clean();
        $msg = $std_out . $old_stdout;
        echo $msg;
        elgg_get_site_entity()->setPrivateSetting($msg_key, $msg);
    }
    return true;
}
Ejemplo n.º 2
0
/**
 * Cron handler
 *
 * @param array $page Pages
 *
 * @return bool
 * @throws CronException
 * @access private
 */
function _elgg_cron_page_handler($page)
{
    if (!isset($page[0])) {
        forward();
    }
    $period = strtolower($page[0]);
    $allowed_periods = elgg_get_config('elgg_cron_periods');
    if ($period != 'run' && !in_array($period, $allowed_periods)) {
        throw new \CronException("{$period} is not a recognized cron period.");
    }
    if ($period == 'run') {
        _elgg_cron_run();
    } else {
        // Get a list of parameters
        $params = array();
        $params['time'] = time();
        // Data to return to
        $old_stdout = "";
        ob_start();
        $old_stdout = elgg_trigger_plugin_hook('cron', $period, $params, $old_stdout);
        $std_out = ob_get_clean();
        echo $std_out . $old_stdout;
    }
    return true;
}