Esempio n. 1
0
function return_ofc_24()
{
    global $cms, $ps;
    $styles =& $cms->theme->styles;
    $hours = array();
    $labels = array();
    $data = array();
    $data_avg = array();
    $conns = array();
    $conns_avg = array();
    $sum = 0;
    $avg = 0;
    $maxlimit = 100;
    $maxlimit2 = 100;
    $minlimit = 0;
    $max = 24;
    list($newest) = $ps->db->fetch_list("SELECT hour FROM {$ps->t_map_hourly} ORDER BY statdate DESC,hour DESC LIMIT 1");
    if ($newest === null) {
        $newest = date("H");
    }
    // build a list of hours in the proper order
    for ($h = $newest; count($hours) < 24; $h--) {
        if ($h < 0) {
            $h = 23;
        }
        $hours[sprintf('%02d:00', $h)] = 'null';
    }
    $hours = array_reverse($hours);
    // get the last 24 hours of data
    $ps->db->query("SELECT statdate,hour,SUM(kills),SUM(connections) " . "FROM {$ps->t_map_hourly} " . "GROUP BY statdate,hour " . "ORDER BY statdate DESC,hour DESC LIMIT {$max}");
    // build our data and labels
    $data = $hours;
    $conns = $hours;
    $maxdata = 0;
    $maxconn = 0;
    while (list($statdate, $hour, $kills, $connections) = $ps->db->fetch_row(0)) {
        $hh = sprintf('%02d:00', $hour);
        $sum += $kills;
        $data[$hh] = $kills;
        $conns[$hh] = $connections;
        $maxdata = max($maxdata, $kills);
        $maxconn = max($maxconn, $connections);
    }
    $labels = array_keys($hours);
    #	print_r($hours);
    #	print_r($data);
    #	print_r($conns);
    #	print_r($labels);
    if ($data) {
        $avg = $sum / count($data);
        $data_avg = array_pad(array(), count($data), $avg);
        #		$maxlimit  = ceil(ceil($maxdata / 100) * 100);
    }
    if ($conns) {
        $avg = $sum / count($conns);
        $conns_avg = array_pad(array(), count($conns), $avg);
        #		$maxlimit2 = ceil(ceil($maxconn / 100) * 100);
    }
    include_once PS_ROOTDIR . '/includes/ofc/open-flash-chart.php';
    $g = new graph();
    $g->bg_colour = $styles->val('flash.last24.bgcolor', 'flash.bgcolor');
    $g->title($styles->val('flash.last24.title', $cms->trans('Last 24 Hours'), true), '{' . $styles->val('flash.last24.title.style', 'font-size: 16px', true) . '}');
    $g->set_data($data_avg);
    $g->set_data($data);
    //	$g->set_data($conns_avg);
    $g->set_data($conns);
    $g->attach_to_y_right_axis(3);
    $lines = $styles->attr('flash.last24.lines.line');
    $g->line(coalesce($lines[0]['width'], 1), coalesce($lines[0]['color'], '#9999ee'), coalesce($lines[0]['key'], $cms->trans('Average Kills')), coalesce($lines[0]['key_size'], $styles->val('flash.last24.lines.key_size'), 9));
    $g->line_dot(coalesce($lines[1]['width'], 2), coalesce($lines[1]['dot_size'], 5), coalesce($lines[1]['color'], '#5555ff'), coalesce($lines[1]['key'], $cms->trans('Kills')), coalesce($lines[1]['key_size'], $styles->val('flash.last24.lines.key_size'), 9));
    $g->line_dot(coalesce($lines[2]['width'], 1), coalesce($lines[2]['dot_size'], 3), coalesce($lines[2]['color'], '#000000'), coalesce($lines[2]['key'], $cms->trans('Connections')), coalesce($lines[2]['key_size'], $styles->val('flash.last24.lines.key_size'), 9));
    // label each point with its value
    $g->set_x_labels($labels);
    //	$g->set_x_axis_steps(count($labels) / 3 + 1);
    //	$g->set_x_tick_size(1);
    $g->set_x_label_style(10, '#000000', 0, 3, '#cccccc');
    //	$g->set_x_label_style( 10, '0x000000', 0, 2 );
    //	$g->set_x_label_style('none');
    #	$g->set_x_label_style( 8, '#000000', 2 );
    $g->set_inner_background(coalesce($styles->val('flash.last24.bg_inner1', 'flash.bg_inner1'), '#E3F0FD'), coalesce($styles->val('flash.last24.bg_inner2', 'flash.bg_inner2'), '#CBD7E6'), coalesce($styles->val('flash.last24.bg_inner_angle', 'flash.bg_inner_angle'), 90));
    $g->x_axis_colour('#eeeeee', '#eeeeee');
    $g->y_axis_colour('#5555ff', '#eeeeee');
    $g->y_right_axis_colour('#000000', '#eeeeee');
    //	$g->set_x_offset( false );
    // set the Y max
    $g->set_y_max($maxdata);
    $g->set_y_min(0);
    $g->set_y_right_max($maxconn);
    $g->set_y_right_min(0);
    /*
    	$g->set_y_max($maxlimit);
    	$g->set_y_min($minlimit);
    	$g->set_y_right_min($minlimit);
    	$g->set_y_right_max($maxlimit2);
    */
    $g->set_y_legend(coalesce($lines[1]['key'], $cms->trans('Kills')), 12, coalesce($lines[1]['color'], '#5555ff'));
    $g->set_y_right_legend(coalesce($lines[2]['key'], $cms->trans('Connections')), 12, coalesce($lines[2]['color'], '#000000'));
    //	$g->y_label_steps();
    $g->set_tool_tip($styles->val('flash.last24.tooltip', '#key#<br>#val# (#x_label#)', true));
    // label every 20 (0,20,40,60)
    //	$g->x_label_steps( 2 );
    // display the data
    print $g->render();
}