cours - Intranet | IUT de Troyes
Transcription
cours - Intranet | IUT de Troyes
Créer des documents autres que HTML Créer des images à la volée: Avec la libraire GD (librairie serveur) Avec la libraire jpGraph (lib d'inclusion) http://jpgraph.net/ Images à la volée avec lib GD La librairie GD est une librairie serveur Seul l'administrateur du serveur peut l'installer. Généralement elle est présente par défaut Vérifier avec une page php du type: <? phpinfo() ?> Images à la volée avec lib GD Source de base: <?php header ("Content-type: image/png"); $image = imageCreate (200, 100); $couleur_fond = imageColorAllocate ($image, 255, 0, 0); ImagePng ($image); ?> fonctions utiles: imagefilledrectangle() , imagestring() , imageColorAllocate() documentations: http://www.lephpfacile.com/cours/index.php?p=23 Images à la volée avec lib GD Exemple: <?php header ("Content-type: image/png"); $image = imageCreate (200, 100); $couleur_fond = imageColorAllocate ($image, 255, 0, 0); $couleur_bar = imageColorAllocate ($image, 0, 255, 0); imagefilledrectangle ( $image, 10, 10, 150, 80, $couleur_bar); $couleur_text = imageColorAllocate ($image, 0, 0, 255); imagestring($image, 5, 30, 40, "Salut ImagePng ($image); ?> !!", $couleur_text); Images à la volée avec lib GD Exemple avec un passage de paramètre: <?php header ("Content-type: image/png"); $image = imageCreate (200, 100); $couleur_fond = imageColorAllocate ($image, 255, 0, 0); $tt=$_GET["texte"]; $couleur_bar = imageColorAllocate ($image, 0, 255, 0); imagefilledrectangle ( $image, 10, 10, 150, 80, $couleur_bar); $couleur_text = imageColorAllocate ($image, 0, 0, 255); imagestring($image, 5, 30, 40, "Salut $tt!!", $couleur_text); ImagePng ($image); ?> Images à la volée avec lib GD Appel de l'image précédemment crée: ... <img src="image.php?texte=bob" > <img src="image.php?texte=toto" > <img src="image.php?texte=titi" > ... application au cas St Pavut: il est demandé de faire une barre pour le taux de réservations pour chaque manifestation. Il est donc possible d'inclure dans la boucle d'afchage des manifestations le code permettant d'appeler l'image pour chaque manif: ... <img src="barregraph.php?num=5" >... ensuite il faut dans le source générant l'image récupérer l'id dans la variable $_GET[num] . Et générer l'image en fonction des informations de la manifestation. Exemple : Barre.php pour dutaf <?php mysql_connect(« localhost« , »srcxxzz », »1234 ») ; mysql_select_db(«basesrcxxzz « ) ; $tt=$_GET["num"]; $result=mysql_query("select * from articles where art_id=$tt"); $data=mysql_fetch_object($result); $nb= $data->art_qte; header ("Content-type: image/png"); $image = imageCreate (200, 100); $couleur_fond = imageColorAllocate ($image, 255, 0, 0); $couleur_bar = imageColorAllocate ($image, 0, 255, 0); imagefilledrectangle ( $image, 10, 10, $nb, 80, $couleur_bar); ImagePng ($image); ?> Exemple : Barre.php pour saintPavut Quel requete permettra d'obtenir ce graphique ? Quel champs « d'entrée » pour faire ce graphique ? Quelles tables sont elles nécessaires , quelles données sont nécessaires pour construire ce graphique ? Abonnes ? Reservations ? Manifestations ? Salles ? Sous quelle forme doit on récupérer ces données ? Utiliser modx avec libGD Sur le meme principe que la generation du pdf, il est possible d'utiliser le moteur de modx : dans ce cas on appelle pas barregraph.php?num=5 mais index.php? id=7&num=5 (ici 7 représentera l'id de la ressource générant la barre) Pour eviter de prendre trop de ressources, toute la partie libgd et jpgraph sera développé hors de modx. Graphique à la volée Utilisation de amChart (html/css) Graphique animé http://www.amcharts.com/ Utilisation de jpgraph (image) Image fixe (png, gif...) http://jpgraph.net/ Graphique à la volée avec jpgraph Utilisation de jpgraph Il faut avoir libGD d'installé Jpgraph est une librairie d'inclusion Voir: http://jpgraph.net/ Fichier jpgraph-3.0.7.tar.gz Dans cette archive, il faut prendre tout le dossier src (renommer éventuellement jpgraph). Il contient tous les fichiers à inclure Il n'y a pas ici un seul fichier librairie à télécharger mais plusieurs en fonction du graphique à réaliser. Graphique à la volée avec jpgraph Utilisation de jpgraph Il faut avoir libGD d'installé Jpgraph est une librairie d'inclusion Voir: http://www.aditus.nu/jpgraph/ Fichier jpgraph-3.0.7.tar.gz Dans cette archive, il faut prendre tout le dossier src (renommer éventuellement jpgraph). Il contient tous les fichiers à inclure Il n'y a pas ici un seul fichier librairie à télécharger mais plusieurs en fonction du graphique à réaliser. Graphique à la volée avec jpgraph <?php require_once ('jpgraph/jpgraph.php'); require_once ('jpgraph/jpgraph_pie.php'); require_once ('jpgraph/jpgraph_pie3d.php'); $data = array(20,27,45,75,90); $graph = new PieGraph(350,200); $graph->SetShadow(); $graph->title->Set("Example 2 3D Pie plot"); $graph->title->SetColor("darkblue"); $graph->legend->Pos(0.1,0.2); $p1 = new PiePlot3d($data); $p1->SetTheme("sand"); $p1->SetCenter(0.4); $p1->SetSize(0.4); $p1->SetHeight(5); $p1->SetAngle(45); $p1->Explode(array(0,40,0,0)); $p1->value->SetFont(FF_ARIAL,FS_NORMAL,10); $p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct")); $graph->Add($p1); $graph->Stroke(); ?> Graphique à la volée avec jpgraph <?php include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_pie.php"); include ("jpgraph/jpgraph_pie3d.php"); $valeur[0] =40; $legende[0] = "Jan"; $valeur[1] =60; $legende[1] = "Feb"; $valeur[2] =21; $legende[2] = "Mar"; $valeur[3] =33; $legende[3] = "Apr"; $graph = new PieGraph(350,200); $graph->SetShadow(); $graph->title->Set("Example 2 3D Pie plot"); $graph->title->SetColor("darkblue"); $graph->legend->Pos(0.1,0.2); $p1 = new PiePlot3d($data); $p1->SetTheme("sand"); $p1->SetCenter(0.4); $p1->SetSize(0.4); $p1->SetHeight(5); $p1->SetAngle(45); $p1->Explode(array(0,40,0,0)); $p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct")); $graph->Add($p1); $graph->Stroke(); ?> Graphique à la volée avec jpgraph <?php include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_pie.php"); include ("jpgraph/jpgraph_pie3d.php"); // connexion à la base de données ... ... //boucle pour charger les valeurs while( $i<$nb) { $data = mysql_fetch_object($result); $valeur[$i] =$data->val; $legende[$i] = $data->ville; $i++; } $graph = new PieGraph(300,200,"auto"); $graph->SetShadow(); $graph->title->Set("A simple Pie plot"); $graph->title->SetFont(FF_FONT1,FS_BOLD); $p1 = new PiePlot3D($valeur); $p1->SetSize(0.5); $p1->SetCenter(0.45); $p1->SetLegends($legende); $graph->Add($p1); $graph->Stroke(); ?> Graphique à la volée avec jpgraph <?php include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_pie.php"); include ("jpgraph/jpgraph_pie3d.php"); // connexion à la base de données ... … //Requete permettant l'extraction de ces données //boucle pour charger les valeurs while( $data = mysql_fetch_object($result)){ $valeur[$i] =$data->val; $legende[$i] = $data->ville; $i++; } $graph = new PieGraph(300,200,"auto"); ... $p1 = new PiePlot3D($valeur); ... $p1->SetLegends($legende); ... ?> Graphique à la volée avec jpgraph Quel requete permettra d'obtenir ce graphique ? Quel champs « d'entrée » pour faire ce graphique ? Quelles tables sont elles nécessaires , quelles données sont nécessaires pour construire ce graphique ? Abonnes ? Reservations ? Manifestations ? Salles ? Sous quelle forme doit on récupérer ces données ? Ville totalresaabo titremanif Lusigny 123 After Sun Pruny 34 After Sun Saint André 70 After Sun Troyes 123 After Sun Verrieres 37 After Sun 2) dans quelles tables trouve t on ces champs ? Ville → …. Titremanif → …. Totalresaabo → …. Graphique à la volée Amchart : http://www.amcharts.com/