Ultimamente mi sono dato allo studio di Codeigniter, un framework per PHP, e devo dire che mi sto trovando bene.
Una problematica è stata quella di ceare grafici prendendo i dati da database.
Vediamo come fare.
Innanzitutto installate CI (codeigniter) e controllate che funzioni.
Dopo di che scaricate la libreria JpGraph e mettete tutti i files dentro libraries -> jpgraph.
Infine a livello di root del sito create una directory temp e dategli i permessi in scrittura; qua dentro verranno salvate temporaneamente le immagini.
Poi verifichiamo che in config -> autolad sia caricata la libreria database:
$autoload['libraries'] = array('database');
e che siano caricato l'helper url:
$autoload['helper'] = array('url', 'form');
Questa configurazione dovrebbe essere sufficiente.
Adesso passiamo al controller che chiamerò Report:
// report.php
<?php
class Report extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('jpgraph');
}
public function index() {
$this->load->model('report_model');
$data = array();
$data['titolo'] = 'Report';
$data['causali'] = $this->report_model->getCausali();
$graphTempDirectory = 'temp';
$gEntrate = $this->report_model->graphEntrate(); // DATI
$legendsCausaliE = $this->report_model->legendsCausaliE(); // LEGGENDA
$graphE = $this->jpgraph->chartEntrate($gEntrate, 'Enters graph', $legendsCausaliE); // CHART
$graphEnterName = 'enter.png';
$graphFileLocationE = $graphTempDirectory . '/' . $graphEnterName;
$graphE->Stroke('./' . $graphFileLocationE);
$data['graphe'] = $graphFileLocationE;
$this->load->view('header', $data);
$this->load->view('report_view', $data);
$this->load->view('footer');
}
}
Nel costruttore carichiamo la libreria jpgraph.