blob: 3169280ef542e9564882a024d67474247d2d8507 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Report;
use Piwik\ViewDataTable\Factory;
use Piwik\Widget\WidgetConfig;
/**
* Defines a widget config that is used to render a report.
*
* @api since Piwik 3.0.0
*/
class ReportWidgetConfig extends WidgetConfig
{
protected $viewDataTable = null;
protected $forceViewDataTable = false;
/**
* Sets a default viewDataTable that should be used to render the report. This is not neccessarily the
* view that will be actually used to render the report. Eg if a user switched manually to another viewDataTable
* Piwik will re-use the viewDataTable that was used the last time. If you want to force the usage of a
* viewDataTable use {@link forceViewDataTable()}.
*
* @param string $viewDataTableId eg 'table' or 'graph'
* @return static
*/
public function setDefaultViewDataTable($viewDataTableId)
{
$this->viewDataTable = $viewDataTableId;
return $this;
}
/**
* Forces the usage of the given viewDataTable in order to render the report.
*
* @param string $viewDataTableId eg 'table' or 'graph'
* @return $this
*/
public function forceViewDataTable($viewDataTableId)
{
$this->forceViewDataTable = true;
$this->setDefaultViewDataTable($viewDataTableId);
return $this;
}
/**
* Detect whether a defined viewDataTable should be forced in order to render a report.
* @return bool
*/
public function isViewDataTableForced()
{
return $this->forceViewDataTable;
}
/**
* Get the specified viewDataTable.
* @return string
*/
public function getViewDataTable()
{
return $this->viewDataTable;
}
/**
* @inheritdoc
*/
public function getParameters()
{
$parameters = parent::getParameters();
$defaultParams = array();
if ($this->forceViewDataTable) {
$defaultParams['forceView'] = '1';
if ($this->viewDataTable) {
// URL param is not needed for default view dataTable
$defaultParams['viewDataTable'] = $this->viewDataTable;
}
}
return $defaultParams + $parameters;
}
}
|