|
@@ -141,14 +141,38 @@ View::show_header('Detailed User Statistics', 'chart');
|
141
|
141
|
<h3 id="User_Platforms"><a href="#User_Platforms">User Platforms</a></h3>
|
142
|
142
|
<div class="box pad center">
|
143
|
143
|
<canvas class="chart" id="chart_user_platforms"></canvas>
|
|
144
|
+ <?
|
|
145
|
+ $AllPlatforms = array_column($PlatformDistribution, 'OperatingSystem');
|
|
146
|
+ $SlicedPlatforms = (count($AllPlatforms) > 14) ? array_slice($AllPlatforms,0,13)+[13=>'Other'] : $AllPlatforms;
|
|
147
|
+ $AllUsers = array_column($PlatformDistribution, 'Users');
|
|
148
|
+ $SlicedUsers = (count($AllUsers) > 14) ? array_slice($AllUsers,0,13)+[13=>array_sum(array_slice($AllUsers,13))] : $AllUsers;
|
|
149
|
+ $Colors = [];
|
|
150
|
+ $Palette = ["blue"=>['#46B','#34A','#239','#128','#117'],"red"=>['#B45','#A34','#923'],"green"=>['#3B3','#2A2','#191','#080'],"purple"=>['#B3B','#A2A','#919','#808','#707','#606','#505','#404']];
|
|
151
|
+ $Counts = [0,0,0,0];
|
|
152
|
+ for ($i = 0; $i < count($SlicedPlatforms); $i++) {
|
|
153
|
+ if (preg_match('/Windows/i', $SlicedPlatforms[$i])) {
|
|
154
|
+ $Colors[] = $Palette["blue"][$Counts[0]];
|
|
155
|
+ $Counts[0]++;
|
|
156
|
+ } else if (preg_match('/Mac|OS ?X/i', $SlicedPlatforms[$i])) {
|
|
157
|
+ $Colors[] = $Palette["red"][$Counts[1]];
|
|
158
|
+ $Counts[1]++;
|
|
159
|
+ } else if (preg_match('/Linux|Ubuntu|Fedora/i', $SlicedPlatforms[$i])) {
|
|
160
|
+ $Colors[] = $Palette["green"][$Counts[2]];
|
|
161
|
+ $Counts[2]++;
|
|
162
|
+ } else {
|
|
163
|
+ $Colors[] = $Palette["purple"][$Counts[3]];
|
|
164
|
+ $Counts[3]++;
|
|
165
|
+ }
|
|
166
|
+ }
|
|
167
|
+ ?>
|
144
|
168
|
<script>
|
145
|
169
|
new Chart($('#chart_user_platforms').raw().getContext('2d'), {
|
146
|
170
|
type: 'pie',
|
147
|
171
|
data: {
|
148
|
|
- labels: <? print '["'.implode('","', array_column($PlatformDistribution, 'OperatingSystem')).'"]'; ?>,
|
|
172
|
+ labels: ["<?=implode('","', $SlicedPlatforms)?>"],
|
149
|
173
|
datasets: [ {
|
150
|
|
- data: <? print "[".implode(",", array_column($PlatformDistribution, 'Users'))."]"; ?>,
|
151
|
|
- backgroundColor: ['#8a00b8','#9416bf','#9f2dc5','#a944cb','#b45bd2','#be71d8','#c988de','#d39fe5','#deb6eb','#e8ccf1', '#ffffff', '#ffffff', '#ffffff', '#ffffff']
|
|
174
|
+ data: [<?=implode(",", $SlicedUsers)?>],
|
|
175
|
+ backgroundColor: ["<?=implode('","', $Colors)?>"]
|
152
|
176
|
}]
|
153
|
177
|
}
|
154
|
178
|
})
|
|
@@ -158,14 +182,38 @@ View::show_header('Detailed User Statistics', 'chart');
|
158
|
182
|
<h3 id="User_Browsers"><a href="#User_Browsers">User Browsers</a></h3>
|
159
|
183
|
<div class="box pad center">
|
160
|
184
|
<canvas class="chart" id="chart_user_browsers"></canvas>
|
|
185
|
+ <?
|
|
186
|
+ $AllBrowsers = array_column($BrowserDistribution, 'Browser');
|
|
187
|
+ $SlicedBrowsers = (count($AllBrowsers) > 7) ? array_slice($AllBrowsers,0,6)+[6=>'Other'] : $AllBrowsers;
|
|
188
|
+ $AllUsers = array_column($BrowserDistribution, 'Users');
|
|
189
|
+ $SlicedUsers = (count($AllUsers) > 7) ? array_slice($AllUsers,0,6)+[6=>array_sum(array_slice($AllUsers,6))] : $AllUsers;
|
|
190
|
+ $Colors = [];
|
|
191
|
+ $Palette = ["blue"=>['#46B','#34A'],"orange"=>['#F53','#E42'],"green"=>['#3B3','#2A2'],"purple"=>['#B3B','#A2A','#919','#808','#707','#606','#505','#404']];
|
|
192
|
+ $Counts = [0,0,0,0];
|
|
193
|
+ for ($i = 0; $i < count($SlicedBrowsers); $i++) {
|
|
194
|
+ if (preg_match('/Chrome/i', $SlicedBrowsers[$i])) {
|
|
195
|
+ $Colors[] = $Palette["green"][$Counts[0]];
|
|
196
|
+ $Counts[0]++;
|
|
197
|
+ } else if (preg_match('/Firefox/i', $SlicedBrowsers[$i])) {
|
|
198
|
+ $Colors[] = $Palette["orange"][$Counts[1]];
|
|
199
|
+ $Counts[1]++;
|
|
200
|
+ } else if (preg_match('/Safari/i', $SlicedBrowsers[$i])) {
|
|
201
|
+ $Colors[] = $Palette["blue"][$Counts[2]];
|
|
202
|
+ $Counts[2]++;
|
|
203
|
+ } else {
|
|
204
|
+ $Colors[] = $Palette["purple"][$Counts[3]];
|
|
205
|
+ $Counts[3]++;
|
|
206
|
+ }
|
|
207
|
+ }
|
|
208
|
+ ?>
|
161
|
209
|
<script>
|
162
|
210
|
new Chart($('#chart_user_browsers').raw().getContext('2d'), {
|
163
|
211
|
type: 'pie',
|
164
|
212
|
data: {
|
165
|
|
- labels: <? print '["'.implode('","', array_column($BrowserDistribution, 'Browser')).'"]'; ?>,
|
|
213
|
+ labels: ["<?=implode('","', $SlicedBrowsers)?>"],
|
166
|
214
|
datasets: [ {
|
167
|
|
- data: <? print "[".implode(",", array_column($BrowserDistribution, 'Users'))."]"; ?>,
|
168
|
|
- backgroundColor: ['#8a00b8','#9416bf','#9f2dc5','#a944cb','#b45bd2','#be71d8','#c988de','#d39fe5','#deb6eb','#e8ccf1', '#ffffff', '#ffffff', '#ffffff', '#ffffff']
|
|
215
|
+ data: [<?=implode(",", $SlicedUsers)?>],
|
|
216
|
+ backgroundColor: ["<?=implode('","', $Colors)?>"],
|
169
|
217
|
}]
|
170
|
218
|
}
|
171
|
219
|
})
|