2017-05-20 15:26:21 +02:00
< ? php defined ( 'SYSPATH' ) OR die ( 'No direct access allowed.' );
/**
*
*
*/
class pnp_Core {
public static function clean ( $string = FALSE ){
if ( $string === FALSE ){
return ;
}
if ( $string == " " ){
return $string ;
}
$string = preg_replace ( '/[ :\/\\\]/' , " _ " , $string );
$string = htmlspecialchars ( $string );
return $string ;
}
public static function shorten ( $string = FALSE , $length = 25 ){
if ( $string === FALSE ){
return ;
}
if ( strlen ( $string ) > $length ){
$string = substr ( $string , 0 , $length ) . " ... " ;
}
return $string ;
}
/*
*
*/
public static function xml_version_check ( $string = FALSE ){
if ( $string === FALSE ){
return FALSE ;
}
if ( $string == XML_STRUCTURE_VERSION ){
$string = " valid " ;
} else {
$string = Kohana :: lang ( 'error.xml-structure-mismatch' , $string , XML_STRUCTURE_VERSION );
}
return $string ;
}
/*
*
*/
public static function zoom_icon ( $host , $service , $start , $end , $source , $view , $graph_width , $graph_height ){
2017-05-20 15:29:39 +02:00
$service = urlencode ( urlencode ( $service ));
$host = urlencode ( urlencode ( $host ));
2017-05-20 15:26:21 +02:00
print " <a href= \" javascript:Gzoom(' " . url :: base ( TRUE ) . " zoom?host= $host &srv= $service &view= $view &source= $source &end= $end &start= $start &graph_width= $graph_width &graph_height= $graph_height '); \" title= \" Zoom into the Graph \" ><img src= \" " . url :: base () . " media/images/zoom.png \" ></a> \n " ;
}
/*
*
*/
public static function zoom_icon_special ( $tpl , $start , $end , $source , $view , $graph_width , $graph_height ){
print " <a href= \" javascript:Gzoom(' " . url :: base ( TRUE ) . " zoom?tpl= $tpl &view= $view &source= $source &end= $end &start= $start &graph_width= $graph_width &graph_height= $graph_height '); \" title= \" Zoom into the Graph \" ><img src= \" " . url :: base () . " media/images/zoom.png \" ></a> \n " ;
}
/*
*
*/
public static function add_to_basket_icon ( $host , $service , $source = FALSE ){
if ( $source === FALSE ){
print " <span id= \" basket_action_add \" ><a title= \" " . Kohana :: lang ( 'common.basket-add-service' ) . " \" id= \" " . $host . " :: " . $service . " \" ><img width=12px height=12px src= \" " . url :: base () . " media/images/add.png \" ></a></span> \n " ;
} else {
print " <span id= \" basket_action_add \" ><a title= \" " . Kohana :: lang ( 'common.basket-add-item' ) . " \" id= \" " . $host . " :: " . $service . " :: " . $source . " \" ><img width=16px height=16px src= \" " . url :: base () . " media/images/add.png \" ></a></span> \n " ;
}
}
/*
*
*/
public static function multisite_link ( $base_url = FALSE , $site = FALSE , $host = FALSE , $service = FALSE ){
if ( $host && $service ){
$link = sprintf ( " '%s/view.py?view_name=service&site=%s&host=%s&service=%s' " , $base_url , $site , urlencode ( $host ), urlencode ( $service ));
return $link ;
}
if ( $host ){
$link = sprintf ( " '%s/view.py?view_name=host&site=%s&host=%s' " , $base_url , $site , urlencode ( $host ));
return $link ;
}
}
public static function addToUri ( $fields = array (), $base = True ){
if ( ! is_array ( $fields )){
return false ;
}
$get = $_GET ;
if ( $base === True ){
$uri = url :: base ( TRUE );
$uri .= Router :: $current_uri ;
} else {
$uri = " " ;
}
$uri .= '?' ;
foreach ( $fields as $key => $value ){
$get [ $key ] = $value ;
}
foreach ( $get as $key => $value ){
if ( $value === '' ){
continue ;
}
$uri .= $key . " = " . urlencode ( $value ) . " & " ;
}
return rtrim ( $uri , " & " );
}
/* " normalize " and adjust value / unit ( similar to format string % s in RRDtool )
* Parameters in :
* value := number , maybe suffixed by unit string
* examples : 1234 , 1.234 , 1234 M , 1234 Kb
* base := base of value ( 1000 , e . g . traffic or 1024 , e . g . disk size )
* format := format string
* Parameters out :
* val_unit := formatted value ( including unit )
* val_fmt := formatted value ( without leading blanks and unit )
* unit := adjusted unit
* divisor := number used to " normalize " value
*/
public static function adjust_unit ( $value , $base = 1000 , $format = '%.3lf' ){
preg_match ( '/^(-?[0-9\.,]+)\s*(\S?)(\S?)/' , $value , $matches );
$mag = 0 ;
while ( $value >= $base ){
$value /= $base ;
$mag ++ ;
}
$pos = 0 ;
if ( $matches [ 2 ] == " % " ) {
$unit = '%' ;
} else {
if ( $matches [ 2 ] == " " ) {
$matches [ 2 ] = " " ;
}
if (( $matches [ 2 ] == " B " ) or ( $matches [ 2 ] == " b " )) {
$matches [ 3 ] = $matches [ 2 ];
$matches [ 2 ] = " " ;
}
$pos = strpos ( ' KMGTP' , strtoupper ( $matches [ 2 ]));
$unit = substr ( ' KMGTP' , $mag + $pos , 1 ) . $matches [ 3 ];
}
$val_unit = sprintf ( " $format %s " , $value , $unit );
$val_fmt = sprintf ( $format , $value );
$val_fmt = str_replace ( ' ' , '' , $val_fmt );
return array ( $val_unit , $val_fmt , $unit , pow ( $base , $mag ));
}
public static function print_version (){
return PNP_NAME . " - " . PNP_VERSION . " [ " . PNP_REL_DATE . " ] " ;
}
}