parent
							
								
									5588fc58c2
								
							
						
					
					
						commit
						ff016ad523
					
				@ -1,128 +0,0 @@ | 
				
			||||
# | 
				
			||||
#ignoring some file | 
				
			||||
syntax: glob | 
				
			||||
main/inc/conf | 
				
			||||
#main/inc/conf/* | 
				
			||||
#!main/inc/conf/index.html | 
				
			||||
#!main/inc/conf/*.dist.* | 
				
			||||
 | 
				
			||||
#temp dokeos directories | 
				
			||||
archive/* | 
				
			||||
!archive/.htaccess | 
				
			||||
courses/* | 
				
			||||
!courses/index.html | 
				
			||||
main/garbage/* | 
				
			||||
!main/garbage/index.html | 
				
			||||
!main/garbage/Serializer | 
				
			||||
#Home | 
				
			||||
home/* | 
				
			||||
#!home/default_platform_document | 
				
			||||
#!home/faq.html | 
				
			||||
#!home/home_menu.html | 
				
			||||
#!home/home_news.html | 
				
			||||
#!home/home_notice.html | 
				
			||||
#!home/home_top.html | 
				
			||||
#!home/index.html | 
				
			||||
#!home/large_dokeos_logo.gif | 
				
			||||
 | 
				
			||||
#garbage directory | 
				
			||||
 | 
				
			||||
#Avatar images | 
				
			||||
main/upload/users/* | 
				
			||||
!main/upload/users/index.html | 
				
			||||
 | 
				
			||||
#Images uploaded by user | 
				
			||||
#main/default_course_document/images/* | 
				
			||||
#!main/default_course_document/images/board.jpg | 
				
			||||
#!main/default_course_document/images/bookcase.jpg | 
				
			||||
#!main/default_course_document/images/book_highlight.jpg | 
				
			||||
#!main/default_course_document/images/book.jpg | 
				
			||||
#!main/default_course_document/images/computer.jpg | 
				
			||||
#!main/default_course_document/images/diagrams | 
				
			||||
#!main/default_course_document/images/emot_happy.jpg | 
				
			||||
#!main/default_course_document/images/emot_neutral.jpg | 
				
			||||
#!main/default_course_document/images/emot_sad.jpg | 
				
			||||
#!main/default_course_document/images/emot_wink.jpg | 
				
			||||
#!main/default_course_document/images/female.jpg | 
				
			||||
#!main/default_course_document/images/geometry.jpg | 
				
			||||
#!main/default_course_document/images/homework.jpg | 
				
			||||
#!main/default_course_document/images/idea.jpg | 
				
			||||
#!main/default_course_document/images/interaction.jpg | 
				
			||||
#!main/default_course_document/images/logo_dokeos.png | 
				
			||||
#!main/default_course_document/images/male.jpg | 
				
			||||
#!main/default_course_document/images/maths.jpg | 
				
			||||
#!main/default_course_document/images/mechanism.jpg | 
				
			||||
#!main/default_course_document/images/mouse.jpg | 
				
			||||
#!main/default_course_document/images/mr_dokeos | 
				
			||||
#!main/default_course_document/images/newspaper.jpg | 
				
			||||
#!main/default_course_document/images/note.jpg | 
				
			||||
#!main/default_course_document/images/pencil.png | 
				
			||||
#!main/default_course_document/images/presentation.jpg | 
				
			||||
#!main/default_course_document/images/redlight.jpg | 
				
			||||
#!main/default_course_document/images/science.jpg | 
				
			||||
#!main/default_course_document/images/servicesgather.png | 
				
			||||
#!main/default_course_document/images/silhouette.png | 
				
			||||
#!main/default_course_document/images/small | 
				
			||||
#!main/default_course_document/images/speech.jpg | 
				
			||||
#!main/default_course_document/images/time.jpg | 
				
			||||
#!main/default_course_document/images/trainer | 
				
			||||
#!main/default_course_document/images/tutorial.jpg | 
				
			||||
#!main/default_course_document/images/twopeople.png | 
				
			||||
#!main/default_course_document/images/world.jpg | 
				
			||||
#!main/default_course_document/images/write.jpg | 
				
			||||
 | 
				
			||||
#css | 
				
			||||
#main/css/* | 
				
			||||
#*.css | 
				
			||||
#!main/css/academica | 
				
			||||
#!main/css/baby_orange | 
				
			||||
#!main/css/blue_lagoon | 
				
			||||
#!main/css/cool_blue | 
				
			||||
#!main/css/corporate | 
				
			||||
#!main/css/cosmic_campus | 
				
			||||
#!main/css/csshover3.htc | 
				
			||||
#!main/css/delicious_bordeaux | 
				
			||||
#!main/css/dokeos_blue | 
				
			||||
#!main/css/dokeos_classic | 
				
			||||
#!main/css/dokeos_classic_2D | 
				
			||||
#!main/css/empire_green | 
				
			||||
#!main/css/fruity_orange | 
				
			||||
#!main/css/index.html | 
				
			||||
#!main/css/medical | 
				
			||||
#!main/css/public_admin | 
				
			||||
#!main/css/royal_purple | 
				
			||||
#!main/css/silver_line | 
				
			||||
#!main/css/sober_brown | 
				
			||||
#!main/css/steel_grey | 
				
			||||
#!main/css/tasty_olive | 
				
			||||
 | 
				
			||||
#plugins | 
				
			||||
#plugin/* | 
				
			||||
#!plugin/date | 
				
			||||
#!plugin/index.html | 
				
			||||
#!plugin/search | 
				
			||||
 | 
				
			||||
#PHP Storm settings directory | 
				
			||||
.idea | 
				
			||||
.idea/* | 
				
			||||
.idea/dictionaries/* | 
				
			||||
.idea/cssxfire.xml | 
				
			||||
 | 
				
			||||
# Xapian indexes directory | 
				
			||||
searchdb/* | 
				
			||||
!searchdb/index.html | 
				
			||||
 | 
				
			||||
main/inc/cache/* | 
				
			||||
test_laurent.php | 
				
			||||
*.orig | 
				
			||||
main/auth/shibboleth/config.php | 
				
			||||
syntax: regexp | 
				
			||||
^main/upload/users$ | 
				
			||||
 | 
				
			||||
syntax: regexp | 
				
			||||
^\.settings$ | 
				
			||||
 | 
				
			||||
nbproject/* | 
				
			||||
 | 
				
			||||
.git | 
				
			||||
tests/doctrine_console/ | 
				
			||||
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						@ -1,450 +0,0 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* | 
				
			||||
     pChart - a PHP class to build charts! | 
				
			||||
     Copyright (C) 2008 Jean-Damien POGOLOTTI | 
				
			||||
     Version  1.27d last updated on 09/30/08 | 
				
			||||
 | 
				
			||||
     Extension by Gabriele FERRI | 
				
			||||
	http://www.gabrieleferri.it | 
				
			||||
	MyHorBar.class is writen to extend pChart.class to write a horizontal bar charts | 
				
			||||
	Copyright (C) 2009 Gabriele FERRI | 
				
			||||
	version 1.0beta 08/05/2009 | 
				
			||||
	Contact me with bug reports and comments: info@gabrieleferri.it | 
				
			||||
 | 
				
			||||
 | 
				
			||||
     http://pchart.sourceforge.net | 
				
			||||
 | 
				
			||||
     This program is free software: you can redistribute it and/or modify | 
				
			||||
     it under the terms of the GNU General Public License as published by | 
				
			||||
     the Free Software Foundation, either version 1,2,3 of the License, or | 
				
			||||
     (at your option) any later version. | 
				
			||||
 | 
				
			||||
     This program is distributed in the hope that it will be useful, | 
				
			||||
     but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
     GNU General Public License for more details. | 
				
			||||
 | 
				
			||||
     You should have received a copy of the GNU General Public License | 
				
			||||
     along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
     Draw methods : | 
				
			||||
	drawHorBarGraph($Data,$DataDescription,$Shadow=TRUE,$Alpha=100) | 
				
			||||
	drawHorScale($Data,$DataDescription,$ScaleMode,$R,$G,$B,$DrawTicks=TRUE,$Angle=0,$Decimals=1,$WithMargin=FALSE,$SkipLabels=1,$RightScale=FALSE) | 
				
			||||
	drawHorGrid($LineWidth,$Mosaic,$R=220,$G=220,$B=220,$Alpha=100) | 
				
			||||
	drawTreshold($Value,$R,$G,$B,$ShowLabel=FALSE,$ShowOnBottom=FALSE,$TickWidth=4,$FreeText=NULL,$Angle=0) | 
				
			||||
*/ | 
				
			||||
 | 
				
			||||
class MyHorBar extends pChart | 
				
			||||
  { | 
				
			||||
 | 
				
			||||
 | 
				
			||||
   /* This function draw a bar graph */ | 
				
			||||
   function drawHorBarGraph($Data,$DataDescription,$Shadow=TRUE,$Alpha=100) | 
				
			||||
    { | 
				
			||||
     /* Validate the Data and DataDescription array */ | 
				
			||||
     $this->validateDataDescription("drawBarGraph",$DataDescription); | 
				
			||||
     $this->validateData("drawBarGraph",$Data); | 
				
			||||
 | 
				
			||||
     $GraphID      = 0; | 
				
			||||
     $Series       = count($DataDescription["Values"]); | 
				
			||||
     $SeriesWidth  = $this->DivisionWidth / ($Series+1); | 
				
			||||
 | 
				
			||||
     $SerieYOffset = $this->DivisionWidth / 2 - $SeriesWidth * $Series / 2; | 
				
			||||
      | 
				
			||||
     $XZero  = $this->GArea_X1 + ((0-$this->VMin) * $this->DivisionRatio); | 
				
			||||
     if ( $XZero < $this->GArea_X1 ) { $XZero = $this->GArea_X1; } | 
				
			||||
 | 
				
			||||
     $SerieID = 0; | 
				
			||||
     foreach ( $DataDescription["Values"] as $Key2 => $ColName ) | 
				
			||||
      { | 
				
			||||
       $ID = 0; | 
				
			||||
       foreach ( $DataDescription["Description"] as $keyI => $ValueI ) | 
				
			||||
        { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } | 
				
			||||
 | 
				
			||||
       $YPos  = $this->GArea_Y1 + $this->GAreaXOffset + $SerieYOffset + $SeriesWidth * $SerieID; | 
				
			||||
 | 
				
			||||
       $XLast = -1; | 
				
			||||
       foreach ( $Data as $Key => $Values ) | 
				
			||||
        { | 
				
			||||
         if ( isset($Data[$Key][$ColName])) | 
				
			||||
          { | 
				
			||||
           if ( is_numeric($Data[$Key][$ColName]) ) | 
				
			||||
            { | 
				
			||||
             $Value = $Data[$Key][$ColName]; | 
				
			||||
 | 
				
			||||
	     $XPos = $this->GArea_X1 + (($Value-$this->VMin) * $this->DivisionRatio); | 
				
			||||
 | 
				
			||||
             /* Save point into the image map if option activated */ | 
				
			||||
             if ( $this->BuildMap ) | 
				
			||||
              { | 
				
			||||
               $this->addToImageMap(min($XZero,$XPos),$YPos+1,max($XZero,$XPos), $YPos+$SeriesWidth-1,$DataDescription["Description"][$ColName],$Data[$Key][$ColName].$DataDescription["Unit"]["Y"],"Bar"); | 
				
			||||
              } | 
				
			||||
            | 
				
			||||
             if ( $Shadow && $Alpha == 100 ) | 
				
			||||
              $this->drawRectangle($XZero,$YPos+1,$XPos,$YPos+$SeriesWidth-1,25,25,25,TRUE,$Alpha); | 
				
			||||
 | 
				
			||||
             $this->drawFilledRectangle($XZero,$YPos+1,$XPos,$YPos+$SeriesWidth-1,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"],TRUE,$Alpha); | 
				
			||||
            } | 
				
			||||
          } | 
				
			||||
         $YPos = $YPos + $this->DivisionWidth; | 
				
			||||
        } | 
				
			||||
       $SerieID++; | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
 | 
				
			||||
/* Compute and draw the scale */ | 
				
			||||
   function drawHorScale($Data,$DataDescription,$ScaleMode,$R,$G,$B,$DrawTicks=TRUE,$Angle=0,$Decimals=1,$WithMargin=FALSE,$SkipLabels=1,$RightScale=FALSE) | 
				
			||||
    { | 
				
			||||
     /* Validate the Data and DataDescription array */ | 
				
			||||
     $this->validateData("drawScale",$Data); | 
				
			||||
 | 
				
			||||
     $C_TextColor =$this->AllocateColor($this->Picture,$R,$G,$B); | 
				
			||||
 | 
				
			||||
     $this->drawLine($this->GArea_X1,$this->GArea_Y1,$this->GArea_X2,$this->GArea_Y1,$R,$G,$B); | 
				
			||||
     $this->drawLine($this->GArea_X1,$this->GArea_Y1,$this->GArea_X1,$this->GArea_Y2,$R,$G,$B); | 
				
			||||
 | 
				
			||||
     if ( $this->VMin == NULL && $this->VMax == NULL) | 
				
			||||
      { | 
				
			||||
       if (isset($DataDescription["Values"][0])) | 
				
			||||
        { | 
				
			||||
         $this->VMin = $Data[0][$DataDescription["Values"][0]]; | 
				
			||||
         $this->VMax = $Data[0][$DataDescription["Values"][0]]; | 
				
			||||
        } | 
				
			||||
       else { $this->VMin = 2147483647; $this->VMax = -2147483647; } | 
				
			||||
 | 
				
			||||
       /* Compute Min and Max values */ | 
				
			||||
       if ( $ScaleMode == SCALE_NORMAL || $ScaleMode == SCALE_START0 ) | 
				
			||||
        { | 
				
			||||
         if ( $ScaleMode == SCALE_START0 ) { $this->VMin = 0; } | 
				
			||||
 | 
				
			||||
         foreach ( $Data as $Key => $Values ) | 
				
			||||
          { | 
				
			||||
           foreach ( $DataDescription["Values"] as $Key2 => $ColName ) | 
				
			||||
            { | 
				
			||||
             if (isset($Data[$Key][$ColName])) | 
				
			||||
              { | 
				
			||||
               $Value = $Data[$Key][$ColName]; | 
				
			||||
 | 
				
			||||
               if ( is_numeric($Value) ) | 
				
			||||
                { | 
				
			||||
                 if ( $this->VMax < $Value) { $this->VMax = $Value; } | 
				
			||||
                 if ( $this->VMin > $Value) { $this->VMin = $Value; } | 
				
			||||
                } | 
				
			||||
              } | 
				
			||||
            } | 
				
			||||
          } | 
				
			||||
        } | 
				
			||||
       elseif ( $ScaleMode == SCALE_ADDALL || $ScaleMode == SCALE_ADDALLSTART0 ) /* Experimental */ | 
				
			||||
        { | 
				
			||||
         if ( $ScaleMode == SCALE_ADDALLSTART0 ) { $this->VMin = 0; } | 
				
			||||
 | 
				
			||||
         foreach ( $Data as $Key => $Values ) | 
				
			||||
          { | 
				
			||||
           $Sum = 0; | 
				
			||||
           foreach ( $DataDescription["Values"] as $Key2 => $ColName ) | 
				
			||||
            { | 
				
			||||
             if (isset($Data[$Key][$ColName])) | 
				
			||||
              { | 
				
			||||
               $Value = $Data[$Key][$ColName]; | 
				
			||||
               if ( is_numeric($Value) ) | 
				
			||||
                $Sum  += $Value; | 
				
			||||
              } | 
				
			||||
            } | 
				
			||||
           if ( $this->VMax < $Sum) { $this->VMax = $Sum; } | 
				
			||||
           if ( $this->VMin > $Sum) { $this->VMin = $Sum; } | 
				
			||||
          } | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
       if ( $this->VMax > preg_replace('/\.[0-9]+/','',$this->VMax) ) | 
				
			||||
        $this->VMax = preg_replace('/\.[0-9]+/','',$this->VMax)+1; | 
				
			||||
 | 
				
			||||
       /* If all values are the same */ | 
				
			||||
       if ( $this->VMax == $this->VMin ) | 
				
			||||
        { | 
				
			||||
         if ( $this->VMax >= 0 ) { $this->VMax++; } | 
				
			||||
         else { $this->VMin--; } | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
       $DataRange = $this->VMax - $this->VMin; | 
				
			||||
       if ( $DataRange == 0 ) { $DataRange = .1; } | 
				
			||||
 | 
				
			||||
       /* Compute automatic scaling */ | 
				
			||||
       $ScaleOk = FALSE; $Factor = 1; | 
				
			||||
       $MinDivHeight = 25; | 
				
			||||
 | 
				
			||||
       $MaxDivs = ($this->GArea_X2 - $this->GArea_X1) / $MinDivHeight; | 
				
			||||
 | 
				
			||||
       if ( $this->VMin == 0 && $this->VMax == 0 ) | 
				
			||||
        { $this->VMin = 0; $this->VMax = 2; $Scale = 1; $Divisions = 2;} | 
				
			||||
       elseif ($MaxDivs > 1) | 
				
			||||
        { | 
				
			||||
         while(!$ScaleOk) | 
				
			||||
          { | 
				
			||||
           $Scale1 = ( $this->VMax - $this->VMin ) / $Factor; | 
				
			||||
           $Scale2 = ( $this->VMax - $this->VMin ) / $Factor / 2; | 
				
			||||
           $Scale4 = ( $this->VMax - $this->VMin ) / $Factor / 4; | 
				
			||||
 | 
				
			||||
           if ( $Scale1 > 1 && $Scale1 <= $MaxDivs && !$ScaleOk) { $ScaleOk = TRUE; $Divisions = floor($Scale1); $Scale = 1;} | 
				
			||||
           if ( $Scale2 > 1 && $Scale2 <= $MaxDivs && !$ScaleOk) { $ScaleOk = TRUE; $Divisions = floor($Scale2); $Scale = 2;} | 
				
			||||
           if (!$ScaleOk) | 
				
			||||
            { | 
				
			||||
             if ( $Scale2 > 1 ) { $Factor = $Factor * 10; } | 
				
			||||
             if ( $Scale2 < 1 ) { $Factor = $Factor / 10; } | 
				
			||||
            } | 
				
			||||
          } | 
				
			||||
 | 
				
			||||
         if ( floor($this->VMax / $Scale / $Factor) != $this->VMax / $Scale / $Factor) | 
				
			||||
          { | 
				
			||||
           $GridID     = floor ( $this->VMax / $Scale / $Factor) + 1; | 
				
			||||
           $this->VMax = $GridID * $Scale * $Factor; | 
				
			||||
           $Divisions++; | 
				
			||||
          } | 
				
			||||
 | 
				
			||||
         if ( floor($this->VMin / $Scale / $Factor) != $this->VMin / $Scale / $Factor) | 
				
			||||
          { | 
				
			||||
           $GridID     = floor( $this->VMin / $Scale / $Factor); | 
				
			||||
           $this->VMin = $GridID * $Scale * $Factor; | 
				
			||||
           $Divisions++; | 
				
			||||
          } | 
				
			||||
        } | 
				
			||||
       else /* Can occurs for small graphs */ | 
				
			||||
        $Scale = 1; | 
				
			||||
 | 
				
			||||
       if ( !isset($Divisions) ) | 
				
			||||
        $Divisions = 2; | 
				
			||||
 | 
				
			||||
       if ($Scale == 1 && $Divisions%2 == 1) | 
				
			||||
        $Divisions--; | 
				
			||||
      } | 
				
			||||
     else | 
				
			||||
      $Divisions = $this->Divisions; | 
				
			||||
 | 
				
			||||
     $this->DivisionCount = $Divisions; | 
				
			||||
 | 
				
			||||
     $DataRange = $this->VMax - $this->VMin; | 
				
			||||
     if ( $DataRange == 0 ) { $DataRange = .1; } | 
				
			||||
 | 
				
			||||
     $this->DivisionHeight = ( $this->GArea_X2 - $this->GArea_X1 ) / $Divisions; | 
				
			||||
     $this->DivisionRatio  = ( $this->GArea_X2 - $this->GArea_X1 ) / $DataRange; | 
				
			||||
 | 
				
			||||
     $this->GAreaYOffset  = 0; | 
				
			||||
     if ( count($Data) > 1 ) | 
				
			||||
      { | 
				
			||||
       if ( $WithMargin == FALSE ) | 
				
			||||
	$this->DivisionWidth = ( $this->GArea_Y2 - $this->GArea_Y1 ) / (count($Data)-1); | 
				
			||||
       else | 
				
			||||
        { | 
				
			||||
	 $this->DivisionWidth = ( $this->GArea_Y2 - $this->GArea_Y1 ) / (count($Data)); | 
				
			||||
	 $this->GAreaYOffset  = $this->DivisionWidth / 2; | 
				
			||||
        } | 
				
			||||
      } | 
				
			||||
     else | 
				
			||||
      { | 
				
			||||
       $this->DivisionWidth = $this->GArea_Y2 - $this->GArea_Y1; | 
				
			||||
       $this->GAreaYOffset  = $this->DivisionWidth / 2; | 
				
			||||
      } | 
				
			||||
 | 
				
			||||
     $this->DataCount = count($Data); | 
				
			||||
 | 
				
			||||
     if ( $DrawTicks == FALSE ) | 
				
			||||
      return(0); | 
				
			||||
 | 
				
			||||
     $XPos = $this->GArea_X1; | 
				
			||||
     $YMin = NULL; | 
				
			||||
 | 
				
			||||
     for($i=1;$i<=$Divisions+1;$i++) | 
				
			||||
      { | 
				
			||||
	$this->drawLine($XPos,$this->GArea_Y1,$XPos,$this->GArea_Y1-5,$R,$G,$B); | 
				
			||||
 | 
				
			||||
       $Value     = $this->VMin + ($i-1) * (( $this->VMax - $this->VMin ) / $Divisions); | 
				
			||||
       $Value     = round($Value * pow(10,$Decimals)) / pow(10,$Decimals); | 
				
			||||
       if ( $DataDescription["Format"]["Y"] == "number" ) | 
				
			||||
        $Value = $Value.$DataDescription["Unit"]["Y"]; | 
				
			||||
       if ( $DataDescription["Format"]["Y"] == "time" ) | 
				
			||||
        $Value = $this->ToTime($Value);         | 
				
			||||
       if ( $DataDescription["Format"]["Y"] == "date" ) | 
				
			||||
        $Value = $this->ToDate($Value);         | 
				
			||||
       if ( $DataDescription["Format"]["Y"] == "metric" ) | 
				
			||||
        $Value = $this->ToMetric($Value);         | 
				
			||||
       if ( $DataDescription["Format"]["Y"] == "currency" ) | 
				
			||||
        $Value = $this->ToCurrency($Value);         | 
				
			||||
		 | 
				
			||||
       $Position  = imageftbbox($this->FontSize,0,$this->FontName,$Value); | 
				
			||||
       $TextWidth = $Position[2]-$Position[0]; | 
				
			||||
 | 
				
			||||
         imagettftext($this->Picture,$this->FontSize,0,$XPos-($this->FontSize/2),$this->GArea_Y1-10,$C_TextColor,$this->FontName,$Value); | 
				
			||||
          | 
				
			||||
	 if ( $YMin > $this->GArea_Y1-10-$TextWidth || $YMin == NULL ) { $YMin = $this->GArea_Y1-10-$TextWidth; } | 
				
			||||
 | 
				
			||||
       $XPos = $XPos + $this->DivisionHeight; | 
				
			||||
      } | 
				
			||||
 | 
				
			||||
     /* Write the Y Axis caption if set */  | 
				
			||||
     if ( isset($DataDescription["Axis"]["Y"]) ) | 
				
			||||
      { | 
				
			||||
       $Position   = imageftbbox($this->FontSize,90,$this->FontName,$DataDescription["Axis"]["Y"]); | 
				
			||||
       $TextHeight = abs($Position[1])+abs($Position[3]); | 
				
			||||
       $TextTop = (($this->GArea_X2 - $this->GArea_X1) / 2) + $this->GArea_X1 + ($TextHeight/2); | 
				
			||||
 | 
				
			||||
	imagettftext($this->Picture,$this->FontSize,90,$YMin-$this->FontSize,$TextTop,$C_TextColor,$this->FontName,$DataDescription["Axis"]["Y"]); | 
				
			||||
      } | 
				
			||||
 | 
				
			||||
     /* Horizontal Axis */ | 
				
			||||
     $YPos = $this->GArea_Y1 + $this->GAreaYOffset; | 
				
			||||
     $ID = 1; | 
				
			||||
     $XMax = NULL; | 
				
			||||
     foreach ( $Data as $Key => $Values ) | 
				
			||||
      { | 
				
			||||
       if ( $ID % $SkipLabels == 0 ) | 
				
			||||
        { | 
				
			||||
          | 
				
			||||
	 $this->drawLine($this->GArea_X1,floor($YPos),$this->GArea_X1-5,floor($YPos),$R,$G,$B); | 
				
			||||
         $Value      = $Data[$Key][$DataDescription["Position"]]; | 
				
			||||
         if ( $DataDescription["Format"]["X"] == "number" ) | 
				
			||||
          $Value = $Value.$DataDescription["Unit"]["X"]; | 
				
			||||
         if ( $DataDescription["Format"]["X"] == "time" ) | 
				
			||||
          $Value = $this->ToTime($Value);         | 
				
			||||
         if ( $DataDescription["Format"]["X"] == "date" ) | 
				
			||||
          $Value = $this->ToDate($Value);         | 
				
			||||
         if ( $DataDescription["Format"]["X"] == "metric" ) | 
				
			||||
          $Value = $this->ToMetric($Value);         | 
				
			||||
         if ( $DataDescription["Format"]["X"] == "currency" ) | 
				
			||||
          $Value = $this->ToCurrency($Value);         | 
				
			||||
 | 
				
			||||
         $Position   = imageftbbox($this->FontSize,$Angle,$this->FontName,$Value); | 
				
			||||
         $TextWidth  = abs($Position[2])+abs($Position[0]); | 
				
			||||
         $TextHeight = abs($Position[1])+abs($Position[3]); | 
				
			||||
 | 
				
			||||
         if ( $Angle == 0 ) | 
				
			||||
          { | 
				
			||||
	   $XPos = $this->GArea_Y2+18;
	   imagettftext($this->Picture,$this->FontSize,$Angle,$this->GArea_X1-10-floor($TextWidth),floor($YPos)+5-floor($TextHeight/2),$C_TextColor,$this->FontName,$Value); | 
				
			||||
 | 
				
			||||
          } | 
				
			||||
         else | 
				
			||||
          { | 
				
			||||
	   $XPos = $this->GArea_Y2+10+$TextHeight; | 
				
			||||
           if ( $Angle <= 90 ) | 
				
			||||
	    imagettftext($this->Picture,$this->FontSize,$Angle,$XPos,floor($YPos)-$TextWidth+5,$C_TextColor,$this->FontName,$Value); | 
				
			||||
           else | 
				
			||||
	    imagettftext($this->Picture,$this->FontSize,$Angle,$XPos,floor($YPos)+$TextWidth+5,$C_TextColor,$this->FontName,$Value); | 
				
			||||
          } | 
				
			||||
	 if ( $XMax < $XPos || $XMax == NULL ) { $XMax = $XPos; } | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
       $YPos = $YPos + $this->DivisionWidth; | 
				
			||||
       $ID++; | 
				
			||||
      } | 
				
			||||
 | 
				
			||||
    /* Write the X Axis caption if set */  | 
				
			||||
    if ( isset($DataDescription["Axis"]["Y"]) ) | 
				
			||||
      { | 
				
			||||
       $Position = imageftbbox($this->FontSize,90,$this->FontName,$DataDescription["Axis"]["Y"]); | 
				
			||||
       $TextWidth  = abs($Position[2])+abs($Position[0]); | 
				
			||||
       $TextLeft   = (($this->GArea_Y2 - $this->GArea_Y1) / 2) + $this->GArea_Y1 + ($TextWidth/2); | 
				
			||||
 | 
				
			||||
       imagettftext($this->Picture,$this->FontSize,0,$TextLeft,$XMax+$this->FontSize+5,$C_TextColor,$this->FontName,$DataDescription["Axis"]["Y"]); | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
 | 
				
			||||
   /* Compute and draw the scale */ | 
				
			||||
   function drawHorGrid($LineWidth,$Mosaic=TRUE,$R=220,$G=220,$B=220,$Alpha=100) | 
				
			||||
    { | 
				
			||||
     /* Draw mosaic */ | 
				
			||||
     if ( $Mosaic ) | 
				
			||||
      { | 
				
			||||
       $LayerWidth  = $this->GArea_Y2-$this->GArea_Y1; | 
				
			||||
       $LayerHeight = $this->GArea_X2-$this->GArea_X1; | 
				
			||||
 | 
				
			||||
       $this->Layers[0] = imagecreatetruecolor($LayerWidth,$LayerHeight); | 
				
			||||
       $C_White =$this->AllocateColor($this->Layers[0],255,255,255); | 
				
			||||
       imagefilledrectangle($this->Layers[0],0,0,$LayerWidth,$LayerHeight,$C_White); | 
				
			||||
       imagecolortransparent($this->Layers[0],$C_White); | 
				
			||||
 | 
				
			||||
       $C_Rectangle =$this->AllocateColor($this->Layers[0],250,250,250); | 
				
			||||
       $XPos  = $LayerHeight; | 
				
			||||
       $LastX = $XPos; | 
				
			||||
 | 
				
			||||
       for($i=0;$i<=$this->DivisionCount;$i++) | 
				
			||||
        { | 
				
			||||
	 $LastX = $XPos; | 
				
			||||
	 $XPos  = $XPos - $this->DivisionHeight; | 
				
			||||
 | 
				
			||||
	 if ( $XPos <= 0 ) { $XPos = 1; } | 
				
			||||
 | 
				
			||||
         if ( $i % 2 == 0 ) | 
				
			||||
          { | 
				
			||||
	   imagefilledrectangle($this->Layers[0],$XPos,1,$LastX,$LayerWidth-1,$C_Rectangle); | 
				
			||||
          } | 
				
			||||
        } | 
				
			||||
       imagecopymerge($this->Picture,$this->Layers[0],$this->GArea_X1,$this->GArea_Y1,0,0,$LayerWidth,$LayerHeight,$Alpha); | 
				
			||||
       imagedestroy($this->Layers[0]); | 
				
			||||
      } | 
				
			||||
 | 
				
			||||
     /* Vertical lines */ | 
				
			||||
     $XPos = $this->GArea_X2 - $this->DivisionHeight; | 
				
			||||
     for($i=1;$i<=$this->DivisionCount;$i++) | 
				
			||||
      { | 
				
			||||
       if ( $XPos > $this->GArea_X1 && $XPos < $this->GArea_X2 ) | 
				
			||||
        $this->drawDottedLine($XPos,$this->GArea_Y1,$XPos,$this->GArea_Y2,$LineWidth,$R,$G,$B); | 
				
			||||
        $XPos = $XPos - $this->DivisionHeight; | 
				
			||||
      } | 
				
			||||
 | 
				
			||||
     /* Horizontal lines */ | 
				
			||||
     if ( $this->GAreaYOffset == 0 ) | 
				
			||||
      { $YPos = $this->GArea_Y1 + $this->DivisionWidth + $this->GAreaYOffset; | 
				
			||||
	$ColCount = $this->DataCount-2; } | 
				
			||||
     else | 
				
			||||
      { $YPos = $this->GArea_Y1 + $this->GAreaYOffset; | 
				
			||||
	//$ColCount = floor( ($this->GArea_X2 - $this->GArea_X1) / $this->DivisionWidth ); | 
				
			||||
	$ColCount = $this->DataCount; | 
				
			||||
      } | 
				
			||||
 | 
				
			||||
     for($i=1;$i<=$ColCount;$i++) | 
				
			||||
      { | 
				
			||||
       if ( $YPos > $this->GArea_Y1 && $YPos < $this->GArea_Y2 ) | 
				
			||||
        $this->drawDottedLine($this->GArea_X1,floor($YPos),$this->GArea_X2,floor($YPos),$LineWidth,$R,$G,$B); | 
				
			||||
 | 
				
			||||
	$YPos = $YPos + $this->DivisionWidth; | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
 | 
				
			||||
/* Compute and draw the scale */ | 
				
			||||
   function drawTreshold($Value,$R,$G,$B,$ShowLabel=FALSE,$ShowOnBottom=FALSE,$TickWidth=4,$FreeText=NULL,$Angle=0) | 
				
			||||
    { | 
				
			||||
     if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } | 
				
			||||
     if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } | 
				
			||||
     if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } | 
				
			||||
 | 
				
			||||
     $C_TextColor =$this->AllocateColor($this->Picture,$R,$G,$B); | 
				
			||||
     $X = $this->GArea_X1 + ($Value - $this->VMin) * $this->DivisionRatio; | 
				
			||||
 | 
				
			||||
     if ( $X <= $this->GArea_X1 || $X >= $this->GArea_X2 ) | 
				
			||||
      return(-1); | 
				
			||||
 | 
				
			||||
     if ( $TickWidth == 0 ) | 
				
			||||
      $this->drawLine($X,$this->GArea_Y1,$X,$this->GArea_Y2,$R,$G,$B); | 
				
			||||
     else | 
				
			||||
      $this->drawDottedLine($X,$this->GArea_Y1,$X,$this->GArea_Y2,$TickWidth,$R,$G,$B); | 
				
			||||
 | 
				
			||||
     if ( $ShowLabel ) | 
				
			||||
      { | 
				
			||||
       if ( $FreeText == NULL ) | 
				
			||||
        { $Label = $Value; } else { $Label = $FreeText; } | 
				
			||||
 | 
				
			||||
       $Position = imageftbbox($this->FontSize,$Angle,$this->FontName,$Label); | 
				
			||||
       $TextWidth  = abs($Position[2])-abs($Position[0]); | 
				
			||||
       $TextLeft   = abs($Position[3])-abs($Position[1]); | 
				
			||||
 | 
				
			||||
       if ( $ShowOnBottom ) | 
				
			||||
        imagettftext($this->Picture,$this->FontSize,$Angle,$X+9,$this->GArea_Y2,$C_TextColor,$this->FontName,$Label); | 
				
			||||
       else | 
				
			||||
        imagettftext($this->Picture,$this->FontSize,$Angle,$X+9,$this->GArea_Y1+$TextLeft,$C_TextColor,$this->FontName,$Label); | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
 | 
				
			||||
  } | 
				
			||||
?> | 
				
			||||
@ -1,121 +0,0 @@ | 
				
			||||
<?php | 
				
			||||
 /* | 
				
			||||
     pCache - Faster renderding using data cache | 
				
			||||
     Copyright (C) 2008 Jean-Damien POGOLOTTI | 
				
			||||
     Version  1.1.2 last updated on 06/17/08 | 
				
			||||
 | 
				
			||||
     http://pchart.sourceforge.net | 
				
			||||
 | 
				
			||||
     This program is free software: you can redistribute it and/or modify | 
				
			||||
     it under the terms of the GNU General Public License as published by | 
				
			||||
     the Free Software Foundation, either version 1,2,3 of the License, or | 
				
			||||
     (at your option) any later version. | 
				
			||||
 | 
				
			||||
     This program is distributed in the hope that it will be useful, | 
				
			||||
     but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
     GNU General Public License for more details. | 
				
			||||
 | 
				
			||||
     You should have received a copy of the GNU General Public License | 
				
			||||
     along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
				
			||||
     Class initialisation : | 
				
			||||
      pCache($CacheFolder="Cache/") | 
				
			||||
     Cache management : | 
				
			||||
      IsInCache($Data) | 
				
			||||
      GetFromCache($ID,$Data) | 
				
			||||
      WriteToCache($ID,$Data,$Picture) | 
				
			||||
      DeleteFromCache($ID,$Data) | 
				
			||||
      ClearCache() | 
				
			||||
     Inner functions : | 
				
			||||
      GetHash($ID,$Data) | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
 /* pCache class definition */ | 
				
			||||
require_once dirname(__FILE__) . '/../../global.inc.php'; | 
				
			||||
//the cache default folder was changed | 
				
			||||
 class pCache | 
				
			||||
  { | 
				
			||||
   var $HashKey     = ""; | 
				
			||||
   var $CacheFolder = ""; | 
				
			||||
 | 
				
			||||
   /* Create the pCache object */ | 
				
			||||
   function pCache($CacheFolder="Cache/") | 
				
			||||
    { | 
				
			||||
     $this->CacheFolder = api_get_path(SYS_ARCHIVE_PATH); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   /* This function is clearing the cache folder */ | 
				
			||||
   function ClearCache() | 
				
			||||
    { | 
				
			||||
     if ($handle = opendir($this->CacheFolder)) | 
				
			||||
      { | 
				
			||||
       while (false !== ($file = readdir($handle))) | 
				
			||||
        { | 
				
			||||
         if ( $file != "." && $file != ".." ) | 
				
			||||
          unlink($this->CacheFolder.$file); | 
				
			||||
        } | 
				
			||||
       closedir($handle); | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   /* This function is checking if we have an offline version of this chart */ | 
				
			||||
   function IsInCache($ID,$Data,$Hash="") | 
				
			||||
    { | 
				
			||||
     if ( $Hash == "" ) | 
				
			||||
      $Hash = $this->GetHash($ID,$Data); | 
				
			||||
 | 
				
			||||
     if ( file_exists($this->CacheFolder.$Hash) ) | 
				
			||||
      return(TRUE); | 
				
			||||
     else | 
				
			||||
      return(FALSE); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   /* This function is making a copy of drawn chart in the cache folder */ | 
				
			||||
   function WriteToCache($ID,$Data,$Picture) | 
				
			||||
    { | 
				
			||||
     $Hash     = $this->GetHash($ID,$Data); | 
				
			||||
     $FileName = $this->CacheFolder.$Hash; | 
				
			||||
 | 
				
			||||
     imagepng($Picture->Picture,$FileName); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   /* This function is removing any cached copy of this chart */ | 
				
			||||
   function DeleteFromCache($ID,$Data) | 
				
			||||
    { | 
				
			||||
     $Hash     = $this->GetHash($ID,$Data); | 
				
			||||
     $FileName = $this->CacheFolder.$Hash; | 
				
			||||
 | 
				
			||||
     if ( file_exists($FileName ) ) | 
				
			||||
      unlink($FileName); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   /* This function is retrieving the cached picture if applicable */ | 
				
			||||
   function GetFromCache($ID,$Data) | 
				
			||||
    { | 
				
			||||
     $Hash     = $this->GetHash($ID,$Data); | 
				
			||||
     if ( $this->IsInCache("","",$Hash ) ) | 
				
			||||
      { | 
				
			||||
       $FileName = $this->CacheFolder.$Hash; | 
				
			||||
 | 
				
			||||
       header('Content-type: image/png'); | 
				
			||||
       @readfile($FileName); | 
				
			||||
       exit(); | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   /* This function is building the graph unique hash key */ | 
				
			||||
   function GetHash($ID,$Data) | 
				
			||||
    { | 
				
			||||
     $mKey = "$ID"; | 
				
			||||
     foreach($Data as $key => $Values) | 
				
			||||
      { | 
				
			||||
       $tKey = ""; | 
				
			||||
       foreach($Values as $Serie => $Value) | 
				
			||||
        $tKey = $tKey.$Serie.$Value; | 
				
			||||
       $mKey = $mKey.md5($tKey); | 
				
			||||
      } | 
				
			||||
     return(md5($mKey)); | 
				
			||||
    } | 
				
			||||
  } | 
				
			||||
?> | 
				
			||||
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						@ -1,262 +0,0 @@ | 
				
			||||
<?php | 
				
			||||
 /* | 
				
			||||
     pData - Simplifying data population for pChart | 
				
			||||
     Copyright (C) 2008 Jean-Damien POGOLOTTI | 
				
			||||
     Version  1.13 last updated on 08/17/08 | 
				
			||||
 | 
				
			||||
     http://pchart.sourceforge.net | 
				
			||||
 | 
				
			||||
     This program is free software: you can redistribute it and/or modify | 
				
			||||
     it under the terms of the GNU General Public License as published by | 
				
			||||
     the Free Software Foundation, either version 1,2,3 of the License, or | 
				
			||||
     (at your option) any later version. | 
				
			||||
 | 
				
			||||
     This program is distributed in the hope that it will be useful, | 
				
			||||
     but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
     GNU General Public License for more details. | 
				
			||||
 | 
				
			||||
     You should have received a copy of the GNU General Public License | 
				
			||||
     along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
				
			||||
     Class initialisation : | 
				
			||||
      pData() | 
				
			||||
     Data populating methods : | 
				
			||||
      ImportFromCSV($FileName,$Delimiter=",",$DataColumns=-1,$HasHeader=FALSE,$DataName=-1) | 
				
			||||
      AddPoint($Value,$Serie="Serie1",$Description="") | 
				
			||||
     Series manipulation methods : | 
				
			||||
      AddSerie($SerieName="Serie1") | 
				
			||||
      AddAllSeries() | 
				
			||||
      RemoveSerie($SerieName="Serie1") | 
				
			||||
      SetAbsciseLabelSerie($SerieName = "Name") | 
				
			||||
      SetSerieName($Name,$SerieName="Serie1") | 
				
			||||
  +   SetSerieSymbol($Name,$Symbol) | 
				
			||||
      SetXAxisName($Name="X Axis") | 
				
			||||
      SetYAxisName($Name="Y Axis") | 
				
			||||
      SetXAxisFormat($Format="number") | 
				
			||||
      SetYAxisFormat($Format="number") | 
				
			||||
      SetXAxisUnit($Unit="") | 
				
			||||
      SetYAxisUnit($Unit="") | 
				
			||||
      removeSerieName($SerieName) | 
				
			||||
      removeAllSeries() | 
				
			||||
     Data retrieval methods : | 
				
			||||
      GetData() | 
				
			||||
      GetDataDescription() | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
 /* pData class definition */ | 
				
			||||
 class pData | 
				
			||||
  { | 
				
			||||
   var $Data; | 
				
			||||
   var $DataDescription; | 
				
			||||
 | 
				
			||||
   function pData() | 
				
			||||
    { | 
				
			||||
     $this->Data                           = ""; | 
				
			||||
     $this->DataDescription                = ""; | 
				
			||||
     $this->DataDescription["Position"]    = "Name"; | 
				
			||||
     $this->DataDescription["Format"]["X"] = "number"; | 
				
			||||
     $this->DataDescription["Format"]["Y"] = "number"; | 
				
			||||
     $this->DataDescription["Unit"]["X"]   = NULL; | 
				
			||||
     $this->DataDescription["Unit"]["Y"]   = NULL; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function ImportFromCSV($FileName,$Delimiter=",",$DataColumns=-1,$HasHeader=FALSE,$DataName=-1) | 
				
			||||
    { | 
				
			||||
     $handle = @fopen($FileName,"r"); | 
				
			||||
     if ($handle) | 
				
			||||
      { | 
				
			||||
       $HeaderParsed = FALSE; | 
				
			||||
       while (!feof($handle)) | 
				
			||||
        { | 
				
			||||
         $buffer = fgets($handle, 4096); | 
				
			||||
         $buffer = str_replace(chr(10),"",$buffer); | 
				
			||||
         $buffer = str_replace(chr(13),"",$buffer); | 
				
			||||
         $Values = split($Delimiter,$buffer); | 
				
			||||
 | 
				
			||||
         if ( $buffer != "" ) | 
				
			||||
          { | 
				
			||||
           if ( $HasHeader == TRUE && $HeaderParsed == FALSE ) | 
				
			||||
            { | 
				
			||||
             if ( $DataColumns == -1 ) | 
				
			||||
              { | 
				
			||||
               $ID = 1; | 
				
			||||
               foreach($Values as $key => $Value) | 
				
			||||
                { $this->SetSerieName($Value,"Serie".$ID); $ID++; } | 
				
			||||
              } | 
				
			||||
             else | 
				
			||||
              { | 
				
			||||
               $SerieName = ""; | 
				
			||||
 | 
				
			||||
               foreach($DataColumns as $key => $Value) | 
				
			||||
                $this->SetSerieName($Values[$Value],"Serie".$Value); | 
				
			||||
              } | 
				
			||||
             $HeaderParsed = TRUE; | 
				
			||||
            } | 
				
			||||
           else | 
				
			||||
            { | 
				
			||||
             if ( $DataColumns == -1 ) | 
				
			||||
              { | 
				
			||||
               $ID = 1; | 
				
			||||
               foreach($Values as $key => $Value) | 
				
			||||
                { $this->AddPoint(intval($Value),"Serie".$ID); $ID++; } | 
				
			||||
              } | 
				
			||||
             else | 
				
			||||
              { | 
				
			||||
               $SerieName = ""; | 
				
			||||
               if ( $DataName != -1 ) | 
				
			||||
                $SerieName = $Values[$DataName]; | 
				
			||||
 | 
				
			||||
               foreach($DataColumns as $key => $Value) | 
				
			||||
                $this->AddPoint($Values[$Value],"Serie".$Value,$SerieName); | 
				
			||||
              } | 
				
			||||
            } | 
				
			||||
          } | 
				
			||||
        } | 
				
			||||
       fclose($handle); | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function AddPoint($Value,$Serie="Serie1",$Description="") { | 
				
			||||
 | 
				
			||||
     if (is_array($Value) && count($Value) == 1) | 
				
			||||
      $Value = $Value[0]; | 
				
			||||
 | 
				
			||||
     $ID = 0;           | 
				
			||||
     for ($i=0;$i<=count($this->Data);$i++) { | 
				
			||||
     	if(isset($this->Data[$i][$Serie])) { $ID = $i+1; }  | 
				
			||||
     } | 
				
			||||
      | 
				
			||||
     if ( count($Value) == 1 ) { | 
				
			||||
       $this->Data[$ID][$Serie] = $Value; | 
				
			||||
       if ( $Description != "" ) $this->Data[$ID]["Name"] = $Description; | 
				
			||||
       elseif (!isset($this->Data[$ID]["Name"])) $this->Data[$ID]["Name"] = $ID; | 
				
			||||
     } else { | 
				
			||||
       foreach ($Value as $key => $Val) { | 
				
			||||
         $this->Data[$ID][$Serie] = $Val; | 
				
			||||
         if (!isset($this->Data[$ID]["Name"])) | 
				
			||||
          $this->Data[$ID]["Name"] = $ID; | 
				
			||||
         $ID++; | 
				
			||||
        } | 
				
			||||
      } | 
				
			||||
       | 
				
			||||
       | 
				
			||||
       | 
				
			||||
       | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
 | 
				
			||||
   function AddSerie($SerieName="Serie1") | 
				
			||||
    { | 
				
			||||
     if ( !isset($this->DataDescription["Values"]) ) | 
				
			||||
      { | 
				
			||||
       $this->DataDescription["Values"][] = $SerieName; | 
				
			||||
      } | 
				
			||||
     else | 
				
			||||
      { | 
				
			||||
       $Found = FALSE; | 
				
			||||
       foreach($this->DataDescription["Values"] as $key => $Value ) | 
				
			||||
        if ( $Value == $SerieName ) { $Found = TRUE; } | 
				
			||||
 | 
				
			||||
       if ( !$Found ) | 
				
			||||
        $this->DataDescription["Values"][] = $SerieName; | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function AddAllSeries() | 
				
			||||
    {    	 | 
				
			||||
     unset($this->DataDescription["Values"]); | 
				
			||||
     if ( isset($this->Data[0]) ) | 
				
			||||
      { | 
				
			||||
       foreach($this->Data[0] as $Key => $Value) | 
				
			||||
        { | 
				
			||||
         if ( $Key != "Name" ) | 
				
			||||
          $this->DataDescription["Values"][] = $Key; | 
				
			||||
        } | 
				
			||||
      } | 
				
			||||
       | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
   function RemoveSerie($SerieName="Serie1") | 
				
			||||
    { | 
				
			||||
     if ( !isset($this->DataDescription["Values"]) ) | 
				
			||||
      return(0); | 
				
			||||
 | 
				
			||||
     $Found = FALSE; | 
				
			||||
     foreach($this->DataDescription["Values"] as $key => $Value ) | 
				
			||||
      { | 
				
			||||
       if ( $Value == $SerieName ) | 
				
			||||
        unset($this->DataDescription["Values"][$key]); | 
				
			||||
      } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetAbsciseLabelSerie($SerieName = "Name") | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Position"] = $SerieName; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetSerieName($Name,$SerieName="Serie1") | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Description"][$SerieName] = $Name; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetXAxisName($Name="X Axis") | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Axis"]["X"] = $Name; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetYAxisName($Name="Y Axis") | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Axis"]["Y"] = $Name; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetXAxisFormat($Format="number") | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Format"]["X"] = $Format; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetYAxisFormat($Format="number") | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Format"]["Y"] = $Format; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetXAxisUnit($Unit="") | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Unit"]["X"] = $Unit; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetYAxisUnit($Unit="") | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Unit"]["Y"] = $Unit; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function SetSerieSymbol($Name,$Symbol) | 
				
			||||
    { | 
				
			||||
     $this->DataDescription["Symbol"][$Name] = $Symbol; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function removeSerieName($SerieName) | 
				
			||||
    { | 
				
			||||
     if ( isset($this->DataDescription["Description"][$SerieName]) ) | 
				
			||||
      unset($this->DataDescription["Description"][$SerieName]); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function removeAllSeries() | 
				
			||||
    { | 
				
			||||
     foreach($this->DataDescription["Values"] as $Key => $Value) | 
				
			||||
      unset($this->DataDescription["Values"][$Key]); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function GetData() | 
				
			||||
    { | 
				
			||||
     return($this->Data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function GetDataDescription() | 
				
			||||
    { | 
				
			||||
     return($this->DataDescription); | 
				
			||||
    } | 
				
			||||
  } | 
				
			||||
?> | 
				
			||||
					Loading…
					
					
				
		Reference in new issue