443 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			443 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
| HLstatsX Community Edition - Real-time player and clan rankings and statistics
 | |
| Copyleft (L) 2008-20XX Nicholas Hastings (nshastings@gmail.com)
 | |
| http://www.hlxcommunity.com
 | |
| 
 | |
| HLstatsX Community Edition is a continuation of 
 | |
| ELstatsNEO - Real-time player and clan rankings and statistics
 | |
| Copyleft (L) 2008-20XX Malte Bayer (steam@neo-soft.org)
 | |
| http://ovrsized.neo-soft.org/
 | |
| 
 | |
| ELstatsNEO is an very improved & enhanced - so called Ultra-Humongus Edition of HLstatsX
 | |
| HLstatsX - Real-time player and clan rankings and statistics for Half-Life 2
 | |
| http://www.hlstatsx.com/
 | |
| Copyright (C) 2005-2007 Tobias Oetzel (Tobi@hlstatsx.com)
 | |
| 
 | |
| HLstatsX is an enhanced version of HLstats made by Simon Garner
 | |
| HLstats - Real-time player and clan rankings and statistics for Half-Life
 | |
| http://sourceforge.net/projects/hlstats/
 | |
| Copyright (C) 2001  Simon Garner
 | |
|             
 | |
| 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 2
 | |
| 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, write to the Free Software
 | |
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 | |
| 
 | |
| For support and installation notes visit http://www.hlxcommunity.com
 | |
| */
 | |
| 
 | |
|     function image_dashed_line($image, $x1, $y1, $x2, $y2, $style)
 | |
| 	{
 | |
| 		if (count($style)>0) {
 | |
| 			$temp_x1 = $x1;
 | |
| 			$temp_y1 = $y1;
 | |
| 			$count   = 0;
 | |
| 			while (($temp_x1<$x2) || ($temp_y1<$y2)) {
 | |
| 				$my_style = $style[$count % count($style)];
 | |
| 				$step = 0;
 | |
| 				while ($my_style != $style[(($count+$step) % count($style))]) {
 | |
| 					$step++;
 | |
| 				}
 | |
| 				if ($step==0)
 | |
| 					$step++;
 | |
| 
 | |
| 				if ($x1 != $x2) {
 | |
| 					if ($my_style != -1)
 | |
| 						imageline($image, $temp_x1, $y1, $temp_x1+$step, $y2, $my_style);
 | |
| 					$temp_x1 = $temp_x1 + $step;
 | |
| 				}
 | |
| 				if ($y1!=$y2) {
 | |
| 					if ($my_style != -1)
 | |
| 						imageline($image, $x1, $temp_y1, $x2, $temp_y1+$step, $my_style);
 | |
| 					$temp_y1 = $temp_y1 + $step;
 | |
| 				}
 | |
| 				$count = $count + $step;
 | |
| 			}
 | |
| 		} else {
 | |
| 			imageline($image, $x1, $y1, $x2, $y2, $style[0]);
 | |
| 		}
 | |
|     }
 | |
| 
 | |
| //TSGK
 | |
|     $first_entry = 0;
 | |
| //TSGK
 | |
| 
 | |
|     function drawItems($image, $bounds, $data_array, $max_index, $name, $dot, $make_grid, $write_timestamp, $write_legend, $color)
 | |
| 	{
 | |
| 		global $max_pos_y;
 | |
| 		global $legend_x;
 | |
| 		global $bar_type;
 | |
| 		global $deletedays;
 | |
| 		global $server_load_type; 
 | |
| //TSGK
 | |
| 		global $first_entry;
 | |
| 		$first_entry++;
 | |
| //TSGK
 | |
|     
 | |
| 		if (!isset($max_pos_y[$max_index])) {
 | |
| 			$max_pos_y[$max_index] = 0; 
 | |
| 		}  
 | |
| 
 | |
| 
 | |
| 
 | |
| 		foreach ($data_array as $entry) {
 | |
| 			if ($entry[$name] >= $max_pos_y[$max_index]) {
 | |
| 				if ($entry[$name] < 100)
 | |
| 					$max_pos_y[$max_index] = $entry[$name] + 2;
 | |
| 				else if ($entry[$name] < 200) 
 | |
| 					$max_pos_y[$max_index] = $entry[$name] + 10;
 | |
| 				else if ($entry[$name] < 10000)
 | |
| 					$max_pos_y[$max_index] = $entry[$name] + ($entry[$name] * 0.3);
 | |
| 				else
 | |
| 					$max_pos_y[$max_index] = $entry[$name] - ($entry[$name] % 50000) + 100000;
 | |
| 
 | |
| 
 | |
| 				if ($make_grid > 0) {
 | |
| 					if ($max_pos_y[$max_index] % 2 != 0)
 | |
| 						$max_pos_y[$max_index]++;
 | |
| 					$i = 0;
 | |
| 					while (($i < 10) && ($max_pos_y[$max_index] % 4 != 0)) {
 | |
| 						$max_pos_y[$max_index]++;
 | |
| 						$i++;
 | |
| 					}
 | |
| 				}
 | |
| 
 | |
| 				if ($max_pos_y[$max_index] == 0)
 | |
| 					$max_pos_y[$max_index] = 1;
 | |
|                 
 | |
| 			}
 | |
| 		}
 | |
|       
 | |
|       
 | |
| 		if ($write_legend > 0) {
 | |
| 			if ($legend_x == 0)
 | |
| 				$legend_x += $bounds['indent_x'][0] + 10;
 | |
| 			imagesetpixel($image, $legend_x,   $bounds['indent_y'][0]-7, $color[0]);
 | |
| 			imagesetpixel($image, $legend_x+1, $bounds['indent_y'][0]-7, $color[0]);
 | |
| 			imagesetpixel($image, $legend_x+2, $bounds['indent_y'][0]-7, $color[0]);
 | |
| 			imagesetpixel($image, $legend_x,   $bounds['indent_y'][0]-8, $color[0]);
 | |
| 			imagesetpixel($image, $legend_x+1, $bounds['indent_y'][0]-8, $color[0]);
 | |
| 			imagesetpixel($image, $legend_x+2, $bounds['indent_y'][0]-8, $color[0]);
 | |
| 			imagesetpixel($image, $legend_x,   $bounds['indent_y'][0]-9, $color[0]);
 | |
| 			imagesetpixel($image, $legend_x+1, $bounds['indent_y'][0]-9, $color[0]);
 | |
| 			imagesetpixel($image, $legend_x+2, $bounds['indent_y'][0]-9, $color[0]);
 | |
| 			$legend_x += 7;
 | |
| 			imagestring($image, 1, $legend_x, $bounds['indent_y'][0]-11, $name , $color[2]);
 | |
| 			$legend_x += (imagefontwidth(1) * strlen($name)) + 7;
 | |
| 		}
 | |
|       
 | |
| 		$start_pos = array("x" => $bounds['width']-$bounds['indent_x'][1], "y" => $bounds['indent_y'][1]);
 | |
|        
 | |
| 		$pos   = $start_pos;
 | |
| 		$cache = array("x" => 0, "y" => 0);
 | |
|       
 | |
| 		$step_y = ($bounds['height']-$bounds['indent_y'][0]-$bounds['indent_y'][1]) / 10;
 | |
| 		if ($step_y < 15)
 | |
| 			$step_y = 15;
 | |
| 
 | |
| // TSGK MAP TEXT
 | |
| 		$last_map          = ""; 
 | |
| 		$last_map_posx     = 0;
 | |
| 		$bk_color          = 0;
 | |
| 
 | |
| 		global $gray_border;
 | |
|         
 | |
| 		if (($first_entry == 1) && ($make_grid > 0) && ($server_load_type == 1)) {
 | |
| 			foreach ($data_array as $key => $entry)  {
 | |
| 				if (($entry['map'] !== $last_map) || ($pos['x'] <= ($bounds['indent_x'][0]+1) )) {
 | |
| 					if ($last_map == "") {
 | |
| 						$last_map      = $entry['map'];
 | |
| 						$last_map_posx = $pos['x']; 
 | |
| 					} else {    
 | |
| 						$last_map = $entry['map'];
 | |
| 						while ($last_map_posx > $pos['x']) {
 | |
| 							if (($bk_color % 2) == 0) {
 | |
| 								imageline($image, $last_map_posx, $bounds['indent_y'][0]+1, $last_map_posx, $bounds['height']-$bounds['indent_y'][1]-1, $color[4]);
 | |
| 							}
 | |
| 							$last_map_posx--;
 | |
| 						}
 | |
| 						$bk_color++;
 | |
| 						imageline($image, $pos['x']+1, $bounds['indent_y'][0]+1, $pos['x']+1, $bounds['height']-$bounds['indent_y'][1]-1, $gray_border);
 | |
| 						$last_map_posx = $pos['x']; 
 | |
| 					}
 | |
| 				}
 | |
| 				$pos['x'] -= 3;
 | |
| 				if ($pos['x'] < $bounds['indent_x'][0])
 | |
| 					break;
 | |
| 			}
 | |
|         }
 | |
| // END TSGK MAP TEXT
 | |
|         
 | |
| 		if ($make_grid > 0) {
 | |
| 			$step_diff  = 0;
 | |
| 			$step_width = 0;
 | |
| 			while ($step_diff < 15) {
 | |
| 				$step_width++;
 | |
| 				if ($max_pos_y[$max_index] % $step_width == 0) {
 | |
| 					$steps = $max_pos_y[$max_index] / $step_width;
 | |
| 					if ($steps > 0)
 | |
| 						$step_diff = ($bounds['height']-$bounds['indent_y'][0]-$bounds['indent_y'][1]) / $steps;
 | |
| 					else
 | |
| 						$step_diff = 15;
 | |
| 				} else {
 | |
| 					$step_diff = 0;
 | |
| 				}
 | |
| 			}
 | |
|         
 | |
| 			for ($i=1; $i<$steps; $i++) {
 | |
| 				$temp_y = (($bounds['height']-$bounds['indent_y'][0]-$bounds['indent_y'][1]) - ((($bounds['height']-$bounds['indent_y'][0]-$bounds['indent_y'][1]) / $max_pos_y[$max_index]) * ($i*$step_width))) + $bounds['indent_y'][0];
 | |
| 				if ($temp_y > $bounds['indent_y'][0]+5)
 | |
| 					image_dashed_line($image, $bounds['indent_x'][0]+1, 
 | |
| 						$temp_y, 
 | |
| 						($bounds['width']-$bounds['indent_x'][1]-1), 
 | |
| 						$temp_y, 
 | |
| 						array($color[4], $color[4], $color[4], -1, -1, -1));
 | |
| 				imageline($image, $bounds['indent_x'][0]+1, $temp_y, $bounds['indent_x'][0]+4, $temp_y, $color[3]);
 | |
| 
 | |
| 				if ($max_pos_y[$max_index] > 10000) {
 | |
| 					$str     = sprintf("%.0fk", ($i*$step_width) / 1000);
 | |
| 				} else {
 | |
| 					$str     = sprintf("%.0f", $i*$step_width);
 | |
| 				}  
 | |
| 				$str_pos = $bounds['indent_x'][0] - (imagefontwidth(1) * strlen($str)) - 2;
 | |
| 				imagestring($image, 1, $str_pos, $temp_y-3, $str, $color[2]);
 | |
| 			}
 | |
|         
 | |
| 			if ($max_pos_y[$max_index] > 10000)
 | |
| 				$str     = sprintf("%.0fk", $max_pos_y[$max_index] / 1000);
 | |
| 			else  
 | |
| 				$str     = sprintf("%.0f", $max_pos_y[$max_index]);
 | |
| 			$str_pos = $bounds['indent_x'][0] - (imagefontwidth(1) * strlen($str)) - 2;
 | |
| 			imagestring($image, 1, $str_pos, $bounds['indent_y'][0]-3, $str, $color[2]);
 | |
| 		}
 | |
|       
 | |
| 		$last_month           = 0;
 | |
| 		$last_month_timestamp = 0;
 | |
| 		$last_day             = 0;
 | |
| 		$last_day_timestamp   = 0;
 | |
| 		$first_timestamp      = 0;
 | |
| 		$first_day            = 0;
 | |
| 
 | |
| 		switch ($server_load_type)  {
 | |
| 			case 1 : $mov_avg_precision = 5;
 | |
| 				break; 
 | |
| 			case 2 : $mov_avg_precision = 5;
 | |
| 				break; 
 | |
| 			case 3 : $mov_avg_precision = 10;
 | |
| 				break; 
 | |
| 			case 4 : $mov_avg_precision = 10;
 | |
| 				break; 
 | |
| 			default: $mov_avg_precision = 1;
 | |
| 				break; 
 | |
| 		}
 | |
|       
 | |
| 		$mov_avg_array        = array();
 | |
| 		$mov_avg_value        = 0;
 | |
| 		$mov_avg_display_value = array();
 | |
| 
 | |
| 		$i = 0;
 | |
| 		while (($i < count($data_array)) && ($i < $mov_avg_precision / 2)) {
 | |
| 			$entry = $data_array[$i];
 | |
| 			$mov_avg_array[] = (($bounds['height']-$bounds['indent_y'][0]-$bounds['indent_y'][1]) - ((($bounds['height']-$bounds['indent_y'][0]-$bounds['indent_y'][1]) / $max_pos_y[$max_index]) * $entry[$name])) + $bounds['indent_y'][0];
 | |
| 			$mov_avg_display_value[] = $entry[$name];
 | |
| 			$i++;
 | |
| 		}
 | |
| 
 | |
| // TSGK
 | |
| 		$last_map          = ""; 
 | |
| 		$last_map_posx     = 0;
 | |
| 		$bk_color          = 0;
 | |
| // TSGK
 | |
| 
 | |
| 		foreach ($data_array as $key => $entry) {
 | |
| 
 | |
| 			$pos['y'] = (($bounds['height']-$bounds['indent_y'][0]-$bounds['indent_y'][1]) - ((($bounds['height']-$bounds['indent_y'][0]-$bounds['indent_y'][1]) / $max_pos_y[$max_index]) * $entry[$name])) + $bounds['indent_y'][0];
 | |
| 
 | |
| 
 | |
| // TSGK
 | |
| 			$maptext = imagecolorallocate($image, 96, 96, 96);
 | |
| 			if(!isset($entry['map']))
 | |
| 				$entry['map']="";
 | |
| 			if (($first_entry == 2) && ($server_load_type == 1)) {
 | |
| 				if ($entry['map'] !== $last_map) {
 | |
| 					if ($last_map == "") {
 | |
| 						$last_map      = $entry['map'];
 | |
| 						$last_map_posx = $pos['x'];
 | |
| 						if ($entry['map'] != "") { 
 | |
| 							$str_height = $bounds['indent_y'][0] + (imagefontwidth(1) * strlen($entry['map'])) + 2;
 | |
| 							imagestringup($image, 1, $pos['x']-8, $str_height, $entry['map'], $maptext);
 | |
| 						}
 | |
| 					} else {
 | |
| 						$last_map = $entry['map'];
 | |
| 						$str_height = $bounds['indent_y'][0] + (imagefontwidth(1) * strlen($entry['map'])) + 2;
 | |
| 						imagestringup($image, 1, $pos['x']-8, $str_height, $entry['map'], $maptext);
 | |
| 						$last_map_posx = $pos['x'];
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| // TSGK
 | |
| 
 | |
| 			$mov_avg_array[] = $pos['y'];
 | |
| 			$mov_avg_value   = $pos['y'];
 | |
|         
 | |
| 			if (count($mov_avg_array) > $mov_avg_precision)
 | |
| 				array_shift($mov_avg_array);
 | |
| 			$mov_avg_sum         = 0;
 | |
| 			$mov_avg_display_sum = 0;
 | |
| 			foreach ($mov_avg_array as $mov_avg_entry)
 | |
| 				$mov_avg_sum += $mov_avg_entry;
 | |
| 			$mov_avg_value = sprintf("%d", ($mov_avg_sum / count($mov_avg_array)));
 | |
| 			$pos['y']   = $mov_avg_value;
 | |
|         
 | |
| 			if ($key > 0) {
 | |
| 				imageline($image, $cache['x'], $cache['y'], $pos['x'], $pos['y'], $color[0]);  
 | |
| 			}
 | |
|         
 | |
| 			if ($key == 0) {
 | |
| 				foreach ($mov_avg_display_value as $mov_avg_display_entry)
 | |
| 					$mov_avg_display_sum += $mov_avg_display_entry;
 | |
| 				$display_value = sprintf("%d", ($mov_avg_display_sum / count($mov_avg_display_value)));
 | |
| 				if ($display_value > 10000)
 | |
| 					$str     = sprintf("%.1fk", $display_value / 1000);
 | |
| 				else
 | |
| 					if ($name !== "act_players")
 | |
| 						$str     = sprintf("%.0f", $display_value);
 | |
| 					else  
 | |
| 						$str     = sprintf("%.1f", $display_value);
 | |
| 				imagestring($image, 1, $pos['x']+2, $pos['y']-4, $str, $color[2]);
 | |
| 			}
 | |
|         
 | |
| 			if ($first_timestamp == 0)
 | |
| 				$first_timestamp = $entry['timestamp'];
 | |
| 			$this_month = date("m", $entry['timestamp']);
 | |
| 			if ($this_month > $last_month+1)
 | |
| 				$last_month = $this_month+1;
 | |
| 			if ($last_month == 0) {
 | |
| 				$last_month           = $this_month;
 | |
| 				$last_month_timestamp = $entry['timestamp'];
 | |
| 			}
 | |
| 			if ($last_month == $this_month)
 | |
| 				$last_month_timestamp = $entry['timestamp'];
 | |
|           
 | |
| 			$this_day = date("d", $entry['timestamp']);
 | |
| 			if ($this_day > $last_day+1)
 | |
| 				$last_day = $this_day+1;
 | |
| 			if ($last_day == 0) {
 | |
| 				$last_day           = $this_day;
 | |
| 				$last_day_timestamp = $entry['timestamp'];
 | |
| 			}
 | |
| 			if ($last_day == $this_day)
 | |
| 				$last_day_timestamp = $entry['timestamp'];
 | |
| 
 | |
| 			switch ($server_load_type)  {
 | |
| 				case 1:
 | |
| 					if (($write_timestamp > 0) && ($key > 0 && $key % 12 == 0))  {
 | |
| 						image_dashed_line($image, $pos['x'], $pos['y'], $pos['x'], $bounds['height']-$bounds['indent_y'][1], array($color[1], $color[1], $color[1], -1, -1, -1));
 | |
| 						$str = date("H:i", $entry['timestamp']);
 | |
| 						imagestring($image, 1, $pos['x']-10, $bounds['height']-$bounds['indent_y'][1]+3, $str, $color[2]);
 | |
| 					}
 | |
| 					break;
 | |
| 					
 | |
| 				case 2:
 | |
| 					if (($write_timestamp > 0) && ($last_day > $this_day)) {
 | |
| 						$last_day = $this_day; 
 | |
| 						if ($bounds['width']-$bounds['indent_x'][1]-$pos['x'] > 120)
 | |
| 							$first_day++;
 | |
| 						if ($first_day > 0) { 
 | |
| 							image_dashed_line($image, $pos['x'], $pos['y'], $pos['x'], $bounds['height']-$bounds['indent_y'][1], array($color[1], $color[1], $color[1], -1, -1, -1));
 | |
| 							$first_day++;  
 | |
| 							if ($last_day_timestamp == 0)
 | |
| 								$last_day_timestamp = $first_timestamp;
 | |
| 							$str = date("l", $last_day_timestamp);
 | |
| 							imagestring($image, 1, $pos['x']-15, $bounds['height']-$bounds['indent_y'][1]+3, $str, $color[2]);
 | |
| 						}
 | |
| 						$first_day++;
 | |
| 					}
 | |
|                     break;
 | |
| 					
 | |
| 				case 3:
 | |
| 					if (($write_timestamp > 0) && ($last_day > $this_day)) {
 | |
| 						$last_day = $this_day; 
 | |
| 						if ($bounds['width']-$bounds['indent_x'][1]-$pos['x'] > 0)
 | |
| 							$first_day++;
 | |
| 						if ($first_day > 0) { 
 | |
| 							image_dashed_line($image, $pos['x'], $pos['y'], $pos['x'], $bounds['height']-$bounds['indent_y'][1], array($color[1], $color[1], $color[1], -1, -1, -1));
 | |
| 							if ($last_day_timestamp == 0)
 | |
| 								$last_day_timestamp = $first_timestamp;
 | |
| 							$str = date("d", $last_day_timestamp);
 | |
| 							imagestring($image, 1, $pos['x']-5, $bounds['height']-$bounds['indent_y'][1]+3, $str, $color[2]);
 | |
| 						}
 | |
|                     }
 | |
|                     break;
 | |
| 					
 | |
| 				case 4:
 | |
| 					if (($write_timestamp > 0) && ($last_month > $this_month)) {
 | |
| 						$last_month = $this_month; 
 | |
| 						if ($bounds['width']-$bounds['indent_x'][1]-$pos['x'] > 30)
 | |
| 							$first_day++;
 | |
| 						if ($first_day > 0) { 
 | |
| 							image_dashed_line($image, $pos['x'], $pos['y'], $pos['x'], $bounds['height']-$bounds['indent_y'][1], array($color[1], $color[1], $color[1], -1, -1, -1));
 | |
| 							$first_day++;  
 | |
| 							if ($last_month_timestamp == 0)
 | |
| 								$last_month_timestamp = $first_timestamp;
 | |
| 							$str = date("M", $last_month_timestamp);
 | |
| 							imagestring($image, 1, $pos['x']-5, $bounds['height']-$bounds['indent_y'][1]+3, $str, $color[2]);
 | |
| 						}
 | |
| 						$first_day++;
 | |
|                     }
 | |
|                     break;
 | |
| 					
 | |
| 				default:
 | |
| 					if (($write_timestamp > 0) && ($key > 0 && $key % 12 == 0)) {
 | |
| 						image_dashed_line($image, $pos['x'], $pos['y'], $pos['x'], $bounds['height']-$bounds['indent_y'][1], array($color[1], $color[1], $color[1], -1, -1, -1));
 | |
| 						$str = date("H:i", $entry['timestamp']);
 | |
| 						imagestring($image, 1, $pos['x']-10, $bounds['height']-$bounds['indent_y'][1]+3, $str, $color[2]);
 | |
|                     }
 | |
|                     break;
 | |
| 			}
 | |
|                         
 | |
| 			if ($dot > 0) {
 | |
| 				imagesetpixel($image, $pos['x'],   $pos['y'],   $color[0]);
 | |
| 				imagesetpixel($image, $pos['x']-1, $pos['y'],   $color[0]);
 | |
| 				imagesetpixel($image, $pos['x']-1, $pos['y']-1, $color[0]);
 | |
| 				imagesetpixel($image, $pos['x']-1, $pos['y']+1, $color[0]);
 | |
| 				imagesetpixel($image, $pos['x']+1, $pos['y'],   $color[0]);
 | |
| 				imagesetpixel($image, $pos['x']+1, $pos['y']-1, $color[0]);
 | |
| 				imagesetpixel($image, $pos['x']+1, $pos['y']+1, $color[0]);
 | |
| 				imagesetpixel($image, $pos['x'],   $pos['y']-1, $color[0]);
 | |
| 				imagesetpixel($image, $pos['x'],   $pos['y']+1, $color[0]);
 | |
| 			} else {
 | |
| 				imagesetpixel($image, $pos['x'],   $pos['y'],   $color[0]);
 | |
| 			}
 | |
|         
 | |
| 			$cache['x'] = $pos['x'];
 | |
| 			$cache['y'] = $pos['y'];
 | |
|         
 | |
| 			$step_x = 3;
 | |
|         
 | |
| 			if ($bar_type==2) {
 | |
| 				// skalieren auf anzahl Tage
 | |
| 				$step_x = round( ($bounds['width']-$bounds['indent_x'][1]-$bounds['indent_x'][0]) / $deletedays );
 | |
| 			}
 | |
| 
 | |
| 			if ($bar_type==3 || $bar_type==4) {
 | |
| 				// skalieren 
 | |
| 				$step_x = 5;
 | |
| 			}
 | |
| 
 | |
| 			$pos['x'] -= $step_x;
 | |
| 			if ($pos['x'] < $bounds['indent_x'][0])
 | |
| 				break;
 | |
| 		}
 | |
|     }
 | |
| ?>
 |