[PREMESSA]
JPGraph è una libreria PHP Object Oriented, ovvero utilizza gli oggetti per funzionare.
Quindi per l'utilizzo di questo codice è necessario avere almeno un'infarinatura sul PHPOO quindi andate a studiare gli articoli riportati in seguito
Qui ci sono i link:
http://freephp.html.it/articoli/view_articolo.asp?id=89
http://freephp.html.it/articoli/view_articolo.asp?id=90
http://freephp.html.it/articoli/view_articolo.asp?id=91
http://freephp.html.it/articoli/view_articolo.asp?id=92
ed infine leggete anche l'articolo su come usare le librerie GD
http://freephp.html.it/articoli/view_articolo.asp?id=93
[REQUISITI]
Per far funzionare questo codice è necessario PHP 4.1.0 o superiore, ma è consigliato, anche dagli stessi sviluppatori di JPGraph di avere ALMENO PHP 4.3.0 o superiore.
E' necessario avere le librerie GD installate nel sistema. Non ha importanza che siano le 1 o le 2 vanno bene entrambe. L'importante è che l'estensione PHP che usa le GD sia compilata con JPG, PNG, TIF e simili e soprattutto il supporto TTF, ovvero True Type Font.
Per quanto riguarda i font sui sistemi *nix e *BSD riporto quanto scritto nel sito
Inoltre dalla versione 1.13, noi tratteremo la 1.14, è possibile utilizzare anche i font Vera Bitsream Vera TTF scaricabili da http://www.gnome.org/fonts/
[LICENZA]
La licenza è la QPL 1.0, ovvero QT Free Lincense.
Questa licenza è SOLO se le JPGraph non vengono usate in un'ambito commerciale, se devono essere usate in applicativi che dovete vendere dovete acquistare la licenza professionale.
Andate sul sito per maggiori informazioni.
Inoltre, come informazione aggiuntiva, la versione professionale ha anche il supporto per la generazione dei codici a barre.
Qui trovate alcuni esempi sui codici a barre.
http://www.aditus.nu/jpgraph/jpg_barcodes.php
[INSTALLAZIONE]
Per installarle è necessario scaricare il file .tar.gz dal loro sito.
Ecco il link:
http://members.chello.se/jpgraph/jpg...ph-1.14.tar.gz
Questo si trova nella pagina
http://www.aditus.nu/jpgraph/jpdownload.php
Sono presenti anche altre cose e le versioni vecchie di JPGraph
Dopo aver scaricato il file .tar.gz decomprimete il file. All'interno della cartella decompressa troverete 4 file\cartelle:
codice:
[DIR] docs
[DIR] src
[TXT] QPL
[ ] README
Dentro DOCS ci sta tutta la documentazione, manuale e i riferimenti delle classi
Dentro src ci stanno i sorgenti e un sacco di esempi
Il file QPL contiene la licenza, andatela a leggere perché vi permette di capire in quali ambito potete usare le JPGraph
Ed infine il file README contiene una spiegazione sul contenuto del file compresso, come si installano le librerie e altre cose.
Per comodità vostra (ovvero vi evito di leggere il file README per eseguire l'installazione) spiego qui velocemente come installare le librerie
- Dopo aver decompresso il file .tar.gz dovete copiare tutto il contenuto di src esclusa però la directory Examples e il file Changelog nella cartella del progetto dove vi serve usarle. Se volete fare solo esperimenti createvi una cartella, ad es prove e dentro mettete una dir chiamata jpgraph e dentro mettete questi file in modo di non creare troppa confusione.
- Aprite il file jpgraph.php, uno di quelli che avete appena copiato
- Ora è necessario impostare la configurazione! Innanzi tutto devono essere impostate le cartelle per la cache e i TTF
In base al proprio sistema operativo devono essere impostate le cartelle.
Queste su Linux
codice:
DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");
DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");
Queste su Windows
codice:
DEFINE("CACHE_DIR","{$_ENV['TEMP']}/jpgraph_cache/");
DEFINE("TTF_DIR","{$_ENV['SystemRoot']}/fonts/");
Ricordate su linux\bsd che quando create la cartella jpgraph_cache dentro temp di impostarla su 0777 altrimenti JPGraph non potrà usare la cache.
Altri settaggi utili possono essere
codice:
// Deafult graphic format set to "auto" which will automatically
// choose the best available format in the order png,gif,jpg
// (The supported format depends on what your PHP installation supports)
DEFINE("DEFAULT_GFORMAT","auto");
Questo imposta l'output di default, se non volete farlo scegliere a lui potete impostare voi il formato di output
codice:
// Should the cache be used at all? By setting this to false no
// files will be generated in the cache directory.
// The difference from READ_CACHE being that setting READ_CACHE to
// false will still create the image in the cache directory
// just not use it. By setting USE_CACHE=false no files will even
// be generated in the cache directory.
DEFINE("USE_CACHE",false);
questo, se volete fargli usare la cache, deve essere impostato su TRUE
---===[ I M P O R T A N T E ] ===---
codice:
DEFINE("CACHE_FILE_GROUP","wwwadmin");
è di IMPORTANZA VITALE che sia impostato a
codice:
DEFINE("CACHE_FILE_GROUP","");
nei sistemi *nix\bsd altrimenti potreste avere non pochi problemi!!!
---===[ I M P O R T A N T E ] ===---
A questo punto avete appena finito di installare e configurare le librerie JPGraph! Se volete modificare altri settaggi potete andare a leggere il file jpgraph.php è veramente ben commentato!
Per eventuali problemi leggetevi prima il file README e poi il manuale delle jpgraph
[UTILIZZO]
Qui spiegherò uno degli esempi, il primo per l'esattezza.
codice:
<?php
include ("../jpgraph.php");
include ("../jpgraph_line.php");
// Some data
$ydata = array(11,3,8,12,5,1,9,13,5,7);
// Create the graph. These two calls are always required
$graph = new Graph(350,250,"auto");
$graph->SetScale("textlin");
// Create the linear plot
$lineplot=new LinePlot($ydata);
$lineplot->SetColor("blue");
// Add the plot to the graph
$graph->Add($lineplot);
// Display the graph
$graph->Stroke();
?>
Il codice è abbastanza basilare, crea un semplice grafico, nel quale l'ascissa ha una variazione fissa, ovvero di una unità, mentrè l'ordinata ha una variazione dinamica.
Il codice sopra riportato non fa altro che:
1° Includere i file necessari di JPGraph
2° Creare un'elenco dei punti dell'ordinata. Ognuno di questi punti ha una distanza fissa dal precedente di 1U, ovvero una unità.
3° Imposta la dimensione del grafico e il tipo di cache da usare
4° Crea la linea basandosi sull'elenco dei punti precedentemente creato ed imposta il colore
5° Aggiunge al nostro grafico la linea derivata dal nostro elenco dei punti
6° Ed infine disegna il tutto
Ora qui spiegherò il codice passo passo
codice:
include ("../jpgraph.php");
include ("../jpgraph_line.php");
Questo codice non fa altro che includere il file principale delle JPGraph e l'estensione che appunto gestisce le linee
codice:
$ydata = array(11,3,8,12,5,1,9,13,5,7);
Crea l'elenco delle coordinate Y, dell'ordinata, da disegnare in seguito. Anche il nome lascia intendere questo
codice:
$graph = new Graph(350,250,"auto");
$graph->SetScale("textlin");
Crea il grafico passandogli come parametro la lunghezza, l'altezza ed il tipo di cache. Sarebbe stato possibile passare anche il TimeOut della cache e se doveva inviare o meno l'immagine direttamente al browser.
Poi imposta la scala da utilizzare il primo parametro va passato per forza e definisce il tipo di assi. Il tipo di assi chiamato textlin, ovvero un mix tra TEXT e LIN. TEXT una Text Scale applicabile solo all'ascissa mentre LIN indica Linear Scale, ed è per questo che le coordinate sull'ascissa hanno tutte una variazione fissa.
Andate a guarda il manuale per maggiori riferimento
codice:
$lineplot=new LinePlot($ydata);
$lineplot->SetColor("blue");
Crea una linea per il grafico. Il costruttore prende 2 parametri di cui il secondo opzionale. Il primo indica la lista delle coordinate Y, ovvero i punti sull'ordinata ed il secondo, se presente, indica la lista dei punti sull'ascissa. Essendo che abbiamo precedentemente impostato lo SCALE a LINEARE non abbiamo bisogno di inserire la lista dei punti sull'ascissa
La seconda riga imposta il colore della linea
codice:
$graph->Add($lineplot);
aggiunge al nostro grafico la linea appena costruita
codice:
$graph->Stroke();
Disegna il grafico.
Stroke prende anche un'argomento, ovvero il file dove scrivere il tutto. Ovviamente se viene passato il file questo non verrà stampato a video.
ok...ho finito
questo non vuole essere affatto una guida completa, ma solo un'introduzione, uno spunto dal quale partire per poter sviluppare i propri progetti
ciao a tuttizzzz dal vostro dllz, che adorz linuzzz ^^ (nn vi fate illusioni! :gren: :gren: )