!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/billing/ofc-library/   drwxr-xr-x
Free 13.29 GB of 57.97 GB (22.92%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     phpgraphlib_stacked.php (7.41 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
///////////////////////////////////////////////////////////
//PHPGraphLib -  PHP Graphing Library v2.31 - Stacked Bar Extension
//Author: Elliott Brueggeman
//PHP v4.04 + compatible
//Please visit www.ebrueggeman.com for usage policy
//and documentation + examples
///////////////////////////////////////////////////////////
class PHPGraphLibStacked extends PHPGraphLib {
    function 
PHPGraphLibStacked($width ''$height '') {
        
PHPGraphLib::PHPGraphLib($width,$height);    
    }
    function 
generateBars() {
        
$this->finalizeColors();
        
$barCount 0;
        
$adjustment 0;
        
$last_y1 = array();
        
$last_y2 = array();
        if (
$this->bool_user_data_range && $this->data_min >= 0) {
            
$adjustment $this->data_min $this->unit_scale;
        }
        
$this->data_array array_reverse($this->data_array);
        foreach (
$this->data_array as $data_set_num => $data_set) {
            
$lineX2 NULL;
            
$xStart $this->y_axis_x1 + ($this->space_width 2);
            foreach (
$data_set as $key => $item) {
                
$hideBarOutline false;
                
$x1 round($xStart);
                
$x2 round($xStart $this->bar_width);
                if (
$data_set_num 0) {
                    
//find last set valid value for this dataset incase prior values were not set
                    
$found false;
                    
$i 1;
                    
//default last to base in case none are found
                    
$last $this->x_axis_y1;
                    while (
$found == false && ($data_set_num $i) >= 0) {
                        if (isset(
$last_y1[$data_set_num $i][$key])) {
                            
$last $last_y1[$data_set_num $i][$key];
                            
$found true;
                        }
                        
$i++;
                    }
                    
$y2 round($last);
                    
$y1 round(($y2 - ($item $this->unit_scale) + $adjustment));
                }
                else {
                    
$y2 round($this->x_axis_y1);
                    
$y1 round((($this->x_axis_y1 - ($item $this->unit_scale) + $adjustment)));
                }
                
//if we are using a user specified data range, need to limit what's displayed
                
if ($this->bool_user_data_range) {
                    if (
$item <= $this->data_range_min) {
                        
//don't display, we are out of our allowed display range!
                        
$y1 $y2;
                        
$hideBarOutline true;
                    }
                    else if (
$item >= $this->data_range_max) {
                        
//display, but cut off display above range max
                        
$y1 $this->x_axis_y1 - ($this->true_displayed_max_value $this->unit_scale) + $adjustment;    
                    }
                }
                
//draw bar and outline if nonzero
                
if ($this->bool_bars && $item != 0) {
                    if (
$this->bool_gradient) {
                        
$this->drawGradientBar($x1$y1$x2$y2$this->multi_gradient_colors_1[$data_set_num], $this->multi_gradient_colors_2[$data_set_num], $data_set_num);
                    }
                    else {
                        
imagefilledrectangle($this->image$x1$y1,$x2$y2,  $this->multi_bar_colors[$data_set_num]);
                    }
                    
//draw bar outline
                    
if ($this->bool_bar_outline && !$hideBarOutline) {
                        
imagerectangle($this->image,  $x1$y1$x2$y2$this->outline_color); 
                    }
                }
                
// display data values
                
if ($this->bool_data_values) {
                    
$dataX = ($x1 + ($this->bar_width) / 2) - ((strlen($item) * $this->data_value_text_width) / 2);
                    
//value to be graphed is equal/over 0
                    
if ($item >= 0) {
                        
$dataY=$y1-$this->data_value_padding-$this->data_value_text_height;
                    }
                    else {
                        
//check for item values below user spec'd range
                        
if ($this->bool_user_data_range && $item <= $this->data_range_min) {
                            
$dataY $y1 $this->data_value_padding $this->data_value_text_height;
                        }
                        else {
                            
$dataY $y1 $this->data_value_padding;
                        }
                    }
                    
//add currency sign, formatting etc
                    
if ($this->data_format_array) {
                        
$item $this->applyDataFormats($item);
                    }
                    if (
$this->data_currency) {
                        
$item $this->applyDataCurrency($item);
                    }
                    
//recenter data position if necessary
                    
$dataX -= ($this->data_additional_length $this->data_value_text_width) / 2;
                    
imagestring($this->image2$dataX$dataY$item,  $this->data_value_color);
                }
                
//write x axis value 
                
if ($this->bool_x_axis_values) {
                    if (
$data_set_num == $this->data_set_count 1) {
                        if (
$this->bool_x_axis_values_vert) {
                            if (
$this->bool_all_negative) {
                                
//we must put values above 0 line
                                
$textVertPos round($this->y_axis_y2 $this->axis_value_padding);
                            }
                            else {
                                
//mix of both pos and neg numbers
                                //write value y axis bottom value (will be under bottom of grid even if x axis is floating due to
                                
$textVertPos round($this->y_axis_y1 + (strlen($key) * $this->text_width) + $this->axis_value_padding);
                            }
                            
$textHorizPos round($xStart + ($this->bar_width 2) - ($this->text_height 2));
                            
imagestringup($this->image2$textHorizPos$textVertPos$key,  $this->x_axis_text_color);
                        }
                        else {
                            if (
$this->bool_all_negative) {
                                
//we must put values above 0 line
                                
$textVertPos round($this->y_axis_y2 $this->text_height $this->axis_value_padding);
                            }
                            else {
                                
//mix of both pos and neg numbers
                                //write value y axis bottom value (will be under bottom of grid even if x axis is floating
                                
$textVertPos=round($this->y_axis_y1 + ($this->text_height 3)-$this->axis_value_padding);
                            }
                            
//horizontal data keys
                            
$textHorizPos round($xStart + ($this->bar_width 2) - ((strlen($key) * $this->text_width) / 2));
                            
imagestring($this->image2$textHorizPos$textVertPos$key,  $this->x_axis_text_color);
                        }
                    }
                }
                
$xStart += $this->bar_width $this->space_width;
                
$last_y1[$data_set_num][$key] = $y1;
            }
        }
    }
    function 
addData($data$data2 ''$data3 ''$data4 ''$data5 '') {
        if (
is_array($data)){ $this->data_array[]=$data; }
        if (
is_array($data2)){ $this->data_array[]=$data2; }
        if (
is_array($data3)){ $this->data_array[]=$data3; }
        if (
is_array($data4)){ $this->data_array[]=$data4; }
        if (
is_array($data5)){ $this->data_array[]=$data5; }
        
//assess data
        
$min $this->data_max_allowable;
        
$max $this->data_min_allowable;
        
$this->data_count=0;
        
$key_max = array();
        
//loop through each row, adding values to keyed arrays to find combined max
        
foreach ($this->data_array as $data_set_num => $data_set) {
            foreach (
$data_set as $key => $item) {
                if (!
is_numeric($item)) {
                    unset(
$this->data_array[$data_set_num][$key]);
                }
                else {
                    
$key_max[$key] = isset($key_max[$key]) ? $key_max[$key] + $item $item;
                    if(
$key_max[$key] < $min){ $min $key_max[$key]; }
                    if(
$key_max[$key] > $max){ $max $key_max[$key]; }
                }
            }
            
//find the count of the dataset with the most data points
            
$count count($this->data_array[$data_set_num]);
            
$count $this->data_count $this->data_count $count NULL
        }
        
//number of valid data sets
        
$this->data_set_count count($this->data_array);
        if (
$this->data_set_count == 0) {
            
$this->error[] = "No valid datasets added in adddata() function.";
        }
        else {
            
$this->calcMinMax($min$max);
        }
    }
    function 
setLine() { $this->error[] = __function__ '() function not allowed in PHPGraphLib Stacked extension.'; }
    function 
setDataPointSize() { $this->error[] = __function__ '() function not allowed in PHPGraphLib Stacked extension.'; }
    function 
setDataPoints() { $this->error[] = __function__ '() function not allowed in PHPGraphLib Stacked extension.'; }
    function 
setDataValues() { $this->error[] = __function__ '() function not allowed in PHPGraphLib Stacked extension.'; }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.036 ]--