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:
authorMatthieu Aubry <mattab@users.noreply.github.com>2016-10-31 02:53:46 +0300
committerGitHub <noreply@github.com>2016-10-31 02:53:46 +0300
commit44283a6f19e4f1b2ca96e4ebacab1f2dc8eb42ed (patch)
treec9c21b56c40f74cdd4c96d6f1f6e11bd0cd597f7 /plugins/API/SegmentMetadata.php
parent395d447052b81ed98b7840df863ec183ed1e285d (diff)
parent67d67100e4c6b8cd42bae8460477ffb6d0e23988 (diff)
Merge 3.x-dev into master for 3.0.0-b2 release3.0.0-b2
Diffstat (limited to 'plugins/API/SegmentMetadata.php')
-rw-r--r--plugins/API/SegmentMetadata.php36
1 files changed, 32 insertions, 4 deletions
diff --git a/plugins/API/SegmentMetadata.php b/plugins/API/SegmentMetadata.php
index 95757638c2..1cce5fd3dd 100644
--- a/plugins/API/SegmentMetadata.php
+++ b/plugins/API/SegmentMetadata.php
@@ -10,6 +10,7 @@ namespace Piwik\Plugins\API;
use Piwik\Columns\Dimension;
use Piwik\Piwik;
+use Piwik\Plugin\Segment;
class SegmentMetadata
{
@@ -17,14 +18,41 @@ class SegmentMetadata
{
$segments = array();
+ /**
+ * Triggered to add custom segment definitions.
+ *
+ * **Example**
+ *
+ * public function addSegments(&$segments)
+ * {
+ * $segment = new Segment();
+ * $segment->setSegment('my_segment_name');
+ * $segment->setType(Segment::TYPE_DIMENSION);
+ * $segment->setName('My Segment Name');
+ * $segment->setSqlSegment('log_table.my_segment_name');
+ * $segments[] = $segment;
+ * }
+ *
+ * @param array &$segments An array containing a list of segment entries.
+ */
+ Piwik::postEvent('Segment.addSegments', array(&$segments));
+
foreach (Dimension::getAllDimensions() as $dimension) {
foreach ($dimension->getSegments() as $segment) {
- if ($segment->isRequiresAtLeastViewAccess()) {
- $segment->setPermission($isAuthenticatedWithViewAccess);
- }
+ $segments[] = $segment;
+ }
+ }
- $segments[] = $segment->toArray();
+ /** @var Segment[] $dimensionSegments */
+ $dimensionSegments = $segments;
+ $segments = array();
+
+ foreach ($dimensionSegments as $segment) {
+ if ($segment->isRequiresAtLeastViewAccess()) {
+ $segment->setPermission($isAuthenticatedWithViewAccess);
}
+
+ $segments[] = $segment->toArray();
}
foreach ($segments as &$segment) {