2010-08-21 19:12:34 +00:00
<? php
/*********************************************************************************
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*
********************************************************************************/
// TTF Font names
DEFINE ( "FF_COURIER" , 'Courier New' );
DEFINE ( "FF_VERDANA" , 'Verdana' );
DEFINE ( "FF_TIMES" , 'Times New Roman' );
DEFINE ( "FF_COMIC" , 'Comic' );
DEFINE ( "FF_ARIAL" , 'Arial' );
DEFINE ( "FF_GEORGIA" , 'Georgia' );
DEFINE ( "FF_TREBUCHE" , 'Trebuc' );
2010-11-14 14:46:58 +00:00
DEFINE ( "FF_DEJAVUSAN" , 'DejaVuSans' );
2010-08-21 19:12:34 +00:00
// Chinese font
DEFINE ( "FF_SIMSUN" , 'Simsun' );
DEFINE ( "FF_CHINESE" , 'Chinese' );
DEFINE ( "FF_BIG5" , 'Big5' );
DEFINE ( "FF_FONT1" , 'Vera' );
/**This function is used to get the font name when a language code is given
* Param $locale - language code
* Return type string - font name
*/
function calculate_font_name ( $locale )
{
global $log ;
$log -> debug ( "Entering calculate_font_name(" . $locale . ") method ..." );
switch ( $locale )
{
case 'cn_zh' :
$log -> debug ( "Exiting calculate_font_name method ..." );
return FF_SIMSUN ;
case 'tw_zh' :
if ( ! function_exists ( 'iconv' )){
echo " Unable to display traditional Chinese on the graphs.<BR>The function iconv does not exists please read more about <a href='http://us4.php.net/iconv'>iconv here</a><BR>" ;
$log -> debug ( "Exiting calculate_font_name method ..." );
2010-11-14 14:46:58 +00:00
return FF_DEJAVUSAN ;
2010-08-21 19:12:34 +00:00
}
else
{
$log -> debug ( "Exiting calculate_font_name method ..." );
return FF_CHINESE ;
}
default :
$log -> debug ( "Exiting calculate_font_name method ..." );
2010-11-14 14:46:58 +00:00
return FF_DEJAVUSAN ;
2010-08-21 19:12:34 +00:00
}
$log -> debug ( "Exiting calculate_font_name method ..." );
2010-11-14 14:46:58 +00:00
return FF_DEJAVUSAN ;
2010-08-21 19:12:34 +00:00
}
/**This function is used to generate the n colors.
* Param $count - number of colors to generate
* Param $start - value of first color
* Param $step - color increment to apply
* Return type array - array of n colors values
*/
function color_generator ( $count = 1 , $start = '33CCFF' , $step = '221133' )
{
global $log ;
$log -> debug ( "Entering color_generator(" . $count . "," . $start . "," . $step . ") method ..." );
// explode color strings to RGB array
if ( $start { 0 } == "#" ) $start = substr ( $start , 1 );
if ( $step { 0 } == "#" ) $step = substr ( $step , 1 );
// pad shorter strings with 0
$start = substr ( $start . "000000" , 0 , 6 );
$step = substr ( $step . "000000" , 0 , 6 );
$colors = array ( hexdec ( substr ( $start , 0 , 2 )), hexdec ( substr ( $start , 2 , 2 )), hexdec ( substr ( $start , 4 , 2 )));
$steps = array ( hexdec ( substr ( $step , 0 , 2 )), hexdec ( substr ( $step , 2 , 2 )), hexdec ( substr ( $step , 4 , 2 )));
// buils $count colours adding $step to $start
$result = array ();
for ( $i = 1 ; $i <= $count ; $i ++ ){
array_push ( $result , "#" . dechex ( $colors [ 0 ]) . dechex ( $colors [ 1 ]) . dechex ( $colors [ 2 ]));
for ( $j = 0 ; $j < 3 ; $j ++ ) {
$colors [ $j ] += $steps [ $j ];
if ( $colors [ $j ] > 0xFF ) $colors [ $j ] -= 0xFF ;
}
}
$log -> debug ( "Exiting color_generator method ..." );
return $result ;
}
/**This function is used to define the optimum spacin for tick marks on an axis
* Param $max - maximum value of axis
* Return type array - array of 2 values major and minor spacing
*/
function get_tickspacing ( $max = 10 )
{
global $log , $app_strings ;
$log -> debug ( "Entering get_tickspacing(" . $max . ") method ..." );
$result = array ( 1 , 1 );
// normalize $max to get value between 1 and 10
$coef = pow ( 10 , floor ( log10 ( $max )));
if ( $coef == 0 )
{
$data = 0 ;
echo "<h3>" . $app_strings [ 'NO_DATA_AVAILABLE_WITH_SPECIFIED_PERIOD' ] . "</h3>" ;
$log -> debug ( "Exiting get_tickspacing method ..." );
return $data ;
}
$normalized = $max / $coef ;
if ( $normalized < 1.5 ){
$result [ 0 ] = 0.2 ;
$result [ 1 ] = 0.1 ;
}
elseif ( $normalized < 5 ){
$result [ 0 ] = 0.5 ;
$result [ 1 ] = 0.1 ;
}
elseif ( $normalized < 10 ){
$result [ 0 ] = 1.0 ;
$result [ 1 ] = 0.5 ;
}
$result [ 0 ] *= $coef ;
$result [ 1 ] *= $coef ;
$log -> debug ( "Exiting get_tickspacing method ..." );
return $result ;
}
?>