diff options
author | Matthieu Aubry <mattab@users.noreply.github.com> | 2016-10-31 02:53:46 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-31 02:53:46 +0300 |
commit | 44283a6f19e4f1b2ca96e4ebacab1f2dc8eb42ed (patch) | |
tree | c9c21b56c40f74cdd4c96d6f1f6e11bd0cd597f7 /plugins/API/SegmentMetadata.php | |
parent | 395d447052b81ed98b7840df863ec183ed1e285d (diff) | |
parent | 67d67100e4c6b8cd42bae8460477ffb6d0e23988 (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.php | 36 |
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) { |