4d7293d0f5
--HG-- branch : gsoc2011-kerozcak
84 lines
2.1 KiB
PHP
84 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Simple Graph Helper
|
|
*
|
|
* Allows creation and display of extremely simple graphing elements
|
|
*
|
|
* PHP versions 4 and 5
|
|
*
|
|
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
|
|
* Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
|
|
*
|
|
* Licensed under The MIT License
|
|
* Redistributions of files must retain the above copyright notice.
|
|
*
|
|
* @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
|
|
* @link http://cakephp.org
|
|
* @package debug_kit
|
|
* @subpackage debug_kit.views.helpers
|
|
* @since DebugKit 1.0
|
|
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
|
|
**/
|
|
App::import('Helper', 'Html');
|
|
|
|
class SimpleGraphHelper extends AppHelper {
|
|
/**
|
|
* Helpers
|
|
*
|
|
* @var array
|
|
*/
|
|
var $helpers = array('Html');
|
|
/**
|
|
* Default settings to be applied to each Simple Graph
|
|
*
|
|
* Allowed options:
|
|
*
|
|
* - max => (int) Maximum value in the graphs
|
|
* - width => (int)
|
|
* - valueType => string (value, percentage)
|
|
* - style => array
|
|
*
|
|
* @var array
|
|
*/
|
|
var $__defaultSettings = array(
|
|
'max' => 100,
|
|
'width' => 350,
|
|
'valueType' => 'value',
|
|
);
|
|
/**
|
|
* bar method
|
|
*
|
|
* @param $value Value to be graphed
|
|
* @param $offset how much indentation
|
|
* @param $options Graph options
|
|
* @return string Html graph
|
|
* @access public
|
|
*/
|
|
function bar($value, $offset, $options = array()) {
|
|
$settings = array_merge($this->__defaultSettings, $options);
|
|
extract($settings);
|
|
|
|
$graphValue = ($value / $max) * $width;
|
|
$graphValue = max(round($graphValue), 1);
|
|
|
|
if ($valueType == 'percentage') {
|
|
$graphOffset = 0;
|
|
} else {
|
|
$graphOffset = ($offset / $max) * $width;
|
|
$graphOffset = round($graphOffset);
|
|
}
|
|
return $this->Html->div(
|
|
'debug-kit-graph-bar',
|
|
$this->Html->div(
|
|
'debug-kit-graph-bar-value',
|
|
' ',
|
|
array(
|
|
'style' => "margin-left: {$graphOffset}px; width: {$graphValue}px",
|
|
'title' => sprintf(__d('debug_kit', "Starting %sms into the request, taking %sms", true), $offset, $value),
|
|
)
|
|
),
|
|
array('style' => "width: {$width}px;"),
|
|
false
|
|
);
|
|
}
|
|
}
|