Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@googlemail.com>2014-06-12 04:24:56 +0400
committerThomas Steur <thomas.steur@googlemail.com>2014-06-12 04:24:56 +0400
commit1fe0a1fcaa7685004b0d272d9e558fae0008c241 (patch)
tree3ccbd7e48407ac92c98a7adcda208abc4e56d44a
parent0cd8e6ac711d45fe848d9e0b2df1b77d90307c59 (diff)
defined segments in dimensions
-rw-r--r--core/Plugin/ActionDimension.php5
-rw-r--r--core/Plugin/Segment.php11
-rw-r--r--core/Plugin/VisitDimension.php5
-rw-r--r--plugins/CustomVariables/Segment.php21
-rw-r--r--plugins/DevicesDetection/Columns/DeviceType.php22
-rw-r--r--plugins/DevicesDetection/DevicesDetection.php142
-rw-r--r--plugins/Events/Columns/EventAction.php3
-rw-r--r--plugins/Events/Columns/EventCategory.php2
-rw-r--r--plugins/Events/Columns/EventName.php3
-rw-r--r--plugins/Events/Columns/TotalEvents.php35
-rw-r--r--plugins/Events/Events.php23
-rw-r--r--plugins/Events/Segment.php1
-rw-r--r--plugins/Provider/Columns/Provider.php4
-rw-r--r--plugins/Provider/Provider.php18
-rw-r--r--plugins/Referrers/Columns/Keyword.php10
-rw-r--r--plugins/Referrers/Columns/ReferrerName.php10
-rw-r--r--plugins/Referrers/Columns/ReferrerType.php11
-rw-r--r--plugins/Referrers/Columns/ReferrerUrl.php10
-rw-r--r--plugins/Referrers/Referrers.php38
-rw-r--r--plugins/UserCountry/Columns/City.php5
-rw-r--r--plugins/UserCountry/Columns/Continent.php14
-rw-r--r--plugins/UserCountry/Columns/Country.php11
-rw-r--r--plugins/UserCountry/Columns/Latitude.php32
-rw-r--r--plugins/UserCountry/Columns/Longitude.php32
-rw-r--r--plugins/UserCountry/Columns/Region.php5
-rw-r--r--plugins/UserCountry/Segment.php2
-rw-r--r--plugins/UserCountry/UserCountry.php54
-rw-r--r--plugins/UserSettings/Columns/Browser.php3
-rw-r--r--plugins/UserSettings/Columns/Browserversion.php3
-rw-r--r--plugins/UserSettings/Columns/Operatingsystem.php3
-rw-r--r--plugins/UserSettings/Columns/Resolution.php2
-rw-r--r--plugins/UserSettings/UserSettings.php145
-rw-r--r--plugins/VisitFrequency/VisitFrequency.php2
-rw-r--r--plugins/VisitTime/Columns/Localtime.php5
-rw-r--r--plugins/VisitTime/Columns/Servertime.php6
-rw-r--r--plugins/VisitTime/VisitTime.php26
36 files changed, 222 insertions, 502 deletions
diff --git a/core/Plugin/ActionDimension.php b/core/Plugin/ActionDimension.php
index 1380fae6bc..5fc4ed3824 100644
--- a/core/Plugin/ActionDimension.php
+++ b/core/Plugin/ActionDimension.php
@@ -59,11 +59,12 @@ abstract class ActionDimension
protected function addSegment(Segment $segment)
{
- if (!empty($this->fieldName)) {
+ $sqlSegment = $segment->getSqlSegment();
+ if (!empty($this->fieldName) && !empty($sqlSegment)) {
$segment->setSqlSegment('log_link_visit_action.' . $this->fieldName);
}
- $segment->setType('dimension');
+ $segment->setType(Segment::TYPE_DIMENSION);
$this->segments[] = $segment;
}
diff --git a/core/Plugin/Segment.php b/core/Plugin/Segment.php
index 41933a142b..520fa26c0f 100644
--- a/core/Plugin/Segment.php
+++ b/core/Plugin/Segment.php
@@ -13,6 +13,9 @@ namespace Piwik\Plugin;
*/
class Segment
{
+ const TYPE_DIMENSION = 'dimension';
+ const TYPE_METRIC = 'metric';
+
private $type;
private $category;
private $name;
@@ -89,6 +92,14 @@ class Segment
}
/**
+ * @return string
+ */
+ public function getSqlSegment()
+ {
+ return $this->sqlSegment;
+ }
+
+ /**
* @param mixed $type
*/
public function setType($type)
diff --git a/core/Plugin/VisitDimension.php b/core/Plugin/VisitDimension.php
index b24420daad..af40274d74 100644
--- a/core/Plugin/VisitDimension.php
+++ b/core/Plugin/VisitDimension.php
@@ -54,11 +54,12 @@ abstract class VisitDimension
protected function addSegment(Segment $segment)
{
- if (!empty($this->fieldName)) {
+ $sqlSegment = $segment->getSqlSegment();
+ if (!empty($this->fieldName) && !empty($sqlSegment)) {
$segment->setSqlSegment('log_visit.' . $this->fieldName);
}
- $segment->setType('dimension');
+ $segment->setType(Segment::TYPE_DIMENSION);
$this->segments[] = $segment;
}
diff --git a/plugins/CustomVariables/Segment.php b/plugins/CustomVariables/Segment.php
deleted file mode 100644
index b4e08fc242..0000000000
--- a/plugins/CustomVariables/Segment.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- *
- */
-namespace Piwik\Plugins\CustomVariables;
-
-/**
- * CustomVariables segment base class.
- *
- */
-class Segment extends \Piwik\Plugin\Segment
-{
- protected function init()
- {
- $this->setCategory('CustomVariables_CustomVariables');
- }
-}
diff --git a/plugins/DevicesDetection/Columns/DeviceType.php b/plugins/DevicesDetection/Columns/DeviceType.php
index e566a1a25c..5c8369f46a 100644
--- a/plugins/DevicesDetection/Columns/DeviceType.php
+++ b/plugins/DevicesDetection/Columns/DeviceType.php
@@ -9,13 +9,35 @@
namespace Piwik\Plugins\DevicesDetection\Columns;
use Piwik\Piwik;
+use Piwik\Plugin\Segment;
use Piwik\Tracker\Request;
+use DeviceDetector;
+use Exception;
class DeviceType extends Base
{
protected $fieldName = 'config_device_type';
protected $fieldType = 'TINYINT( 100 ) NULL DEFAULT NULL';
+ protected function init()
+ {
+ $deviceTypeList = implode(", ", DeviceDetector::$deviceTypes);
+
+ $segment = new Segment();
+ $segment->setSegment('deviceType');
+ $segment->setName('DevicesDetection_DeviceType');
+ $segment->setAcceptValues($deviceTypeList);
+ $segment->setSqlFilter(function ($type) use ($deviceTypeList) {
+ $index = array_search(strtolower(trim(urldecode($type))), DeviceDetector::$deviceTypes);
+ if ($index === false) {
+ throw new Exception("deviceType segment must be one of: $deviceTypeList");
+ }
+ return $index;
+ });
+
+ $this->addSegment($segment);
+ }
+
public function getName()
{
return Piwik::translate('DevicesDetection_DeviceType');
diff --git a/plugins/DevicesDetection/DevicesDetection.php b/plugins/DevicesDetection/DevicesDetection.php
index 30fa62bda1..e730e96aaa 100644
--- a/plugins/DevicesDetection/DevicesDetection.php
+++ b/plugins/DevicesDetection/DevicesDetection.php
@@ -36,146 +36,4 @@ class DevicesDetection extends \Piwik\Plugin
);
}
- /** The set of related reports displayed under the 'Operating Systems' header. */
- private $osRelatedReports = null;
- private $browserRelatedReports = null;
-
- public function __construct()
- {
- parent::__construct();
- $this->osRelatedReports = array(
- 'DevicesDetection.getOsFamilies' => Piwik::translate('DevicesDetection_OperatingSystemFamilies'),
- 'DevicesDetection.getOsVersions' => Piwik::translate('DevicesDetection_OperatingSystemVersions')
- );
- $this->browserRelatedReports = array(
- 'DevicesDetection.getBrowserFamilies' => Piwik::translate('UserSettings_BrowserFamilies'),
- 'DevicesDetection.getBrowserVersions' => Piwik::translate('DevicesDetection_BrowserVersions')
- );
- }
-
- protected function getRawMetadataDeviceType()
- {
- $deviceTypeList = implode(", ", DeviceDetector::$deviceTypes);
-
- $deviceTypeLabelToCode = function ($type) use ($deviceTypeList) {
- $index = array_search(strtolower(trim(urldecode($type))), DeviceDetector::$deviceTypes);
- if ($index === false) {
- throw new Exception("deviceType segment must be one of: $deviceTypeList");
- }
- return $index;
- };
-
- return array(
- 'DevicesDetection_DevicesDetection',
- 'DevicesDetection_DeviceType',
- 'DevicesDetection',
- 'getType',
- 'DevicesDetection_DeviceType',
-
- // Segment
- 'deviceType',
- 'log_visit.config_device_type',
- $deviceTypeList,
- $deviceTypeLabelToCode
- );
- }
-
- /**
- * @see Piwik\Plugin::getListHooksRegistered
- */
- public function getListHooksRegistered()
- {
- return array(
- 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
- );
- }
-
- /**
- * Defines API reports.
- * Also used to define Widgets, and Segment(s)
- *
- * @return array Category, Report Name, API Module, API action, Translated column name, & optional segment info
- */
- public function getRawMetadataReports()
- {
-
- $report = array(
- // device type report (tablet, desktop, mobile...)
- $this->getRawMetadataDeviceType(),
-
- // device brands report
- array(
- 'DevicesDetection_DevicesDetection',
- 'DevicesDetection_DeviceBrand',
- 'DevicesDetection',
- 'getBrand',
- 'DevicesDetection_DeviceBrand',
- ),
- // device model report
- array(
- 'DevicesDetection_DevicesDetection',
- 'DevicesDetection_DeviceModel',
- 'DevicesDetection',
- 'getModel',
- 'DevicesDetection_DeviceModel',
- ),
- // device OS family report
- array(
- 'DevicesDetection_DevicesDetection',
- 'DevicesDetection_OperatingSystemFamilies',
- 'DevicesDetection',
- 'getOsFamilies',
- 'DevicesDetection_OperatingSystemFamilies',
- ),
- // device OS version report
- array(
- 'DevicesDetection_DevicesDetection',
- 'DevicesDetection_OperatingSystemVersions',
- 'DevicesDetection',
- 'getOsVersions',
- 'DevicesDetection_OperatingSystemVersions',
- ),
- // Browser family report
- array(
- 'DevicesDetection_DevicesDetection',
- 'UserSettings_BrowserFamilies',
- 'DevicesDetection',
- 'getBrowserFamilies',
- 'UserSettings_BrowserFamilies',
- ),
- // Browser versions report
- array(
- 'DevicesDetection_DevicesDetection',
- 'DevicesDetection_BrowserVersions',
- 'DevicesDetection',
- 'getBrowserVersions',
- 'DevicesDetection_BrowserVersions',
- ),
- );
- return $report;
- }
-
- /**
- * Get segments meta data
- */
- public function getSegmentsMetadata(&$segments)
- {
- // Note: only one field segmented so far: deviceType
- foreach ($this->getRawMetadataReports() as $report) {
- @list($category, $name, $apiModule, $apiAction, $columnName, $segment, $sqlSegment, $acceptedValues, $sqlFilter) = $report;
-
- if (empty($segment)) continue;
-
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => Piwik::translate('General_Visit'),
- 'name' => $columnName,
- 'segment' => $segment,
- 'acceptedValues' => $acceptedValues,
- 'sqlSegment' => $sqlSegment,
- 'sqlFilter' => isset($sqlFilter) ? $sqlFilter : false
- );
- }
- }
-
}
diff --git a/plugins/Events/Columns/EventAction.php b/plugins/Events/Columns/EventAction.php
index 9650099b9f..ef831bb561 100644
--- a/plugins/Events/Columns/EventAction.php
+++ b/plugins/Events/Columns/EventAction.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\Events\Columns;
use Piwik\Piwik;
use Piwik\Plugin\ActionDimension;
-use Piwik\Plugin\Segment;
+use Piwik\Plugins\Events\Segment;
class EventAction extends ActionDimension
{
@@ -21,7 +21,6 @@ class EventAction extends ActionDimension
$segment = new Segment();
$segment->setSegment('eventAction');
$segment->setName('Events_EventAction');
- $segment->setSqlFilter('\Piwik\Tracker\TableLogAction::getIdActionFromSegment');
$this->addSegment($segment);
}
diff --git a/plugins/Events/Columns/EventCategory.php b/plugins/Events/Columns/EventCategory.php
index cf212a57c6..c9434a5a20 100644
--- a/plugins/Events/Columns/EventCategory.php
+++ b/plugins/Events/Columns/EventCategory.php
@@ -21,8 +21,6 @@ class EventCategory extends ActionDimension
$segment = new Segment();
$segment->setSegment('eventCategory');
$segment->setName('Events_EventCategory');
- $segment->setCategory('Events_Events');
- $segment->setSqlFilter('\Piwik\Tracker\TableLogAction::getIdActionFromSegment');
$this->addSegment($segment);
}
diff --git a/plugins/Events/Columns/EventName.php b/plugins/Events/Columns/EventName.php
index 4be53ff338..d3415391a1 100644
--- a/plugins/Events/Columns/EventName.php
+++ b/plugins/Events/Columns/EventName.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\Events\Columns;
use Piwik\Piwik;
use Piwik\Plugin\ActionDimension;
-use Piwik\Plugin\Segment;
+use Piwik\Plugins\Events\Segment;
class EventName extends ActionDimension
{
@@ -21,7 +21,6 @@ class EventName extends ActionDimension
$segment = new Segment();
$segment->setSegment('eventName');
$segment->setName('Events_EventName');
- $segment->setSqlFilter('\Piwik\Tracker\TableLogAction::getIdActionFromSegment');
$this->addSegment($segment);
}
diff --git a/plugins/Events/Columns/TotalEvents.php b/plugins/Events/Columns/TotalEvents.php
new file mode 100644
index 0000000000..f869df00f2
--- /dev/null
+++ b/plugins/Events/Columns/TotalEvents.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Events\Columns;
+
+use Piwik\Piwik;
+use Piwik\Plugin\ActionDimension;
+use Piwik\Plugin\VisitDimension;
+use Piwik\Plugins\Events\Segment;
+
+class TotalEvents extends VisitDimension
+{
+ protected $fieldName = 'visit_total_events';
+
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setSegment('events');
+ $segment->setName('Events_TotalEvents');
+ $segment->setAcceptValues('To select all visits who triggered an Event, use: &segment=events>0');
+ $segment->setCategory(Piwik::translate('General_Visit'));
+ $segment->setType(Segment::TYPE_METRIC);
+ $this->addSegment($segment);
+ }
+
+ public function getName()
+ {
+ return Piwik::translate('Events_EventName');
+ }
+} \ No newline at end of file
diff --git a/plugins/Events/Events.php b/plugins/Events/Events.php
index c50b1f15db..32012c57da 100644
--- a/plugins/Events/Events.php
+++ b/plugins/Events/Events.php
@@ -19,8 +19,7 @@ class Events extends \Piwik\Plugin
public function getListHooksRegistered()
{
return array(
- 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
- 'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations'
+ 'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations'
);
}
@@ -81,26 +80,6 @@ class Events extends \Piwik\Plugin
public function getSegmentsMetadata(&$segments)
{
- $sqlFilter = '\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment';
-
- foreach($this->metadataDimensions as $dimension => $metadata) {
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Events_Events',
- 'name' => $metadata[0],
- 'segment' => $dimension,
- 'sqlSegment' => $metadata[1],
- 'sqlFilter' => $sqlFilter,
- );
- }
- $segments[] = array(
- 'type' => 'metric',
- 'category' => Piwik::translate('General_Visit'),
- 'name' => 'Events_TotalEvents',
- 'segment' => 'events',
- 'sqlSegment' => 'log_visit.visit_total_events',
- 'acceptedValues' => 'To select all visits who triggered an Event, use: &segment=events>0',
- );
// $segments[] = array(
// 'type' => 'metric',
// 'category' => 'Events_Events',
diff --git a/plugins/Events/Segment.php b/plugins/Events/Segment.php
index 83509c5fde..9c2d738bee 100644
--- a/plugins/Events/Segment.php
+++ b/plugins/Events/Segment.php
@@ -17,5 +17,6 @@ class Segment extends \Piwik\Plugin\Segment
protected function init()
{
$this->setCategory('Events_Events');
+ $this->setSqlFilter('\Piwik\Tracker\TableLogAction::getIdActionFromSegment');
}
}
diff --git a/plugins/Provider/Columns/Provider.php b/plugins/Provider/Columns/Provider.php
index 576e2aa083..ae07639dad 100644
--- a/plugins/Provider/Columns/Provider.php
+++ b/plugins/Provider/Columns/Provider.php
@@ -20,7 +20,9 @@ class Provider extends VisitDimension
{
$segment = new Segment();
$segment->setSegment('provider');
- $segment->setName('Provider');
+ $segment->setCategory('Visit Location');
+ $segment->setName('Provider_ColumnProvider');
+ $segment->setAcceptValues('comcast.net, proxad.net, etc.');
$this->addSegment($segment);
}
diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php
index 33096d2ae1..75c7d8686d 100644
--- a/plugins/Provider/Provider.php
+++ b/plugins/Provider/Provider.php
@@ -27,22 +27,8 @@ class Provider extends \Piwik\Plugin
*/
public function getListHooksRegistered()
{
- $hooks = array(
- 'Tracker.newVisitorInformation' => 'enrichVisitWithProviderInfo',
- 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
- );
- return $hooks;
- }
-
- public function getSegmentsMetadata(&$segments)
- {
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Visit Location',
- 'name' => Piwik::translate('Provider_ColumnProvider'),
- 'segment' => 'provider',
- 'acceptedValues' => 'comcast.net, proxad.net, etc.',
- 'sqlSegment' => 'log_visit.location_provider'
+ return array(
+ 'Tracker.newVisitorInformation' => 'enrichVisitWithProviderInfo',
);
}
diff --git a/plugins/Referrers/Columns/Keyword.php b/plugins/Referrers/Columns/Keyword.php
index 113faa49e8..4b5468e49b 100644
--- a/plugins/Referrers/Columns/Keyword.php
+++ b/plugins/Referrers/Columns/Keyword.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\Referrers\Columns;
use Piwik\Piwik;
+use Piwik\Plugins\Referrers\Segment;
use Piwik\Tracker\Request;
class Keyword extends Base
@@ -16,6 +17,15 @@ class Keyword extends Base
protected $fieldName = 'referer_keyword';
protected $fieldType = 'VARCHAR(255) NULL';
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setSegment('referrerKeyword');
+ $segment->setName('General_ColumnKeyword');
+ $segment->setAcceptValues('Encoded%20Keyword, keyword');
+ $this->addSegment($segment);
+ }
+
public function getName()
{
return Piwik::translate('General_ColumnKeyword');
diff --git a/plugins/Referrers/Columns/ReferrerName.php b/plugins/Referrers/Columns/ReferrerName.php
index 288957f436..fbc585fc8f 100644
--- a/plugins/Referrers/Columns/ReferrerName.php
+++ b/plugins/Referrers/Columns/ReferrerName.php
@@ -8,6 +8,7 @@
*/
namespace Piwik\Plugins\Referrers\Columns;
+use Piwik\Plugins\Referrers\Segment;
use Piwik\Tracker\Request;
class ReferrerName extends Base
@@ -15,6 +16,15 @@ class ReferrerName extends Base
protected $fieldName = 'referer_name';
protected $fieldType = 'VARCHAR(70) NULL';
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setSegment('referrerName');
+ $segment->setName('Referrers_ReferrerName');
+ $segment->setAcceptValues('twitter.com, www.facebook.com, Bing, Google, Yahoo, CampaignName');
+ $this->addSegment($segment);
+ }
+
public function getName()
{
return '';
diff --git a/plugins/Referrers/Columns/ReferrerType.php b/plugins/Referrers/Columns/ReferrerType.php
index 25f84a8fc7..2709f609de 100644
--- a/plugins/Referrers/Columns/ReferrerType.php
+++ b/plugins/Referrers/Columns/ReferrerType.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\Referrers\Columns;
use Piwik\Piwik;
+use Piwik\Plugins\Referrers\Segment;
use Piwik\Tracker\Request;
class ReferrerType extends Base
@@ -16,6 +17,16 @@ class ReferrerType extends Base
protected $fieldName = 'referer_type';
protected $fieldType = 'TINYINT(1) UNSIGNED NULL';
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setSegment('referrerType');
+ $segment->setName('Referrers_Type');
+ $segment->setSqlFilterValue('Piwik\Plugins\Referrers\getReferrerTypeFromShortName');
+ $segment->setAcceptValues('direct, search, website, campaign');
+ $this->addSegment($segment);
+ }
+
public function getName()
{
return Piwik::translate('Referrers_Type');
diff --git a/plugins/Referrers/Columns/ReferrerUrl.php b/plugins/Referrers/Columns/ReferrerUrl.php
index c11586b363..849a952975 100644
--- a/plugins/Referrers/Columns/ReferrerUrl.php
+++ b/plugins/Referrers/Columns/ReferrerUrl.php
@@ -8,6 +8,7 @@
*/
namespace Piwik\Plugins\Referrers\Columns;
+use Piwik\Plugins\Referrers\Segment;
use Piwik\Tracker\Request;
class ReferrerUrl extends Base
@@ -15,6 +16,15 @@ class ReferrerUrl extends Base
protected $fieldName = 'referer_url';
protected $fieldType = 'TEXT NOT NULL';
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setSegment('referrerUrl');
+ $segment->setName('Live_Referrer_URL');
+ $segment->setAcceptValues('http%3A%2F%2Fwww.example.org%2Freferer-page.htm');
+ $this->addSegment($segment);
+ }
+
public function getName()
{
return '';
diff --git a/plugins/Referrers/Referrers.php b/plugins/Referrers/Referrers.php
index a88df8c563..dcc9133da6 100644
--- a/plugins/Referrers/Referrers.php
+++ b/plugins/Referrers/Referrers.php
@@ -29,7 +29,6 @@ class Referrers extends \Piwik\Plugin
{
$hooks = array(
'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics',
- 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
'Insights.addReportToOverview' => 'addReportToInsightsOverview'
);
return $hooks;
@@ -43,43 +42,6 @@ class Referrers extends \Piwik\Plugin
$reports['Referrers_getSearchEngines'] = array();
}
- public function getSegmentsMetadata(&$segments)
- {
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Referrers_Referrers',
- 'name' => 'Referrers_Type',
- 'segment' => 'referrerType',
- 'acceptedValues' => 'direct, search, website, campaign',
- 'sqlSegment' => 'log_visit.referer_type',
- 'sqlFilterValue' => __NAMESPACE__ . '\getReferrerTypeFromShortName',
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Referrers_Referrers',
- 'name' => 'General_ColumnKeyword',
- 'segment' => 'referrerKeyword',
- 'acceptedValues' => 'Encoded%20Keyword, keyword',
- 'sqlSegment' => 'log_visit.referer_keyword',
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Referrers_Referrers',
- 'name' => 'Referrers_ReferrerName',
- 'segment' => 'referrerName',
- 'acceptedValues' => 'twitter.com, www.facebook.com, Bing, Google, Yahoo, CampaignName',
- 'sqlSegment' => 'log_visit.referer_name',
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Referrers_Referrers',
- 'name' => 'Live_Referrer_URL',
- 'acceptedValues' => 'http%3A%2F%2Fwww.example.org%2Freferer-page.htm',
- 'segment' => 'referrerUrl',
- 'sqlSegment' => 'log_visit.referer_url',
- );
- }
-
/**
* Adds Goal dimensions, so that the dimensions are displayed in the UI Goal Overview page
*/
diff --git a/plugins/UserCountry/Columns/City.php b/plugins/UserCountry/Columns/City.php
index 899ac40589..400c313db4 100644
--- a/plugins/UserCountry/Columns/City.php
+++ b/plugins/UserCountry/Columns/City.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\UserCountry\Columns;
use Piwik\Piwik;
use Piwik\Plugin\VisitDimension;
-use Piwik\Plugin\Segment;
+use Piwik\Plugins\UserCountry\Segment;
class City extends VisitDimension
{
@@ -20,7 +20,8 @@ class City extends VisitDimension
{
$segment = new Segment();
$segment->setSegment('city');
- $segment->setName('City');
+ $segment->setName('UserCountry_City');
+ $segment->setAcceptValues('Sydney, Sao Paolo, Rome, etc.');
$this->addSegment($segment);
}
diff --git a/plugins/UserCountry/Columns/Continent.php b/plugins/UserCountry/Columns/Continent.php
index f7aefb0951..ca3438e745 100644
--- a/plugins/UserCountry/Columns/Continent.php
+++ b/plugins/UserCountry/Columns/Continent.php
@@ -10,21 +10,9 @@ namespace Piwik\Plugins\UserCountry\Columns;
use Piwik\Piwik;
use Piwik\Plugin\VisitDimension;
-use Piwik\Plugin\Segment;
class Continent extends VisitDimension
-{
- protected $fieldName = 'location_country';
-
- protected function init()
- {
- $segment = new Segment();
- $segment->setSegment('continentCode');
- $segment->setName('Continent');
- $segment->setSqlFilter('Piwik\Plugins\UserCountry\UserCountry::getCountriesForContinent');
- $this->addSegment($segment);
- }
-
+{
public function getName()
{
return Piwik::translate('UserCountry_Continent');
diff --git a/plugins/UserCountry/Columns/Country.php b/plugins/UserCountry/Columns/Country.php
index 6817ba821e..a84106ecd6 100644
--- a/plugins/UserCountry/Columns/Country.php
+++ b/plugins/UserCountry/Columns/Country.php
@@ -20,8 +20,15 @@ class Country extends VisitDimension
{
$segment = new Segment();
$segment->setSegment('countryCode');
- $segment->setName('Country');
- $segment->setCategory('Visit Location');
+ $segment->setName('UserCountry_Country');
+ $segment->setAcceptValues('de, us, fr, in, es, etc.');
+ $this->addSegment($segment);
+
+ $segment = new Segment();
+ $segment->setSegment('continentCode');
+ $segment->setName('UserCountry_Continent');
+ $segment->setSqlFilter('Piwik\Plugins\UserCountry\UserCountry::getCountriesForContinent');
+ $segment->setAcceptValues('eur, asi, amc, amn, ams, afr, ant, oce');
$this->addSegment($segment);
}
diff --git a/plugins/UserCountry/Columns/Latitude.php b/plugins/UserCountry/Columns/Latitude.php
new file mode 100644
index 0000000000..64713c70f1
--- /dev/null
+++ b/plugins/UserCountry/Columns/Latitude.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\UserCountry\Columns;
+
+use Piwik\Piwik;
+use Piwik\Plugin\VisitDimension;
+use Piwik\Plugins\UserCountry\Segment;
+
+class Latitude extends VisitDimension
+{
+ protected $fieldName = 'location_latitude';
+
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setSegment('latitude');
+ $segment->setName('UserCountry_Latitude');
+ $segment->setAcceptValues('-33.578, 40.830, etc.<br/>You can select visitors within a lat/long range using &segment=lat&gt;X;lat&lt;Y;long&gt;M;long&lt;N.');
+ $this->addSegment($segment);
+ }
+
+ public function getName()
+ {
+ return Piwik::translate('UserCountry_Latitude');
+ }
+} \ No newline at end of file
diff --git a/plugins/UserCountry/Columns/Longitude.php b/plugins/UserCountry/Columns/Longitude.php
new file mode 100644
index 0000000000..bf4f63869b
--- /dev/null
+++ b/plugins/UserCountry/Columns/Longitude.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\UserCountry\Columns;
+
+use Piwik\Piwik;
+use Piwik\Plugin\VisitDimension;
+use Piwik\Plugins\UserCountry\Segment;
+
+class Longitude extends VisitDimension
+{
+ protected $fieldName = 'location_longitude';
+
+ protected function init()
+ {
+ $segment = new Segment();
+ $segment->setSegment('longitude');
+ $segment->setName('UserCountry_Longitude');
+ $segment->setAcceptValues('-70.664, 14.326, etc.');
+ $this->addSegment($segment);
+ }
+
+ public function getName()
+ {
+ return Piwik::translate('UserCountry_Latitude');
+ }
+} \ No newline at end of file
diff --git a/plugins/UserCountry/Columns/Region.php b/plugins/UserCountry/Columns/Region.php
index cd0019b916..fd8ffc19a2 100644
--- a/plugins/UserCountry/Columns/Region.php
+++ b/plugins/UserCountry/Columns/Region.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\UserCountry\Columns;
use Piwik\Piwik;
use Piwik\Plugin\VisitDimension;
-use Piwik\Plugin\Segment;
+use Piwik\Plugins\UserCountry\Segment;
class Region extends VisitDimension
{
@@ -20,7 +20,8 @@ class Region extends VisitDimension
{
$segment = new Segment();
$segment->setSegment('regionCode');
- $segment->setName('Region');
+ $segment->setName('UserCountry_Region');
+ $segment->setAcceptValues('01 02, OR, P8, etc.<br/>eg. region=A1;country=fr');
$this->addSegment($segment);
}
diff --git a/plugins/UserCountry/Segment.php b/plugins/UserCountry/Segment.php
index 1321b691bb..8f6b77559e 100644
--- a/plugins/UserCountry/Segment.php
+++ b/plugins/UserCountry/Segment.php
@@ -14,7 +14,7 @@ namespace Piwik\Plugins\UserCountry;
*/
class Segment extends \Piwik\Plugin\Segment
{
- protected function init()
+ protected function init()
{
$this->setCategory('Visit Location');
}
diff --git a/plugins/UserCountry/UserCountry.php b/plugins/UserCountry/UserCountry.php
index 2517290158..8b75e579e1 100644
--- a/plugins/UserCountry/UserCountry.php
+++ b/plugins/UserCountry/UserCountry.php
@@ -37,7 +37,6 @@ class UserCountry extends \Piwik\Plugin
{
$hooks = array(
'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics',
- 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
'Tracker.newVisitorInformation' => 'enrichVisitWithLocation',
@@ -159,59 +158,6 @@ class UserCountry extends \Piwik\Plugin
}
}
- public function getSegmentsMetadata(&$segments)
- {
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Visit Location',
- 'name' => Piwik::translate('UserCountry_Country'),
- 'segment' => 'countryCode',
- 'sqlSegment' => 'log_visit.location_country',
- 'acceptedValues' => 'de, us, fr, in, es, etc.',
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Visit Location',
- 'name' => Piwik::translate('UserCountry_Continent'),
- 'segment' => 'continentCode',
- 'sqlSegment' => 'log_visit.location_country',
- 'acceptedValues' => 'eur, asi, amc, amn, ams, afr, ant, oce',
- 'sqlFilter' => __NAMESPACE__ . '\UserCountry::getCountriesForContinent',
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Visit Location',
- 'name' => Piwik::translate('UserCountry_Region'),
- 'segment' => 'regionCode',
- 'sqlSegment' => 'log_visit.location_region',
- 'acceptedValues' => '01 02, OR, P8, etc.<br/>eg. region=A1;country=fr',
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Visit Location',
- 'name' => Piwik::translate('UserCountry_City'),
- 'segment' => 'city',
- 'sqlSegment' => 'log_visit.location_city',
- 'acceptedValues' => 'Sydney, Sao Paolo, Rome, etc.',
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Visit Location',
- 'name' => Piwik::translate('UserCountry_Latitude'),
- 'segment' => 'latitude',
- 'sqlSegment' => 'log_visit.location_latitude',
- 'acceptedValues' => '-33.578, 40.830, etc.<br/>You can select visitors within a lat/long range using &segment=lat&gt;X;lat&lt;Y;long&gt;M;long&lt;N.',
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => 'Visit Location',
- 'name' => Piwik::translate('UserCountry_Longitude'),
- 'segment' => 'longitude',
- 'sqlSegment' => 'log_visit.location_longitude',
- 'acceptedValues' => '-70.664, 14.326, etc.',
- );
- }
-
public function getReportsWithGoalMetrics(&$dimensions)
{
$dimensions = array_merge($dimensions, array(
diff --git a/plugins/UserSettings/Columns/Browser.php b/plugins/UserSettings/Columns/Browser.php
index 8b6baddbb0..9f69cd4e8a 100644
--- a/plugins/UserSettings/Columns/Browser.php
+++ b/plugins/UserSettings/Columns/Browser.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\UserSettings\Columns;
use Piwik\Piwik;
use Piwik\Plugin\VisitDimension;
-use Piwik\Plugin\Segment;
+use Piwik\Plugins\UserSettings\Segment;
class Browser extends VisitDimension
{
@@ -21,6 +21,7 @@ class Browser extends VisitDimension
$segment = new Segment();
$segment->setSegment('browserCode');
$segment->setName('UserSettings_ColumnBrowser');
+ $segment->setAcceptValues('FF, IE, CH, SF, OP, etc.');
$this->addSegment($segment);
}
diff --git a/plugins/UserSettings/Columns/Browserversion.php b/plugins/UserSettings/Columns/Browserversion.php
index 76b6bb3cfb..4b9c40d880 100644
--- a/plugins/UserSettings/Columns/Browserversion.php
+++ b/plugins/UserSettings/Columns/Browserversion.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\UserSettings\Columns;
use Piwik\Piwik;
use Piwik\Plugin\VisitDimension;
-use Piwik\Plugin\Segment;
+use Piwik\Plugins\UserSettings\Segment;
class Browserversion extends VisitDimension
{
@@ -21,6 +21,7 @@ class Browserversion extends VisitDimension
$segment = new Segment();
$segment->setSegment('browserVersion');
$segment->setName('UserSettings_ColumnBrowserVersion');
+ $segment->setAcceptValues('1.0, 8.0, etc.');
$this->addSegment($segment);
}
diff --git a/plugins/UserSettings/Columns/Operatingsystem.php b/plugins/UserSettings/Columns/Operatingsystem.php
index b4f38f8379..b3bffc3af7 100644
--- a/plugins/UserSettings/Columns/Operatingsystem.php
+++ b/plugins/UserSettings/Columns/Operatingsystem.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\UserSettings\Columns;
use Piwik\Piwik;
use Piwik\Plugin\VisitDimension;
-use Piwik\Plugin\Segment;
+use Piwik\Plugins\UserSettings\Segment;
class Operatingsystem extends VisitDimension
{
@@ -21,6 +21,7 @@ class Operatingsystem extends VisitDimension
$segment = new Segment();
$segment->setSegment('operatingSystemCode');
$segment->setName('UserSettings_ColumnOperatingSystem');
+ $segment->setAcceptValues('WXP, WI7, MAC, LIN, AND, IPD, etc.');
$this->addSegment($segment);
}
diff --git a/plugins/UserSettings/Columns/Resolution.php b/plugins/UserSettings/Columns/Resolution.php
index 09e97b499d..f9a5e1ee62 100644
--- a/plugins/UserSettings/Columns/Resolution.php
+++ b/plugins/UserSettings/Columns/Resolution.php
@@ -21,7 +21,7 @@ class Resolution extends VisitDimension
$segment = new Segment();
$segment->setSegment('resolution');
$segment->setName('UserSettings_ColumnResolution');
- $segment->setCategory('Visit');
+ $segment->setAcceptValues('1280x1024, 800x600, etc.');
$this->addSegment($segment);
}
diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php
index 205d407790..f4cf88b8df 100644
--- a/plugins/UserSettings/UserSettings.php
+++ b/plugins/UserSettings/UserSettings.php
@@ -31,137 +31,11 @@ class UserSettings extends \Piwik\Plugin
);
/**
- * Defines API reports.
- * Also used to define Widgets.
- *
- * @type array
- *
- * Category, Report Name, API Module, API action, Translated column name,
- * $segment, $sqlSegment, $acceptedValues, $sqlFilter
- */
- protected $reportMetadata = array(
- array('UserSettings_VisitorSettings',
- 'UserSettings_WidgetResolutions',
- 'UserSettings',
- 'getResolution',
- 'UserSettings_ColumnResolution',
- 'resolution',
- 'log_visit.config_resolution',
- '1280x1024, 800x600, etc.',
- null),
-
- array('UserSettings_VisitorSettings',
- 'UserSettings_WidgetBrowsers',
- 'UserSettings',
- 'getBrowser',
- 'UserSettings_ColumnBrowser',
- 'browserCode',
- 'log_visit.config_browser_name',
- 'FF, IE, CH, SF, OP, etc.',
- null),
-
- // browser version
- array('UserSettings_VisitorSettings',
- 'UserSettings_WidgetBrowserVersion',
- 'UserSettings',
- 'getBrowserVersion',
- 'UserSettings_ColumnBrowserVersion',
- 'browserVersion',
- 'log_visit.config_browser_version',
- '1.0, 8.0, etc.',
- null),
-
- array('UserSettings_VisitorSettings',
- 'UserSettings_WidgetBrowserFamilies',
- 'UserSettings',
- 'getBrowserType',
- 'UserSettings_ColumnBrowserFamily',
- null,
- null,
- null,
- null),
-
- array('UserSettings_VisitorSettings',
- 'UserSettings_WidgetPlugins',
- 'UserSettings',
- 'getPlugin',
- 'General_Plugin',
- null,
- null,
- null,
- null),
-
- array('UserSettings_VisitorSettings',
- 'UserSettings_WidgetWidescreen',
- 'UserSettings',
- 'getWideScreen',
- 'UserSettings_ColumnTypeOfScreen',
- null,
- null,
- null,
- null),
-
- array('UserSettings_VisitorSettings',
- 'UserSettings_WidgetOperatingSystems',
- 'UserSettings',
- 'getOS',
- 'UserSettings_ColumnOperatingSystem',
- 'operatingSystemCode',
- 'log_visit.config_os',
- 'WXP, WI7, MAC, LIN, AND, IPD, etc.',
- null),
-
- array('UserSettings_VisitorSettings',
- 'UserSettings_WidgetGlobalVisitors',
- 'UserSettings',
- 'getConfiguration',
- 'UserSettings_ColumnConfiguration',
- null,
- null,
- null,
- null),
-
- // operating system family
- array('UserSettings_VisitorSettings',
- 'UserSettings_OperatingSystemFamily',
- 'UserSettings',
- 'getOSFamily',
- 'UserSettings_OperatingSystemFamily',
- null,
- null,
- null,
- null),
-
- // device type
- array('UserSettings_VisitorSettings',
- 'UserSettings_MobileVsDesktop',
- 'UserSettings',
- 'getMobileVsDesktop',
- 'UserSettings_MobileVsDesktop',
- null,
- null,
- null,
- null),
-
- // Browser language
- array('UserSettings_VisitorSettings',
- 'UserSettings_BrowserLanguage',
- 'UserSettings',
- 'getLanguage',
- 'General_Language',
- null,
- null,
- null,
- null),
- );
-
- /**
* @see Piwik\Plugin::getListHooksRegistered
*/
public function getListHooksRegistered()
{
return array(
- 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations'
);
}
@@ -175,23 +49,4 @@ class UserSettings extends \Piwik\Plugin
$translations = array_merge($translations, $metrics);
}
- /**
- * Get segments meta data
- */
- public function getSegmentsMetadata(&$segments)
- {
- foreach ($this->reportMetadata as $report) {
- @list($category, $name, $apiModule, $apiAction, $columnName, $segment, $sqlSegment, $acceptedValues) = $report;
- if (empty($segment)) continue;
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => Piwik::translate('General_Visit'),
- 'name' => $columnName,
- 'segment' => $segment,
- 'acceptedValues' => $acceptedValues,
- 'sqlSegment' => $sqlSegment
- );
- }
- }
-
}
diff --git a/plugins/VisitFrequency/VisitFrequency.php b/plugins/VisitFrequency/VisitFrequency.php
index 40e12c23a9..a2bb056772 100644
--- a/plugins/VisitFrequency/VisitFrequency.php
+++ b/plugins/VisitFrequency/VisitFrequency.php
@@ -20,7 +20,7 @@ class VisitFrequency extends \Piwik\Plugin
public function getListHooksRegistered()
{
return array(
- 'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations'
+ 'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations'
);
}
diff --git a/plugins/VisitTime/Columns/Localtime.php b/plugins/VisitTime/Columns/Localtime.php
index 6c932d919f..aa5d966142 100644
--- a/plugins/VisitTime/Columns/Localtime.php
+++ b/plugins/VisitTime/Columns/Localtime.php
@@ -20,8 +20,9 @@ class Localtime extends VisitDimension
{
$segment = new Segment();
$segment->setSegment('visitLocalHour');
- $segment->setName('Local time');
- $segment->setCategory('Visit');
+ $segment->setName('VisitTime_ColumnLocalTime');
+ $segment->setSqlSegment('HOUR(log_visit.visitor_localtime)');
+ $segment->setAcceptValues('0, 1, 2, 3, ..., 20, 21, 22, 23');
$this->addSegment($segment);
}
diff --git a/plugins/VisitTime/Columns/Servertime.php b/plugins/VisitTime/Columns/Servertime.php
index 3d48f0f48b..9861962fb9 100644
--- a/plugins/VisitTime/Columns/Servertime.php
+++ b/plugins/VisitTime/Columns/Servertime.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\VisitTime\Columns;
use Piwik\Piwik;
use Piwik\Plugin\VisitDimension;
-use Piwik\Plugin\Segment;
+use Piwik\Plugins\VisitTime\Segment;
class Servertime extends VisitDimension
{
@@ -20,7 +20,9 @@ class Servertime extends VisitDimension
{
$segment = new Segment();
$segment->setSegment('visitServerHour');
- $segment->setName('Server time');
+ $segment->setName('VisitTime_ColumnServerTime');
+ $segment->setSqlSegment('HOUR(log_visit.visit_last_action_time)');
+ $segment->setAcceptValues('0, 1, 2, 3, ..., 20, 21, 22, 23');
$this->addSegment($segment);
}
diff --git a/plugins/VisitTime/VisitTime.php b/plugins/VisitTime/VisitTime.php
index e848170ba8..3a4d3b7685 100644
--- a/plugins/VisitTime/VisitTime.php
+++ b/plugins/VisitTime/VisitTime.php
@@ -28,11 +28,9 @@ class VisitTime extends \Piwik\Plugin
*/
public function getListHooksRegistered()
{
- $hooks = array(
- 'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics',
- 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata'
+ return array(
+ 'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics'
);
- return $hooks;
}
public function getReportsWithGoalMetrics(&$dimensions)
@@ -44,25 +42,5 @@ class VisitTime extends \Piwik\Plugin
);
}
- public function getSegmentsMetadata(&$segments)
- {
- $acceptedValues = "0, 1, 2, 3, ..., 20, 21, 22, 23";
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => Piwik::translate('General_Visit'),
- 'name' => Piwik::translate('VisitTime_ColumnServerTime'),
- 'segment' => 'visitServerHour',
- 'sqlSegment' => 'HOUR(log_visit.visit_last_action_time)',
- 'acceptedValues' => $acceptedValues
- );
- $segments[] = array(
- 'type' => 'dimension',
- 'category' => Piwik::translate('General_Visit'),
- 'name' => Piwik::translate('VisitTime_ColumnLocalTime'),
- 'segment' => 'visitLocalHour',
- 'sqlSegment' => 'HOUR(log_visit.visitor_localtime)',
- 'acceptedValues' => $acceptedValues
- );
- }
}