Skip to content
Extraits de code Groupes Projets
Valider 8adb051c rédigé par Matthieu Aubry's avatar Matthieu Aubry
Parcourir les fichiers

Merge pull request #6192 from czolnowski/segment-suggested-values-callback

Use callback instead of raw data for segment suggested values
parents 843798fb f93850a6
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -50,6 +50,7 @@ class Segment
private $sqlFilterValue;
private $acceptValues;
private $permission;
private $suggestedValuesCallback;
/**
* @ignore
......@@ -185,6 +186,15 @@ class Segment
return $this->type;
}
/**
* Set callback which will be executed when user will call for suggested values for segment.
*
* @param callable $suggestedValuesCallback
*/
public function setSuggestedValuesCallback($suggestedValuesCallback) {
$this->suggestedValuesCallback = $suggestedValuesCallback;
}
/**
* You can restrict the access to this segment by passing a boolean `false`. For instance if you want to make
* a certain segment only available to users having super user access you could do the following:
......@@ -227,6 +237,10 @@ class Segment
$segment['permission'] = $this->permission;
}
if (is_callable($this->suggestedValuesCallback)) {
$segment['suggestedValuesCallback'] = $this->suggestedValuesCallback;
}
return $segment;
}
}
......@@ -515,6 +515,11 @@ class API extends \Piwik\Plugin\API
throw new \Exception("Requested segment not found.");
}
// if segment has suggested values callback then return result from it instead
if (isset($segmentFound['suggestedValuesCallback'])) {
return call_user_func($segmentFound['suggestedValuesCallback'], $idSite, $maxSuggestionsToReturn);
}
// if period=range is disabled, do not proceed
if(!Period\Factory::isPeriodEnabledForAPI('range')) {
return array();
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter