PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Columns / Discriminator.php
matomo / app / core / Columns Last commit date
Join 6 years ago ComputedMetricFactory.php 6 years ago Dimension.php 6 years ago DimensionMetricFactory.php 6 years ago DimensionsProvider.php 6 years ago Discriminator.php 6 years ago Join.php 6 years ago MetricsList.php 6 years ago Updater.php 6 years ago
Discriminator.php
76 lines
1 <?php
2 /**
3 * Piwik - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9 namespace Piwik\Columns;
10
11 use Exception;
12 use Piwik\Plugins\Actions\Actions\ActionSiteSearch;
13
14 /**
15 * @api
16 * @since 3.1.0
17 */
18 class Discriminator
19 {
20 private $table;
21 private $discriminatorColumn;
22 private $discriminatorValue;
23
24 /**
25 * Join constructor.
26 * @param string $table unprefixed table name
27 * @param null|string $discriminatorColumn
28 * @param null|int $discriminatorValue should be only hard coded, safe values.
29 * @throws Exception
30 */
31 public function __construct($table, $discriminatorColumn = null, $discriminatorValue = null)
32 {
33 if (empty($discriminatorColumn) || !isset($discriminatorValue)) {
34 throw new Exception('Both discriminatorColumn and discriminatorValue need to be defined');
35 }
36 $this->table = $table;
37 $this->discriminatorColumn = $discriminatorColumn;
38 $this->discriminatorValue = $discriminatorValue;
39
40 if (!$this->isValid()) {
41 // if adding another string value please post an event instead to get a list of allowed values
42 throw new Exception('$discriminatorValue needs to be null or numeric');
43 }
44 }
45
46 public function isValid()
47 {
48 return isset($this->discriminatorColumn)
49 && (is_numeric($this->discriminatorValue) || $this->discriminatorValue == ActionSiteSearch::CVAR_KEY_SEARCH_CATEGORY);
50 }
51
52 /**
53 * @return string
54 */
55 public function getTable()
56 {
57 return $this->table;
58 }
59
60 /**
61 * @return string
62 */
63 public function getColumn()
64 {
65 return $this->discriminatorColumn;
66 }
67
68 /**
69 * @return int|null
70 */
71 public function getValue()
72 {
73 return $this->discriminatorValue;
74 }
75 }
76