Skip to content
Extraits de code Groupes Projets
Valider 08cfe92f rédigé par diosmosis's avatar diosmosis
Parcourir les fichiers

Fixes #3868, make sure show/hideColumns query params affect metrics when...

Fixes #3868, make sure show/hideColumns query params affect metrics when report metadata doesn't provide a translation for metrics, and make sure if no columns are displayed for a report, API.get doesn't fail.
parent 540a0bbe
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -584,14 +584,6 @@ class Piwik_API_API
// set metric documentation to default if it's not set
$availableReport['metricsDocumentation'] = $this->getDefaultMetricsDocumentation();
}
// if hide/show columns specified, hide/show metrics & docs
$availableReport['metrics'] = $this->hideShowMetrics($availableReport['metrics']);
$availableReport['processedMetrics'] = $this->hideShowMetrics($availableReport['processedMetrics']);
if (isset($availableReport['metricsDocumentation'])) {
$availableReport['metricsDocumentation'] =
$this->hideShowMetrics($availableReport['metricsDocumentation']);
}
}
// Some plugins need to add custom metrics after all plugins hooked in
......@@ -623,6 +615,16 @@ class Piwik_API_API
}
$availableReport['metrics'] = $cleanedMetrics;
// if hide/show columns specified, hide/show metrics & docs
$availableReport['metrics'] = $this->hideShowMetrics($availableReport['metrics']);
if (isset($availableReport['processedMetrics'])) {
$availableReport['processedMetrics'] = $this->hideShowMetrics($availableReport['processedMetrics']);
}
if (isset($availableReport['metricsDocumentation'])) {
$availableReport['metricsDocumentation'] =
$this->hideShowMetrics($availableReport['metricsDocumentation']);
}
// Remove array elements that are false (to clean up API output)
foreach ($availableReport as $attributeName => $attributeValue) {
if (empty($attributeValue)) {
......@@ -1057,8 +1059,10 @@ class Piwik_API_API
$meta = Piwik_API_API::getInstance()->getReportMetadata($idSite, $period, $date);
foreach ($meta as $reportMeta) {
// scan all *.get reports
if ($reportMeta['action'] == 'get' && !isset($reportMeta['parameters'])
if ($reportMeta['action'] == 'get'
&& !isset($reportMeta['parameters'])
&& $reportMeta['module'] != 'API'
&& !empty($reportMeta['metrics'])
) {
$plugin = $reportMeta['module'];
foreach ($reportMeta['metrics'] as $column => $columnTranslation) {
......
......@@ -136,6 +136,17 @@ class Test_Piwik_Integration_OneVisitorTwoVisits extends IntegrationTestCase
'avg_time_generation,nb_hits_with_time_generation',
'expanded' => '1'
))),
// test showColumns on API.get
array('API.get', array(
'idSite' => $idSite,
'date' => $dateTime,
'periods' => 'day',
'testSuffix' => '_showColumns',
'otherRequestParameters' => array(
'showColumns' => 'nb_uniq_visitors,nb_pageviews,bounce_rate'
)
)),
);
}
......
<?xml version="1.0" encoding="utf-8" ?>
<result>
<nb_uniq_visitors>1</nb_uniq_visitors>
<bounce_rate>50%</bounce_rate>
<nb_pageviews>4</nb_pageviews>
</result>
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter