Changeset 32400 in spip-zone


Ignore:
Timestamp:
Oct 27, 2009, 4:26:25 PM (11 years ago)
Author:
olivier.gautier@…
Message:

On complète les possibilités de personnalisation du modèle "courbe".
On peut désormais :

  • définir des marqueurs (forme, taille, couleur de contour et couleur de fond)
  • définir la couleur de fond
  • définir un dégradé de 2 couleurs comme couleur de fond
  • afficher la courbe en marches (lignes verticales et horizontales)

Au passage, on limite la hauteur et largeur à 1600px pour ne pas faire planter les serveurs.
Je pense qu'on pourra réduire encore... ?

Location:
_plugins_/jpgraph
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/jpgraph/jpgraph_fonctions.php

    r32334 r32400  
    2222}
    2323
     24function jpgraph_nom_marqueur($nom) {
     25       
     26}
    2427
    2528//
    2629// filtre pour creer des courbes simples
    2730//
    28 function filtre_jpgraph($str,$type_graphe="courbe",$donnee="",$legende="",$largeur=400,$hauteur=300,$titre="",$couleur="orange"){
     31function filtre_jpgraph($str,
     32        $type_graphe="courbe",
     33        $donnee="",
     34        $legende="",
     35        $largeur=400,
     36        $hauteur=300,
     37        $titre="",
     38        $couleur="orange",
     39        $couleur_fond="",
     40        $fond_degrade="",
     41        $epaisseur="",
     42        $marqueur_forme="",
     43        $marqueur_couleur="",
     44        $marqueur_epaisseur="",
     45        $marqueur_couleur_fond="",
     46        $style=""){
    2947   
    3048    // traiter les donnees
    3149    $type_graphe = strtolower(trim($type_graphe));  // pour pb avec les modeles si du blanc en fin de ligne
    32     $couleur = trim($couleur);   
     50    $couleur = trim($couleur);
     51    $couleur_fond = trim($couleur_fond);
     52    $epaisseur = (int) $epaisseur;
     53    $marqueur_forme = trim($marqueur_forme);
     54    $marqueur_couleur=trim($marqueur_couleur);
     55    $marqueur_epaisseur=(int) $marqueur_epaisseur;
     56    $marqueur_couleur_fond = trim($marqueur_couleur_fond);
     57    $style = trim ($style);
     58   
    3359    $donnee =  explode(";", $donnee);   
    3460    foreach ($donnee as $key => $value)
     
    3763        $donnee[] = "1";   // securite pour empecher les erreurs si donnnee pas renseigne 
    3864   
     65    if ($fond_degrade) {
     66        $fond_degrade = explode(";", $fond_degrade);
     67        foreach ($fond_degrade as $key => $value) $fond_degrade[$key] = trim($value);
     68        if (count($fond_degrade)<2) {
     69                $fond_degrade[0]='white@0.5';
     70                $fond_degrade[1]='orange@0.5';
     71        }
     72    }
     73   
    3974    $legende =  explode(";", $legende);
    4075    foreach ($legende as $key => $value) 
    4176            $legende[$key] = utf8_decode($value);
    42     $largeur = (int) $largeur;    if ($largeur<=0) $largeur = 400;
    43     $hauteur = (int) $hauteur;    if ($hauteur<=0) $hauteur = 300;
     77    $largeur = (int) $largeur;    if (($largeur<=0) OR ($largeur>1600)) $largeur = 400;
     78    $hauteur = (int) $hauteur;    if (($hauteur<=0) OR ($hauteur>1600)) $hauteur = 300;
    4479   
    4580    // retrouver jpgraph
     
    6499                            // Create the linear plot
    65100                            $plot=new LinePlot($donnee);
    66                             $plot->SetColor($couleur);
     101                            $plot->SetColor($couleur);
     102                            if ($style=='marches') $plot->SetStepStyle();
     103                            if ($fond_degrade) $plot->SetFillGradient($fond_degrade[0],$fond_degrade[1]);
     104                            if ($couleur_fond) $plot->SetFillColor($couleur_fond);
     105                            if ($epaisseur) $plot->SetWeight($epaisseur);
     106                            if ($marqueur_forme) {
     107                            switch($marqueur_forme) {
     108                                case 'carre': $plot->mark->SetType(MARK_SQUARE); break;
     109                                case 'triangle': $plot->mark->SetType(MARK_UTRIANGLE); break;
     110                                case 'triangle_bas': $plot->mark->SetType(MARK_DTRIANGLE); break;
     111                                case 'losange': $plot->mark->SetType(MARK_DIAMOND); break;
     112                                case 'cercle': $plot->mark->SetType(MARK_CIRCLE); break;
     113                                case 'cercle_plein': $plot->mark->SetType(MARK_FILLEDCIRCLE); break;
     114                                case 'croix': $plot->mark->SetType(MARK_CROSS); break;
     115                                case 'croix_x': $plot->mark->SetType(MARK_X); break;
     116                                case 'etoile': $plot->mark->SetType(MARK_STAR); break;
     117                                default: $plot->mark->SetType(MARK_SQUARE); break;
     118                        }
     119                            if ($marqueur_couleur) $plot->mark->SetColor($marqueur_couleur);
     120                            if ($marqueur_couleur_fond) $plot->mark->SetFillColor($marqueur_couleur_fond);
     121                            if ($marqueur_epaisseur)$plot->mark->SetWidth($marqueur_epaisseur);
     122                            }
     123                           
    67124                            // titre & legende
    68125                            $graph->title->Set(utf8_decode($titre));
     
    101158    $graph->Stroke($filename);
    102159   
    103     $titre = str_replace("'","&#039",$titre);   
     160    $titre = str_replace("'","&#039",$titre);
    104161    return "<span class='spip_documents jgraph'><img src='$filename' alt='$titre' width='$largeur' height='$hauteur' /></span>";
    105162
  • _plugins_/jpgraph/modeles/jpgraph.html

    r32296 r32400  
    1 [(#REM|jpgraph{#ENV{type_graphe},#ENV{donnee},#ENV{legende},#ENV{largeur},#ENV{hauteur},#ENV{titre},#ENV{couleur}})]
     1[(#REM|jpgraph{
     2#ENV{type_graphe},
     3#ENV{donnee},
     4#ENV{legende},
     5#ENV{largeur},
     6#ENV{hauteur},
     7#ENV{titre},
     8#ENV{couleur},
     9#ENV{couleur_fond},
     10#ENV{fond_degrade},
     11#ENV{epaisseur},
     12#ENV{marqueur_forme},
     13#ENV{marqueur_couleur},
     14#ENV{marqueur_epaisseur},
     15#ENV{marqueur_couleur_fond},
     16#ENV{style}})]
  • _plugins_/jpgraph/plugin.xml

    r32297 r32400  
    11<plugin>
    22        <nom>JpGraph</nom>
    3         <auteur>mise en plugin [erational->http://www.erational.org]</auteur>
     3        <auteur>mise en plugin [erational->http://www.erational.org], compl&#233;t&#233; par Olivier Gautier</auteur>
    44        <licence>QPL 1.0</licence>
    55        <version>0.1</version>
Note: See TracChangeset for help on using the changeset viewer.