public function cron()
 {
     global $CFG, $DB;
     $hour = get_config('block_configurable_reports', 'cron_hour');
     $min = get_config('block_configurable_reports', 'cron_minute');
     $date = usergetdate(time());
     $usertime = mktime($date['hours'], $date['minutes'], $date['seconds'], $date['mon'], $date['mday'], $date['year']);
     $crontime = mktime($hour, $min, $date['seconds'], $date['mon'], $date['mday'], $date['year']);
     if ($crontime - $usertime < 0) {
         return false;
     }
     $lastcron = $DB->get_field('block', 'lastcron', array('name' => 'configurable_reports'));
     if (!$lastcron and $lastcron + $this->cron < time()) {
         return false;
     }
     // Starting to run...
     //$DB->set_field('blocks', 'lastcron',time(), array('name' => 'configurable_reports'));
     require_once $CFG->dirroot . "/blocks/configurable_reports/locallib.php";
     require_once $CFG->dirroot . '/blocks/configurable_reports/report.class.php';
     require_once $CFG->dirroot . '/blocks/configurable_reports/reports/sql/report.class.php';
     mtrace("\nConfigurable report (block)");
     $reports = $DB->get_records('block_configurable_reports');
     if ($reports) {
         foreach ($reports as $report) {
             // Running only SQL reports. $report->type == 'sql'.
             if ($report->type == 'sql' and (!empty($report->cron) and $report->cron == '1')) {
                 $reportclass = new report_sql($report);
                 // Execute it using $remotedb.
                 $starttime = microtime(true);
                 mtrace("\nExecuting query '{$report->name}'");
                 $components = cr_unserialize($reportclass->config->components);
                 $config = isset($components['customsql']['config']) ? $components['customsql']['config'] : new stdclass();
                 $sql = $reportclass->prepare_sql($config->querysql);
                 $sqlqueries = explode(';', $sql);
                 foreach ($sqlqueries as $sql) {
                     mtrace(substr($sql, 0, 60));
                     // Show some SQL.
                     $results = $reportclass->execute_query($sql);
                     mtrace($results == 1 ? '...OK time=' . round((microtime(true) - $starttime) * 1000) . 'mSec' : 'Some SQL Error' . '\\n');
                 }
                 unset($reportclass);
             }
         }
     }
     return true;
     // Finished OK.
 }
<?php

require_once '../../../../../config.php';
////
global $CFG, $DB;
require_once '../../../locallib.php';
$components = required_param('component', PARAM_RAW);
//$components = trim($components);
require_once $CFG->dirroot . '/blocks/cobalt_reports/report.class.php';
require_once $CFG->dirroot . '/blocks/cobalt_reports/locallib.php';
require_once $CFG->dirroot . '/blocks/cobalt_reports/reports/sql/report.class.php';
$rsql = new report_sql;
$rsql->config = $DB->get_record('block_cobalt_reports', array('id' => $components));
$component = $DB->get_field('block_cobalt_reports', 'components', array('id' => $components));
$components = cr_unserialize($component);

$filters = (isset($components['filters']['elements'])) ? $components['filters']['elements'] : array();
$calcs = (isset($components['calcs']['elements'])) ? $components['calcs']['elements'] : array();

$tablehead = array();
$finalcalcs = array();
$finaltable = array();
$tablehead = array();

//$components = cr_unserialize($this->config->components);
$config = (isset($components['customsql']['config'])) ? $components['customsql']['config'] : new stdclass;
$totalrecords = 0;

$sql = '';
if (isset($config->querysql)) {
    // FILTERS