Пример кода


Среда, 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();
 
      }
     
  
}
?>
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru digg.com google.com yandex.ru