diff options
author | Thomas ZILLIOX <thomas@zilliox.me> | 2013-07-02 20:08:38 +0400 |
---|---|---|
committer | Thomas ZILLIOX <thomas@zilliox.me> | 2013-07-02 20:08:38 +0400 |
commit | 287dcbbe9eecd9d6e4c5cd89a5a2fa7fe14bb09a (patch) | |
tree | 3ca1c8b4a1fd14cca3c5f492cf6ea8391f1a1060 /plugins/MultiSites | |
parent | 3b367dd3afffa6d44fdf0069f62b00c2bb487a5a (diff) |
Merge with master
Diffstat (limited to 'plugins/MultiSites')
-rwxr-xr-x | plugins/MultiSites/API.php | 34 | ||||
-rw-r--r-- | plugins/MultiSites/Controller.php | 2 | ||||
-rw-r--r-- | plugins/MultiSites/MultiSites.php | 2 | ||||
-rw-r--r-- | plugins/MultiSites/templates/getSitesInfo.twig | 27 |
4 files changed, 39 insertions, 26 deletions
diff --git a/plugins/MultiSites/API.php b/plugins/MultiSites/API.php index b6b0a4d1ae..e3d398c259 100755 --- a/plugins/MultiSites/API.php +++ b/plugins/MultiSites/API.php @@ -218,9 +218,13 @@ class Piwik_MultiSites_API ) { $dataTable = $dataTable->mergeChildren(); } else { - if (!$dataTable instanceof Piwik_DataTable_Array) { + if (!($dataTable instanceof Piwik_DataTable_Array) + && $dataTable->getRowsCount() > 0 + ) { + $firstSite = is_array($sites) ? reset($sites) : $sites; + $firstDataTableRow = $dataTable->getFirstRow(); - $firstDataTableRow->setColumn('label', $sites); + $firstDataTableRow->setColumn('label', $firstSite); } } @@ -237,11 +241,14 @@ class Piwik_MultiSites_API // put there is put directly in Piwik_DataTable::metadata. $dataTable->setMetadata(self::getLastPeriodMetadataName('date'), $lastPeriod); } - - $pastArchive = Piwik_Archive::build('all', $period, $strLastDate, $segment, $_restrictSitesToLogin); + $pastArchive = Piwik_Archive::build($sites, $period, $strLastDate, $segment, $_restrictSitesToLogin); $pastData = $pastArchive->getDataTableFromNumeric($fieldsToGet); - - $pastData = $pastData->mergeChildren(); + + if ($pastData instanceof Piwik_DataTable_Array + && $multipleWebsitesRequested + ) { + $pastData = $pastData->mergeChildren(); + } // use past data to calculate evolution percentages $this->calculateEvolutionPercentages($dataTable, $pastData, $apiMetrics); @@ -312,6 +319,11 @@ class Piwik_MultiSites_API */ private function calculateEvolutionPercentages($currentData, $pastData, $apiMetrics) { + if (get_class($currentData) != get_class($pastData)) { // sanity check for regressions + throw new Exception("Expected \$pastData to be of type ".get_class($currentData)." - got " + . get_class($pastData)."."); + } + if ($currentData instanceof Piwik_DataTable_Array) { $pastArray = $pastData->getArray(); foreach ($currentData->getArray() as $subTable) { @@ -349,7 +361,7 @@ class Piwik_MultiSites_API } else { $revenueMetric = ''; if (Piwik_Common::isGoalPluginEnabled()) { - $revenueMetric = Piwik_Goals::getRecordName(self::GOAL_REVENUE_METRIC); + $revenueMetric = Piwik_Goals_Archiver::getRecordName(self::GOAL_REVENUE_METRIC); } $totals = array(); @@ -421,7 +433,7 @@ class Piwik_MultiSites_API $metrics[self::GOAL_REVENUE_METRIC] = array( self::METRIC_TRANSLATION_KEY => 'Goals_ColumnRevenue', self::METRIC_EVOLUTION_COL_NAME_KEY => self::GOAL_REVENUE_METRIC . '_evolution', - self::METRIC_RECORD_NAME_KEY => Piwik_Goals::getRecordName(self::GOAL_REVENUE_METRIC), + self::METRIC_RECORD_NAME_KEY => Piwik_Goals_Archiver::getRecordName(self::GOAL_REVENUE_METRIC), self::METRIC_IS_ECOMMERCE_KEY => false, ); @@ -430,7 +442,7 @@ class Piwik_MultiSites_API $metrics[self::GOAL_CONVERSION_METRIC] = array( self::METRIC_TRANSLATION_KEY => 'Goals_ColumnConversions', self::METRIC_EVOLUTION_COL_NAME_KEY => self::GOAL_CONVERSION_METRIC . '_evolution', - self::METRIC_RECORD_NAME_KEY => Piwik_Goals::getRecordName(self::GOAL_CONVERSION_METRIC), + self::METRIC_RECORD_NAME_KEY => Piwik_Goals_Archiver::getRecordName(self::GOAL_CONVERSION_METRIC), self::METRIC_IS_ECOMMERCE_KEY => false, ); @@ -438,7 +450,7 @@ class Piwik_MultiSites_API $metrics[self::ECOMMERCE_ORDERS_METRIC] = array( self::METRIC_TRANSLATION_KEY => 'General_EcommerceOrders', self::METRIC_EVOLUTION_COL_NAME_KEY => self::ECOMMERCE_ORDERS_METRIC . '_evolution', - self::METRIC_RECORD_NAME_KEY => Piwik_Goals::getRecordName(self::GOAL_CONVERSION_METRIC, 0), + self::METRIC_RECORD_NAME_KEY => Piwik_Goals_Archiver::getRecordName(self::GOAL_CONVERSION_METRIC, 0), self::METRIC_IS_ECOMMERCE_KEY => true, ); @@ -446,7 +458,7 @@ class Piwik_MultiSites_API $metrics[self::ECOMMERCE_REVENUE_METRIC] = array( self::METRIC_TRANSLATION_KEY => 'General_ProductRevenue', self::METRIC_EVOLUTION_COL_NAME_KEY => self::ECOMMERCE_REVENUE_METRIC . '_evolution', - self::METRIC_RECORD_NAME_KEY => Piwik_Goals::getRecordName(self::GOAL_REVENUE_METRIC, 0), + self::METRIC_RECORD_NAME_KEY => Piwik_Goals_Archiver::getRecordName(self::GOAL_REVENUE_METRIC, 0), self::METRIC_IS_ECOMMERCE_KEY => true, ); } diff --git a/plugins/MultiSites/Controller.php b/plugins/MultiSites/Controller.php index 8c26e75f6c..46bf83848f 100644 --- a/plugins/MultiSites/Controller.php +++ b/plugins/MultiSites/Controller.php @@ -41,7 +41,7 @@ class Piwik_MultiSites_Controller extends Piwik_Controller } - public function getSitesInfo($isWidgetized) + public function getSitesInfo($isWidgetized = false) { Piwik::checkUserHasSomeViewAccess(); $displayRevenueColumn = Piwik_Common::isGoalPluginEnabled(); diff --git a/plugins/MultiSites/MultiSites.php b/plugins/MultiSites/MultiSites.php index 763b8f4797..aa23d48040 100644 --- a/plugins/MultiSites/MultiSites.php +++ b/plugins/MultiSites/MultiSites.php @@ -77,7 +77,7 @@ class Piwik_MultiSites extends Piwik_Plugin public function addTopMenu() { - $urlParams = array('module' => 'MultiSites', 'action' => 'index'); + $urlParams = array('module' => 'MultiSites', 'action' => 'index', 'segment' => false); $tooltip = Piwik_Translate('MultiSites_TopLinkTooltip'); Piwik_AddTopMenu('General_MultiSitesSummary', $urlParams, true, 3, $isHTML = false, $tooltip); } diff --git a/plugins/MultiSites/templates/getSitesInfo.twig b/plugins/MultiSites/templates/getSitesInfo.twig index bed31e89a1..e704514a01 100644 --- a/plugins/MultiSites/templates/getSitesInfo.twig +++ b/plugins/MultiSites/templates/getSitesInfo.twig @@ -1,9 +1,13 @@ {% extends 'dashboard.twig' %} {% block content %} + + <div class="top_controls_inner"> + {% include "@CoreHome/_periodSelect.twig" %} + </div> + <div id="multisites"> <div id="main"> - {% include "@MultiSites/_siteRow.twig" %} <script type="text/javascript"> var allSites = []; var params = []; @@ -28,24 +32,21 @@ params['page'] = 1; params['prev'] = "{{ 'General_Previous'|translate|e("js") }}"; params['next'] = "{{ 'General_Next'|translate|e("js") }}"; + + {% set row %} + {% include "@MultiSites/_siteRow.twig" %} + {% endset %} params['row'] = '{{ row|e("js") }}'; params['dateSparkline'] = '{{ dateSparkline }}'; </script> - {% if not isWidgetized %} - <div class="top_controls_inner"> - {% include "@CoreHome/_periodSelect.twig" %} - {% include "@CoreHome/_headerMessage.twig" %} - </div> - {% endif %} - <div class="centerLargeDiv"> <h2>{{ 'General_AllWebsitesDashboard'|translate }} {% set nVisits %}{{ 'General_NVisits'|translate(totalVisits) }}{% endset %} {% set nVisitsLast %}{{ 'General_NVisits'|translate(pastTotalVisits) }}{% endset %} <span class='smallTitle' {% if totalVisitsEvolution %}title="{{ 'General_EvolutionSummaryGeneric'|translate(nVisits,prettyDate,nVisitsLast,pastPeriodPretty,totalVisitsEvolution) }}"{% endif %}> - {{ 'General_TotalVisitsPageviewsRevenue'|translate("<strong>"+totalVisits+"</strong>","<strong>"+totalPageviews+"</strong>","<strong>"+totalRevenue+"</strong>")|raw }} + {{ 'General_TotalVisitsPageviewsRevenue'|translate("<strong>"~totalVisits~"</strong>","<strong>"~totalPageviews~"</strong>","<strong>"~totalRevenue~"</strong>")|raw }} </span> </h2> @@ -54,15 +55,15 @@ <tr> <th id="names" class="label" onClick="params = setOrderBy(this,allSites, params, 'names');"> <span>{{ 'General_Website'|translate }}</span> - <span class="arrow {if $evolutionBy=='names'}multisites_{$order}{/if}"></span> + <span class="arrow {% if evolutionBy=='names' %}multisites_{{ order }}{% endif %}"></span> </th> <th id="visits" class="multisites-column" style="width: 100px" onClick="params = setOrderBy(this,allSites, params, 'visits');"> <span>{{ 'General_ColumnNbVisits'|translate }}</span> - <span class="arrow {if $evolutionBy=='visits'}multisites_{$order}{/if}"></span> + <span class="arrow {% if evolutionBy=='visits' %}multisites_{{ order }}{% endif %}"></span> </th> <th id="pageviews" class="multisites-column" style="width: 110px" onClick="params = setOrderBy(this,allSites, params, 'pageviews');"> <span>{{ 'General_ColumnPageviews'|translate }}</span> - <span class="arrow {if $evolutionBy=='pageviews'}multisites_{$order}{/if}"></span> + <span class="arrow {% if evolutionBy=='pageviews' %}multisites_{{ order }}{% endif %}"></span> </th> {% if displayRevenueColumn %} <th id="revenue" class="multisites-column" style="width: 110px" onClick="params = setOrderBy(this,allSites, params, 'revenue');"> @@ -70,7 +71,7 @@ <span class="arrow {% if evolutionBy=='revenue' %}multisites_{{ order }}{% endif %}"></span> </th> {% endif %} - <th id="evolution" style=" width:350px" colspan="{if $show_sparklines}2{else}1{/if}"> + <th id="evolution" style=" width:350px" colspan="{% if show_sparklines %}2{% else %}1{% endif %}"> <span class="arrow "></span> <span class="evolution" style="cursor:pointer;" onClick="params = setOrderBy(this,allSites, params, $('#evolution_selector').val() + 'Summary');"> {{ 'MultiSites_Evolution'|translate }}</span> |