Newer
Older
Benaka Moorthi
a validé
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
* @category Piwik_Plugins
* @package CoreVisualizations
Benaka Moorthi
a validé
*/
Benaka Moorthi
a validé
namespace Piwik\Plugins\CoreVisualizations\Visualizations;
Benaka Moorthi
a validé
use Piwik\Plugins\CoreVisualizations\JqplotDataGenerator;
use Piwik\View;
use Piwik\ViewDataTable\Graph;
Benaka Moorthi
a validé
Benaka Moorthi
a validé
/**
* DataTable visualization that displays DataTable data in a JQPlot graph.
Benaka Moorthi
a validé
* TODO: should merge all this logic w/ jqplotdatagenerator & 'Chart' visualizations.
Benaka Moorthi
a validé
*/
Benaka Moorthi
a validé
class JqplotGraph extends Graph
Benaka Moorthi
a validé
{
const ID = 'jqplot_graph';
Benaka Moorthi
a validé
/**
* The name of the JavaScript class to use as this graph's external series toggle. The class
* must be a subclass of JQPlotExternalSeriesToggle.
* @see self::EXTERNAL_SERIES_TOGGLE_SHOW_ALL
* Default value: false
*/
const EXTERNAL_SERIES_TOGGLE = 'external_series_toggle';
/**
* Whether the graph should show all loaded series upon initial display.
* @see self::EXTERNAL_SERIES_TOGGLE
* Default value: false
*/
const EXTERNAL_SERIES_TOGGLE_SHOW_ALL = 'external_series_toggle_show_all';
Benaka Moorthi
a validé
/**
* The number of x-axis ticks for each x-axis label.
* Default: 2
Benaka Moorthi
a validé
*/
const X_AXIS_STEP_SIZE = 'x_axis_step_size';
Benaka Moorthi
a validé
public static $clientSideProperties = array(
'external_series_toggle',
'external_series_toggle_show_all'
);
Benaka Moorthi
a validé
public static $overridableProperties = array('x_axis_step_size');
Thomas Steur
a validé
protected $templateFile = "@CoreVisualizations/_dataTableViz_jqplotGraph.twig";
/**
Benaka Moorthi
a validé
*/
public function init()
Benaka Moorthi
a validé
{
$view = $this->viewDataTable;
parent::init();
Benaka Moorthi
a validé
// do not sort if sorted column was initially "label" or eg. it would make "Visits by Server time" not pretty
if ($view->filter_sort_column != 'label') {
$columns = $view->columns_to_display;
$firstColumn = reset($columns);
if ($firstColumn == 'label') {
$firstColumn = next($columns);
}
$result['filter_sort_column'] = $firstColumn;
$result['filter_sort_order'] = 'desc';
}
}
Benaka Moorthi
a validé
/**
* Returns an array mapping property names with default values for this visualization.
* @return array
*/
public static function getDefaultPropertyValues()
{
Benaka Moorthi
a validé
$result = parent::getDefaultPropertyValues();
return array_merge_recursive($result, array(
'show_offset_information' => false,
'show_pagination_control' => false,
'show_exclude_low_population' => false,
'show_search' => false,
'show_export_as_image_icon' => true,
'y_axis_unit' => '',
'visualization_properties' => array(
'jqplot_graph' => array(
'external_series_toggle' => false,
'external_series_toggle_show_all' => false,
'x_axis_step_size' => 2
)
)
));
Benaka Moorthi
a validé
}
Benaka Moorthi
a validé
public function getGraphData($dataTable, $properties)
Benaka Moorthi
a validé
{
Benaka Moorthi
a validé
$dataGenerator = $this->makeDataGenerator($properties);
return $dataGenerator->generate($dataTable);
Benaka Moorthi
a validé
}
Benaka Moorthi
a validé
}
require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Bar.php';
require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php';
require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php';