From 5e021d7a25fe00ba46ee26ba02150aab7febc0f6 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 27 Mar 2017 20:02:49 +0300 Subject: [PATCH] -Tabs for analytics in progress --- backend/controllers/SiteController.php | 19 ++++++++++++++++--- backend/models/Analytics.php | 46 +++++++++++++++++++++++++++++++++++++++++++++- backend/views/site/analytics.php | 17 +++++++++++++++++ 3 files changed, 78 insertions(+), 4 deletions(-) diff --git a/backend/controllers/SiteController.php b/backend/controllers/SiteController.php index 413dba4..6b5fed6 100755 --- a/backend/controllers/SiteController.php +++ b/backend/controllers/SiteController.php @@ -79,11 +79,24 @@ 'viewId' => $settings->analytics_key, ] ); + $data = $analytics->generateData(); + $browsers = $data[ 'table' ][ 0 ]; + arsort($browsers); + + $cityes = $data[ 'table' ][ 1 ]; + arsort($cityes); + + $countries = $data[ 'table' ][ 2 ]; + arsort($countries); + return $this->render( 'analytics', [ - 'data' => $analytics->generateData(), + 'data' => $data, + 'browsers' => $browsers, + 'cityes' => $cityes, + 'countries' => $countries, ] ); } @@ -99,7 +112,7 @@ if (!Yii::$app->user->isGuest) { return $this->goHome(); } - + $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); @@ -121,7 +134,7 @@ public function actionLogout() { Yii::$app->user->logout(); - + return $this->goHome(); } diff --git a/backend/models/Analytics.php b/backend/models/Analytics.php index c8d54fd..95253db 100644 --- a/backend/models/Analytics.php +++ b/backend/models/Analytics.php @@ -2,6 +2,7 @@ namespace backend\models; use yii\base\Model; + use yii\helpers\ArrayHelper; use yii\helpers\VarDumper; class Analytics extends Model @@ -85,6 +86,12 @@ $country, ] ); + + $ordering = new \Google_Service_AnalyticsReporting_OrderBy(); + $ordering->setFieldName("ga:sessions"); + $ordering->setOrderType("VALUE"); + $ordering->setSortOrder("DESCENDING"); + $request2->setOrderBys($ordering); $body = new \Google_Service_AnalyticsReporting_GetReportsRequest(); $body->setReportRequests( @@ -104,6 +111,9 @@ $data = []; + /** + * Generating data for Sessions and users + */ $report = $reports[ 0 ]; $header = $report->getColumnHeader(); // $dimensionHeaders = $header->getDimensions(); @@ -138,8 +148,42 @@ } /** - * @todo Get data from second query + * Generating data for */ + $data2 = []; + + $report = $reports[ 1 ]; + $header = $report->getColumnHeader(); + $dimensionHeaders = $header->getDimensions(); + $metricHeaders = $header->getMetricHeader() + ->getMetricHeaderEntries(); + $rows = $report->getData() + ->getRows(); + + for ($rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { + $row = $rows[ $rowIndex ]; + + $metrics = $row->getMetrics(); + for ($j = 0; $j < count($metricHeaders) && $j < count($metrics); $j++) { + $values = $metrics[ $j ]; + for ($valueIndex = 0; $valueIndex < count($values->getValues()); $valueIndex++) { + $value = $values->getValues()[ $valueIndex ]; + $currentValue = (int) $value; + } + } + + $dimensions = $row->getDimensions(); + foreach ($dimensions as $key => $dimension) { + if (empty($data2[ $key ][ $dimension ])) { + $data2[ $key ][ $dimension ] = $currentValue; + } else { + $data2[ $key ][ $dimension ] += $currentValue; + } + } + } + + $data[ 'table' ] = $data2; + return $data; } } \ No newline at end of file diff --git a/backend/views/site/analytics.php b/backend/views/site/analytics.php index 4836968..98f033c 100644 --- a/backend/views/site/analytics.php +++ b/backend/views/site/analytics.php @@ -6,6 +6,8 @@ use artbox\gentelella\widgets\XPanel; use dosamigos\highcharts\HighCharts; + use yii\bootstrap\Html; + use yii\bootstrap\Tabs; use yii\web\View; ?> @@ -179,5 +181,20 @@ + +
+ + 'Analytics', + 'toolbarLayout' => false, + ] + ); ?> + + + + + +
\ No newline at end of file -- libgit2 0.21.4