Changeset 32296 in spip-zone


Ignore:
Timestamp:
Oct 23, 2009, 7:20:51 AM (11 years ago)
Author:
erational@…
Message:

1 seul modele
1 seule fonction
1 exemple avec des boucles

Location:
_plugins_/jpgraph
Files:
1 added
3 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/jpgraph/demo_jpgraph.html

    r32292 r32296  
    2121    <h3>Courbe</h3>
    2222
    23 [(#MODELE{jpgraph_courbe}
     23[(#MODELE{jpgraph}
     24{type_graphe=courbe}
    2425{titre=Téléchargement du plugin}
    2526{donnee=2.2;1.3;7;30}
     
    2930{couleur=green})]
    3031
    31 <pre>&lt;jpgraph_courbe
     32<pre>&lt;jpgraph
     33|type_graphe=courbe
    3234|titre=Téléchargement du plugin
    3335|donnee=3;1.3;7;30
     
    3840
    3941<h3>Barre</h3>
    40 [(#MODELE{jpgraph_barre}
     42[(#MODELE{jpgraph}
     43{type_graphe=barre}
    4144{titre=Consommation de noisettes par CMS}
    4245{donnee=10;4;2;3.1}
     
    4750
    4851
    49 <pre>&lt;jpgraph_barre
     52<pre>&lt;jpgraph
     53|type_graphe=barre
    5054|titre=Consommation de noisettes par CMS
    5155|donnee=10;2;2;3.3
     
    5761
    5862<h3>Camembert</h3>
    59 [(#MODELE{jpgraph_camembert}
     63[(#MODELE{jpgraph}
     64{type_graphe=camembert}
    6065{titre=Vos plugins préférées}
    6166{donnee=10;12;20;50}
     
    6570
    6671
    67 <pre>&lt;jpgraph_camembert
     72<pre>&lt;jpgraph
     73|type_graphe=camembert
    6874|titre=Vos plugins préférées
    6975|donnee=10;12;20;50
     
    7177|largeur=450
    7278|hauteur=450&gt;</pre>
    73    
     79
     80<h2>Et avec des boucles SPIP..... </h2>
     81
     82#SET{c_article,0}<BOUCLE_countA(ARTICLES)> </BOUCLE_countA>#SET{c_article,#TOTAL_BOUCLE}</B_countA>
     83#SET{c_rubrique,0}<BOUCLE_countB(RUBRIQUES)> </BOUCLE_countB>#SET{c_rubrique,#TOTAL_BOUCLE}</B_countB>
     84#SET{c_mot,0}<BOUCLE_countC(MOTS)> </BOUCLE_countC>#SET{c_mot,#TOTAL_BOUCLE}</B_countC>
     85
     86[(#MODELE{jpgraph}
     87{type_graphe=barre}
     88{titre=Statistiques du site}
     89{donnee=[(#GET{c_article})];[(#GET{c_rubrique})];[(#GET{c_mot})]}
     90{legende=Nb Articles;Nb Rubriques; Nb Mots}
     91{largeur=420}
     92{hauteur=300}
     93{couleur=orange})]
     94
     95<pre>&#035;SET{c_article,0}&lt;BOUCLE_countA(ARTICLES)&gt; &lt;/BOUCLE_countA&gt;&#035;SET{c_article,&#035;TOTAL_BOUCLE}&lt;/B_countA&gt;
     96&#035;SET{c_rubrique,0}&lt;BOUCLE_countB(RUBRIQUES)&gt; &lt;/BOUCLE_countB&gt;&#035;SET{c_rubrique,&#035;TOTAL_BOUCLE}&lt;/B_countB&gt;
     97&#035;SET{c_mot,0}&lt;BOUCLE_countC(MOTS)&gt; &lt;/BOUCLE_countC&gt;&#035;SET{c_mot,&#035;TOTAL_BOUCLE}&lt;/B_countC&gt;
     98
     99[(&#035;MODELE{jpgraph}
     100{type_graphe=barre}
     101{titre=Consommation de noisettes par CMS}
     102{donnee=[(&#035;GET{c_article})];[(&#035;GET{c_rubrique})];[(&#035;GET{c_mot})]}
     103{legende=Articles;Rubriques;Mots}
     104{largeur=500}
     105{hauteur=300}
     106{couleur=orange})]</pre>
     107
    74108
    75109        </div><!--#contenu-->
  • _plugins_/jpgraph/jpgraph_fonctions.php

    r32291 r32296  
    77//
    88// cree un hash unique
    9 //
     9// (a ameliorer activer le cache de jpgraph ou celui de spip ?)
    1010function jpgraph_name_hash($type="graph",$largeur,$hauteur,$donnee) {
    1111    // repertoire IMG/jpgraph dispo ?
     
    2626// filtre pour creer des courbes simples
    2727//
    28 function filtre_jpgraph_courbe($str,$donnee="",$legende="",$largeur=400,$hauteur=300,$titre="",$couleur="orange"){
    29     // retrouver jpgraph
    30         $cwd = getcwd();
    31         chdir(realpath(_DIR_JPGRAPH_LIB));
    32     require_once ('src/jpgraph.php');
    33     require_once ('src/jpgraph_line.php');
    34         chdir($cwd);
     28function filtre_jpgraph($str,$type_graphe="courbe",$donnee="",$legende="",$largeur=400,$hauteur=300,$titre="",$couleur="orange"){
    3529   
    3630    // traiter les donnees
     31    $type_graphe = strtolower(trim($type_graphe));  // pour pb avec les modeles si du blanc en fin de ligne
     32    $couleur = trim($couleur);   
    3733    $donnee =  explode(";", $donnee);   
    3834    foreach ($donnee as $key => $value)
     
    4743    $hauteur = (int) $hauteur;    if ($hauteur<=0) $hauteur = 300;
    4844   
    49     // Create the graph. These two calls are always required
    50     $graph = new Graph($largeur,$hauteur);
    51     $graph->SetScale('textlin');
    52    
    53     // Create the linear plot
    54     $lineplot=new LinePlot($donnee);
    55     $lineplot->SetColor($couleur);
    56    
    57     // titre & legende
    58     $graph->title->Set(utf8_decode($titre));
    59     if (count($legende)>1) {
    60         $graph->xaxis->SetTickLabels($legende);
    61     }
    62    
    63     // Add the plot to the graph
    64     $graph->Add($lineplot);
    65    
    66     // Save the graph   
    67     $filename = jpgraph_name_hash("courbe",$largeur,$hauteur,$donnee);
    68     @unlink($filename); // http://jpgraph.intellit.nl/index.php?topic=4547.msg11823
    69     $graph->Stroke($filename);
    70    
    71    
    72     return "<span class='spip_documents jgraph'><img src='$filename' alt='' width='$largeur' height='$hauteur' /></span>";
    73 
    74 }
    75 
    76 //
    77 // filtre pour creer des barres horizontales
    78 //
    79 function filtre_jpgraph_barre($str,$donnee="",$legende="",$largeur=400,$hauteur=300,$titre="",$couleur="orange"){
    8045    // retrouver jpgraph
    8146        $cwd = getcwd();
    8247        chdir(realpath(_DIR_JPGRAPH_LIB));
    8348    require_once ('src/jpgraph.php');
    84     require_once ('src/jpgraph_bar.php');
    85         chdir($cwd);
    86    
    87     // traiter les donnees
    88     $donnee =  explode(";", $donnee);   
    89     foreach ($donnee as $key => $value)
    90          $donnee[$key] = (float) $value;
    91     if (count($donnee)<2)
    92         $donnee[] = "1";   // securite pour empecher les erreurs si donnnee pas renseigne 
     49    switch($type_graphe) {
     50        case "courbe":      require_once ('src/jpgraph_line.php'); break;
     51        case "barre":       require_once ('src/jpgraph_bar.php');  break;
     52        case "camembert":   require_once ('src/jpgraph_pie.php');  break;
     53        default:            $type_graphe = "courbe";
     54                            require_once ('src/jpgraph_line.php'); 
     55                            break;       
     56    }
     57    chdir($cwd);
    9358   
    94     $legende =  explode(";", $legende); 
    95     foreach ($legende as $key => $value) 
    96             $legende[$key] = utf8_decode($value);
    97     $largeur = (int) $largeur;    if ($largeur<=0) $largeur = 400;
    98     $hauteur = (int) $hauteur;    if ($hauteur<=0) $hauteur = 300;
    9959   
    100     // Create the graph. These two calls are always required
    101     $graph = new Graph($largeur,$hauteur);
    102     $graph->SetScale('textlin');
    103    
    104     // Create the linear plot
    105     $bplot = new BarPlot($donnee);
    106     $bplot->SetFillColor($couleur);
    107    
    108     // titre & legende
    109     $graph->title->Set(utf8_decode($titre));
    110     if (count($legende)>1) {
    111         $graph->xaxis->SetTickLabels($legende);
     60    // creation du graphe
     61    switch($type_graphe) {
     62        case "courbe":      $graph = new Graph($largeur,$hauteur);
     63                            $graph->SetScale('textlin');
     64                            // Create the linear plot
     65                            $plot=new LinePlot($donnee);
     66                            $plot->SetColor($couleur);
     67                            // titre & legende
     68                            $graph->title->Set(utf8_decode($titre));
     69                            if (count($legende)>1)
     70                                $graph->xaxis->SetTickLabels($legende); 
     71                            break;
     72                           
     73        case "barre":       $graph = new Graph($largeur,$hauteur);
     74                            $graph->SetScale('textlin');
     75                            // Create the linear plot
     76                            $plot = new BarPlot($donnee);
     77                            $plot->SetFillColor($couleur);   
     78                            // titre & legende
     79                            $graph->title->Set(utf8_decode($titre));
     80                            if (count($legende)>1)
     81                                $graph->xaxis->SetTickLabels($legende);                                                     
     82                            break;
     83                           
     84         case "camembert":  $graph = new PieGraph($largeur,$hauteur);   
     85                            // Create the linear plot
     86                            $plot = new PiePlot($donnee);
     87                            $plot->SetTheme("earth");   
     88                            // titre & legende
     89                            $graph->title->Set(utf8_decode($titre));
     90                            if (count($legende)>1)
     91                                $plot->SetLegends($legende);       
     92                            break;
    11293    }
    11394   
    114     // Add the plot to the graph
    115     $graph->Add($bplot);
     95    // Attacher le trace au graph
     96    $graph->Add($plot); 
    11697   
    117     // Save the graph   
    118     $filename = jpgraph_name_hash("barre",$largeur,$hauteur,$donnee);
    119     @unlink($filename); // http://jpgraph.intellit.nl/index.php?topic=4547.msg11823
    120     $graph->Stroke($filename);
    121    
    122    
    123     return "<span class='spip_documents jgraph'><img src='$filename' alt='' width='$largeur' height='$hauteur' /></span>";
    124 
    125 }
    126 
    127 //
    128 // filtre pour creer des barres horizontales
    129 //
    130 function filtre_jpgraph_camembert($str,$donnee="",$legende="",$largeur=400,$hauteur=300,$titre="",$couleur="orange"){
    131     // retrouver jpgraph
    132         $cwd = getcwd();
    133         chdir(realpath(_DIR_JPGRAPH_LIB));
    134     require_once ('src/jpgraph.php');
    135     require_once ('src/jpgraph_pie.php');
    136         chdir($cwd);
    137    
    138     // traiter les donnees
    139     $donnee =  explode(";", $donnee);   
    140     foreach ($donnee as $key => $value)
    141          $donnee[$key] = (float) $value;
    142     if (count($donnee)<2)
    143         $donnee[] = "1";   // securite pour empecher les erreurs si donnnee pas renseigne 
    144    
    145     $legende =  explode(";", $legende); 
    146     foreach ($legende as $key => $value) 
    147             $legende[$key] = utf8_decode($value);
    148     $largeur = (int) $largeur;    if ($largeur<=0) $largeur = 400;
    149     $hauteur = (int) $hauteur;    if ($hauteur<=0) $hauteur = 300;
    150    
    151     // Create the graph. These two calls are always required
    152     $graph = new PieGraph($largeur,$hauteur);
    153    
    154     // Create the linear plot
    155     $bplot = new PiePlot($donnee);
    156     $bplot->SetTheme("earth");
    157    
    158     // titre & legende
    159     $graph->title->Set(utf8_decode($titre));
    160     if (count($legende)>1) {
    161         $bplot->SetLegends($legende);           
    162     }
    163    
    164     // Add the plot to the graph
    165     $graph->Add($bplot);
    166    
    167     // Save the graph   
    168     $filename = jpgraph_name_hash("pie",$largeur,$hauteur,$donnee);
     98    // export du graphe dans un fichier   
     99    $filename = jpgraph_name_hash($type_graphe,$largeur,$hauteur,$donnee);
    169100    @unlink($filename); // http://jpgraph.intellit.nl/index.php?topic=4547.msg11823
    170101    $graph->Stroke($filename);
  • _plugins_/jpgraph/plugin.xml

    r32292 r32296  
    55        <version>0.1</version>
    66        <description>
    7   Bibliotheque graphique pour g&#233;n&#233;rer des graphes (requiert PHP5)
     7  Bibliotheque graphique pour g&#233;n&#233;rer des graphes (requiert PHP5.1 avec l'extension GD)
    88 
    99  Une fois le plugin activ&#233;, [consulter la page d&#233;monstration->../spip.php?page=demo_jpgraph] 
Note: See TracChangeset for help on using the changeset viewer.