forked from rebillar/site-accueil-insa
87 lines
2.5 KiB
PHP
87 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* Matomo - free/libre analytics platform
|
|
*
|
|
* @link https://matomo.org
|
|
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
|
*
|
|
*/
|
|
|
|
namespace Piwik\Plugins\PagePerformance\Visualizations;
|
|
|
|
use Piwik\DataTable;
|
|
use Piwik\DbHelper;
|
|
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
|
|
use Piwik\Plugins\PagePerformance\Metrics;
|
|
use Piwik\Plugins\PagePerformance\PagePerformance;
|
|
|
|
/**
|
|
* DataTable Visualization that derives from HtmlTable and show performance columns.
|
|
*/
|
|
class PerformanceColumns extends HtmlTable
|
|
{
|
|
const ID = 'tablePerformanceColumns';
|
|
const FOOTER_ICON = 'icon-page-performance';
|
|
const FOOTER_ICON_TITLE = 'PagePerformance_PerformanceTable';
|
|
|
|
public function beforeRender()
|
|
{
|
|
parent::beforeRender();
|
|
}
|
|
|
|
public static function canDisplayViewDataTable($viewDataTable)
|
|
{
|
|
$request = $viewDataTable->getRequestArray();
|
|
|
|
if ($viewDataTable->config->show_table_performance === false) {
|
|
return false;
|
|
}
|
|
|
|
$module = $request['module'] ?? '';
|
|
$action = $request['action'] ?? '';
|
|
|
|
if ($module === 'Widgetize') {
|
|
$module = $request['moduleToWidgetize'] ?: $module;
|
|
$action = $request['actionToWidgetize'] ?: $action;
|
|
}
|
|
|
|
if ('Actions' === $module && in_array($action, PagePerformance::$availableForMethods)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function beforeGenericFiltersAreAppliedToLoadedDataTable()
|
|
{
|
|
$this->config->datatable_css_class = 'dataTableVizAllColumns';
|
|
|
|
$properties = $this->config;
|
|
|
|
$this->dataTable->filter(function (DataTable $dataTable) use ($properties) {
|
|
$properties->columns_to_display = array_merge([
|
|
'label',
|
|
'nb_visits',
|
|
], array_keys(Metrics::getAllPagePerformanceMetrics()));
|
|
|
|
if (version_compare(DbHelper::getInstallVersion(),'4.0.0-b1', '<')) {
|
|
$properties->columns_to_display[] = 'avg_time_generation';
|
|
}
|
|
});
|
|
|
|
parent::beforeGenericFiltersAreAppliedToLoadedDataTable();
|
|
}
|
|
|
|
public function beforeLoadDataTable()
|
|
{
|
|
parent::beforeLoadDataTable();
|
|
|
|
unset($this->requestConfig->request_parameters_to_modify['pivotBy']);
|
|
unset($this->requestConfig->request_parameters_to_modify['pivotByColumn']);
|
|
}
|
|
|
|
protected function isPivoted()
|
|
{
|
|
return false; // Pivot not supported
|
|
}
|
|
}
|