· 6 years ago · Feb 07, 2020, 01:38 AM
1<?php
2set_time_limit(0);
3
4require __DIR__ . '/../industriacriativa.pt/vendor/autoload.php';
5require __DIR__ . '/../industriacriativa.pt/src/defines.php';
6require __DIR__ . '/../industriacriativa.pt/src/config.php';
7require __DIR__ . '/../industriacriativa.pt/src/db.php';
8
9$user = $db->prepare('SELECT uti_id FROM utilizador WHERE uti_subdominio=?');
10$user_update = $db->prepare('UPDATE utilizador SET uti_visitas=? WHERE uti_subdominio=?');
11
12
13$clean_project_views = $db->query('UPDATE projeto SET pro_views=0');
14
15$project = $db->prepare('SELECT pro_id FROM projeto WHERE pro_id=?');
16$project_update = $db->prepare('UPDATE projeto SET pro_views=pro_views+? WHERE pro_id=?');
17$old_project_update = $db->prepare('UPDATE projeto SET pro_views=? WHERE pro_id=?');
18
19$job = $db->prepare('SELECT emp_id FROM emprego WHERE emp_id=? AND emp_url=?');
20$job_update = $db->prepare('UPDATE emprego SET emp_visitas=? WHERE emp_id=?');
21
22$freelance = $db->prepare('SELECT fre_id FROM freelance WHERE fre_id=? AND fre_url=?');
23$freelance_update = $db->prepare('UPDATE freelance SET fre_visitas=? WHERE fre_id=?');
24
25/**
26 * Parses and prints the Analytics Reporting API V4 response.
27 *
28 * @param An Analytics Reporting API V4 response.
29 */
30function printResults($reports) {
31 global $db, $user, $user_update, $job, $job_update, $freelance, $freelance_update, $project, $project_update, $old_project_update;
32
33 for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
34 $report = $reports[ $reportIndex ];
35 $header = $report->getColumnHeader();
36 $dimensionHeaders = $header->getDimensions();
37 $rows = $report->getData()->getRows();
38
39 for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
40 $row = $rows[ $rowIndex ];
41 $dimensions = $row->getDimensions();
42 $metrics = $row->getMetrics();
43 for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
44 $path = $dimensions[$i];
45 }
46
47 for ($j = 0; $j < count($metrics); $j++) {
48 $values = $metrics[$j]->getValues();
49 for ($k = 0; $k < count($values); $k++) {
50 $views = $values[$k];
51 }
52 }
53
54 // update user profile views
55 $domain = str_replace('/', '', $path);
56 $user->execute(array($domain));
57 if($user->rowCount() > 0) {
58 $user_update->execute(array($views, $domain));
59 //echo $domain . ': ' . $views . "\n";
60 }
61
62 // update project views
63 if(stripos($path, '/portfolio/') !== false) {
64 $project_url = explode('/', $path);
65 $id = $project_url[2];
66
67 if(!is_numeric($id)) {
68 continue;
69 }
70
71 //$url = $project_url[3];
72
73 $project->execute(array($id));
74 if($project->rowCount() > 0) {
75 $old_project_update->execute(array($views, $id));
76 //echo $path . ': ' . $views . "\n";
77 }
78 }
79
80 // update project views
81 if(stripos($path, '/projeto/') !== false) {
82 $project_url = explode('/', $path);
83 $id = $project_url[2];
84
85 if(!is_numeric($id)) {
86 continue;
87 }
88
89 //$url = $project_url[3];
90
91 $project->execute(array($id));
92 if($project->rowCount() > 0) {
93 $project_update->execute(array($views, $id));
94 //echo $path . ': ' . $views . "\n";
95 }
96 }
97
98 // update project views
99 if(stripos($path, '/emprego/') !== false) {
100 //echo $path . "\n";
101 $job_url = explode('/', $path);
102 $id = $job_url[2];
103
104 if(!is_numeric($id)) {
105 continue;
106 }
107
108 $url = $job_url[3];
109
110 $job->execute(array($id, $url));
111 if($job->rowCount() > 0) {
112 $job_update->execute(array($views, $id));
113 //echo $path . ': ' . $views . "\n";
114 }
115 }
116
117 // update project views
118 if(stripos($path, '/freelance/') !== false) {
119 $freelance_url = explode('/', $path);
120 $id = $freelance_url[2];
121
122 if(!is_numeric($id)) {
123 continue;
124 }
125
126 $url = $freelance_url[3];
127
128 $freelance->execute(array($id, $url));
129 if($freelance->rowCount() > 0) {
130 $freelance_update->execute(array($views, $id));
131 //echo $path . ': ' . $views . "\n";
132 }
133 }
134 }
135 }
136}
137
138// Use the developers console and download your service account
139// credentials in JSON format. Place them in this directory or
140// change the key file location if necessary.
141$KEY_FILE_LOCATION = __DIR__ . '/industriacriativa-a85736c5be45.json';
142
143// Create and configure a new client object.
144$client = new Google_Client();
145//$client->setApplicationName('Hello Analytics Reporting');
146$client->setAuthConfig($KEY_FILE_LOCATION);
147$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
148$analytics = new Google_Service_AnalyticsReporting($client);
149
150// Replace with your view ID, for example XXXX.
151$VIEW_ID = '92425358';
152
153// Create the DateRange object.
154$dateRange = new Google_Service_AnalyticsReporting_DateRange();
155$dateRange->setStartDate('2016-01-01');
156$dateRange->setEndDate('today');
157
158// Create the Metrics object.
159$pageViews = new Google_Service_AnalyticsReporting_Metric();
160$pageViews->setExpression('ga:pageViews');
161$pageViews->setAlias('pageViews');
162
163//Create the Dimensions object.
164$pagePath = new Google_Service_AnalyticsReporting_Dimension();
165$pagePath->setName('ga:pagePath');
166
167// Create the ReportRequest object.
168$request = new Google_Service_AnalyticsReporting_ReportRequest();
169$request->setViewId($VIEW_ID);
170$request->setDateRanges($dateRange);
171$request->setDimensions(array($pagePath));
172$request->setMetrics(array($pageViews));
173$request->setPageSize(10000);
174
175$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
176$body->setReportRequests( array( $request) );
177
178do {
179 $response = $analytics->reports->batchGet($body);
180 $request->setPageToken($response[0]->getNextPageToken());
181 printResults($response);
182} while ($response[0]->getNextPageToken() != '');