Commit 129bec7c5f22cdbe00dd9aad83da154356b3b5d2
1 parent
a941da22
ga output
Showing
1 changed file
with
43 additions
and
39 deletions
Show diff stats
app/library/App/Controllers/GaController.php
... | ... | @@ -28,11 +28,49 @@ class GaController extends CrudResourceController { |
28 | 28 | |
29 | 29 | $view_id = $this->request->get('view_id') ?? '119240817'; |
30 | 30 | $get_metrics = $this->request->get('metric') ?? 'users'; |
31 | + $get_dimensions = $this->request->get('dimension'); | |
31 | 32 | $get_start_date = $this->request->get('start') ?? '30daysAgo'; |
32 | 33 | $get_end_date = $this->request->get('end') ?? 'today'; |
33 | - $get_dimensions = $this->request->get('dimension'); | |
34 | 34 | |
35 | 35 | |
36 | + return $this->sendGaRequest($view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date); | |
37 | + | |
38 | + } | |
39 | + | |
40 | + public function printResults($reports) { | |
41 | + $res = ''; | |
42 | + for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) { | |
43 | + $report = $reports[ $reportIndex ]; | |
44 | + $header = $report->getColumnHeader(); | |
45 | + $dimensionHeaders = $header->getDimensions(); | |
46 | + $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); | |
47 | + $rows = $report->getData()->getRows(); | |
48 | + | |
49 | + for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { | |
50 | + $row = $rows[ $rowIndex ]; | |
51 | + $dimensions = $row->getDimensions(); | |
52 | + $metrics = $row->getMetrics(); | |
53 | + for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { | |
54 | + print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); | |
55 | + } | |
56 | + | |
57 | + for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) { | |
58 | + $entry = $metricHeaders[$j]; | |
59 | + $values = $metrics[$j]; | |
60 | + //print("Metric type: " . $entry->getType() . "\n" ); | |
61 | + for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) { | |
62 | + $value = $values->getValues()[ $valueIndex ]; | |
63 | + $res .= "<b>" . $entry->getName() . "</b>: " . $value . '<br/>'; | |
64 | + } | |
65 | + } | |
66 | + } | |
67 | + } | |
68 | + | |
69 | + return $res; | |
70 | + } | |
71 | + | |
72 | + public function sendGaRequest($view, $get_metrics, $get_dimensions, $start, $end) { | |
73 | + | |
36 | 74 | putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON); |
37 | 75 | $client = new Google_Client(); |
38 | 76 | $client->useApplicationDefaultCredentials(); |
... | ... | @@ -41,8 +79,8 @@ class GaController extends CrudResourceController { |
41 | 79 | |
42 | 80 | // Создание объекта DateRange. |
43 | 81 | $dateRange = new Google_Service_AnalyticsReporting_DateRange(); |
44 | - $dateRange->setStartDate($get_start_date); | |
45 | - $dateRange->setEndDate($get_end_date); | |
82 | + $dateRange->setStartDate($start); | |
83 | + $dateRange->setEndDate($end); | |
46 | 84 | |
47 | 85 | // Создание объекта Metrics. |
48 | 86 | $metrics = []; |
... | ... | @@ -67,7 +105,7 @@ class GaController extends CrudResourceController { |
67 | 105 | |
68 | 106 | // Создание объекта ReportRequest. |
69 | 107 | $request = new Google_Service_AnalyticsReporting_ReportRequest(); |
70 | - $request->setViewId($view_id); | |
108 | + $request->setViewId($view); | |
71 | 109 | $request->setDateRanges($dateRange); |
72 | 110 | if (!empty($dimensions)) { |
73 | 111 | $request->setDimensions(array($dimensions)); |
... | ... | @@ -84,7 +122,7 @@ class GaController extends CrudResourceController { |
84 | 122 | $response = $response->reports[0]['data']['rows']; |
85 | 123 | |
86 | 124 | $result = []; |
87 | - $project = Project::findFirst(['ga_view_id' => $view_id]); | |
125 | + $project = Project::findFirst(['ga_view_id' => $view]); | |
88 | 126 | $result['name'] = $project->name; |
89 | 127 | |
90 | 128 | foreach ($response as $item) { |
... | ... | @@ -104,38 +142,4 @@ class GaController extends CrudResourceController { |
104 | 142 | return ($result); |
105 | 143 | |
106 | 144 | } |
107 | - | |
108 | - public function printResults($reports) { | |
109 | - $res = ''; | |
110 | - for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) { | |
111 | - $report = $reports[ $reportIndex ]; | |
112 | - $header = $report->getColumnHeader(); | |
113 | - $dimensionHeaders = $header->getDimensions(); | |
114 | - $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); | |
115 | - $rows = $report->getData()->getRows(); | |
116 | - | |
117 | - for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { | |
118 | - $row = $rows[ $rowIndex ]; | |
119 | - $dimensions = $row->getDimensions(); | |
120 | - $metrics = $row->getMetrics(); | |
121 | - for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { | |
122 | - print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); | |
123 | - } | |
124 | - | |
125 | - for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) { | |
126 | - $entry = $metricHeaders[$j]; | |
127 | - $values = $metrics[$j]; | |
128 | - //print("Metric type: " . $entry->getType() . "\n" ); | |
129 | - for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) { | |
130 | - $value = $values->getValues()[ $valueIndex ]; | |
131 | - $res .= "<b>" . $entry->getName() . "</b>: " . $value . '<br/>'; | |
132 | - } | |
133 | - } | |
134 | - } | |
135 | - } | |
136 | - | |
137 | - return $res; | |
138 | - } | |
139 | - | |
140 | - | |
141 | 145 | } |
142 | 146 | \ No newline at end of file | ... | ... |