Пример кода
| Среда, 23 ноября 2011 г. Просмотров: 244 |
<?php if (!defined('BASEPATH'))
exit('No direct script access allowed');
/**
* @sait http://ip-atc.vn.ua
* @copyright 2010
* Общий помощник для контролера Генерации графиков
* @author Vadim S. Borisovish
* @copyright Sverdlovadim(C)
* @version 2010
* @access public
*/
class lib_graph
{
public function get_data_day($type_graph)
{
$CI = &get_instance();
$varios=$CI->session->userdata('grapf');
// формируем масив дат [Unix] => Вывод на графике
$period = $CI->mdl_graphs->preparation_array($type_graph['type_of_graph'], $varios['number_times']<img src="http://www.ip-atc.vn.ua/uploads/smiles/wink.gif" width="19" height="19" alt="wink" style="border:0;" class="smiley">;
// формируем список уникальных пользователей за заданый периоди которые звонили, \
// в качестве вводных даных задаем масив дат в Unix формате,
$users_array = $CI->mdl_graphs->get_users_unique(array_keys($period),$varios['number_users']<img src="http://www.ip-atc.vn.ua/uploads/smiles/wink.gif" width="19" height="19" alt="wink" style="border:0;" class="smiley">;
$chart = new open_flash_chart();
foreach ($users_array as $users){
$where_id = explode(".", $users); // 0 - база; 1 - id
$filter = array();
$filter[$CI->mdl_graphs->customer_id] = $where_id[1];
$filter[$CI->mdl_graphs->customer_database] = $where_id[0];
$data= $CI->mdl_graphs->get_users_date($filter, $type_graph, array_keys($period));
$bar = new bar_glass();
$bar->colour($CI->mdl_graphs->generateRandomColor());
//$bar->key("Test", 12);
$bar->key($CI->mdl_graphs->see_user_id($where_id[1], $where_id[0]<img src="http://www.ip-atc.vn.ua/uploads/smiles/wink.gif" width="19" height="19" alt="wink" style="border:0;" class="smiley">, 12);
$bar->set_values( $data);
$chart->add_element( $bar );
//Готовим архив для нахождения максимального е значение графика
foreach($data as $value ){
$array_zn[]= $value;
}
}
// вычисляем максимальное значение данных в архиве
$max = 0;
foreach ($array_zn as $value ){
if($value > $max)
$max = $value;
}
$x_labels = new x_axis_labels();
$x_labels->set_steps( 1 );
$x_labels->set_vertical( 50);
$x_labels->set_colour( '#A2ACBA' );
// выводим снизу только значения ключей
$x_labels->set_labels( array_values($period) );
$x = new x_axis();
$x->set_colour( '#A2ACBA' );
$x->set_grid_colour( '#D7E4A3' );
$x->set_offset( false );
$x->set_steps(1);
// Add the X Axis Labels to the X Axis
$x->set_labels( $x_labels );
$chart->set_x_axis( $x );
// Ось Y
$y = new y_axis();
$y->set_range( 0, $max, $max/20 );
$chart->add_y_axis( $y );
// Подпись снизу :
$x_legend = new x_legend(' Наведите мышкой на график для получения более точно значения');
$x_legend->set_style( '{font-size: 15px; color: #778877; text-align: left;}' );
$chart->set_x_legend( $x_legend );
// подпись сверху
$Q=array_values($period);
$legend = "График звонков по ".$Q[1]. " включно.";
$title = new title( $legend);
$title->set_style( "{font-size: 20px; color: #A2ACBA; text-align: center;}" );
$chart->set_title( $title );
echo $chart->toPrettyString();
}
}
?>


