Skip to content

Commit be5e5ad

Browse files
committed
✨ ajout de laravel page views
1 parent 3453c3b commit be5e5ad

15 files changed

+284
-2
lines changed

app/Http/Kernel.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class Kernel extends HttpKernel
2222
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
2323
\App\Http\Middleware\TrimStrings::class,
2424
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
25+
\AndreasElia\Analytics\Http\Middleware\Analytics::class,
2526
];
2627

2728
/**

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"php": "^8.0",
99
"ext-fileinfo": "*",
1010
"ext-json": "*",
11+
"andreaselia/analytics": "^1.5",
1112
"archtechx/laravel-seo": "^0.4.0",
1213
"arrilot/laravel-widgets": "^3.13",
1314
"blade-ui-kit/blade-heroicons": "^1.3",

composer.lock

Lines changed: 75 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/analytics.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
return [
4+
5+
/**
6+
* Analytics Dashboard
7+
*
8+
* The prefix and middleware for the analytics dashboard.
9+
*/
10+
11+
'prefix' => 'analytics',
12+
13+
'middleware' => [
14+
'web',
15+
],
16+
17+
/**
18+
* Exclude
19+
*
20+
* The routes excluded from page view tracking.
21+
*/
22+
23+
'exclude' => [
24+
'/cpanel/*',
25+
'/livewire/message/*',
26+
],
27+
28+
'session' => [
29+
'provider' => \AndreasElia\Analytics\RequestSessionProvider::class,
30+
],
31+
32+
];
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@push('scripts')
2+
{{ $slot }}
3+
@endpush
4+

resources/views/cpanel/analytics.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
(<span class=" font-medium text-green-500 capitalize">{{ __(':start - :end', ['start' => now()->startOfWeek()->isoFormat('DD MMMM'), 'end' => now()->endOfWeek()->isoFormat('DD MMMM')]) }}</span>)
1010
</p>
1111
</div>
12-
<div class="mt-10 grid grid-cols-3 gap-x-8 gap-y-10">
12+
<div class="mt-8 grid grid-cols-3 gap-x-8 gap-y-10">
1313
@widget('recentPostsPerWeek')
1414
@widget('mostViewedPostsPerWeek')
1515
@widget('mostLikedPostsPerWeek')
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
7+
<title>Laravel Analytics</title>
8+
<link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">
9+
</head>
10+
<body>
11+
<div class="min-h-screen bg-gray-100 text-gray-500 py-6 flex flex-col sm:py-16">
12+
<div class="px-4 w-full lg:px-0 sm:max-w-5xl sm:mx-auto">
13+
<div class="flex justify-end">
14+
@include('analytics::data.filter')
15+
</div>
16+
<div class="mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2">
17+
@each('analytics::stats.card', $stats, 'stat')
18+
</div>
19+
<div class="mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2">
20+
@include('analytics::data.pages-card')
21+
@include('analytics::data.sources-card')
22+
@include('analytics::data.users-card')
23+
@include('analytics::data.devices-card')
24+
</div>
25+
</div>
26+
</div>
27+
28+
<script>
29+
const filterButton = document.getElementById('filter-button');
30+
const filterDropdown = document.getElementById('filter-dropdown');
31+
32+
filterButton.addEventListener('click', function (e) {
33+
e.preventDefault();
34+
35+
filterDropdown.style.display = 'block';
36+
});
37+
38+
document.addEventListener('click', function (e) {
39+
if (!filterButton.contains(e.target) && !filterDropdown.contains(e.target)) {
40+
filterDropdown.style.display = 'none';
41+
}
42+
});
43+
</script>
44+
</body>
45+
</html>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<div class="shadow-sm bg-white rounded-lg overflow-hidden">
2+
<div class="px-4 sm:px-6 py-5">
3+
<h3 class="text-lg font-medium leading-6 text-gray-900">Devices</h3>
4+
</div>
5+
<div class="px-4 sm:px-6 py-3 flex justify-between bg-gray-50 border-t border-b border-gray-200 text-xs font-medium leading-4 tracking-wider text-gray-600 uppercase">
6+
<div>Type</div>
7+
<div>Users</div>
8+
</div>
9+
<div class="divide-y divide-gray-200 max-h-64 overflow-y-auto">
10+
@foreach ($devices as $device)
11+
<div class="px-4 sm:px-6 py-3 flex justify-between hover:bg-gray-50">
12+
<div class="pr-5 text-sm leading-5 text-gray-800 truncate">{{ $device->type }}</div>
13+
<div class="text-sm leading-5 text-gray-600">{{ $device->users }}</div>
14+
</div>
15+
@endforeach
16+
</div>
17+
</div>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<div class="relative inline-block text-left">
2+
<div>
3+
<button type="button" class="inline-flex justify-center w-full rounded-md shadow-sm px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-gray-200" id="filter-button">
4+
{{ $periods[$period] }}
5+
<svg class="-mr-1 ml-2 h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
6+
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" />
7+
</svg>
8+
</button>
9+
</div>
10+
11+
<div class="origin-top-right absolute right-0 mt-2 w-40 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5" style="display: none;" id="filter-dropdown">
12+
<div class="p-2" role="menu" aria-orientation="vertical" aria-labelledby="filter-button">
13+
@foreach ($periods as $key => $value)
14+
<a href="{{ url(config('analytics.prefix')) }}?period={{ $key }}" class="block px-4 py-2 rounded-lg text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">{{ $value }}</a>
15+
@endforeach
16+
</div>
17+
</div>
18+
</div>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<div class="shadow-sm bg-white rounded-lg overflow-hidden">
2+
<div class="px-4 sm:px-6 py-5">
3+
<h3 class="text-lg font-medium leading-6 text-gray-900">Pages</h3>
4+
</div>
5+
<div class="px-4 sm:px-6 py-3 flex justify-between bg-gray-50 border-t border-b border-gray-200 text-xs font-medium leading-4 tracking-wider text-gray-600 uppercase">
6+
<div>Page</div>
7+
<div>Users</div>
8+
</div>
9+
<div class="divide-y divide-gray-200 max-h-64 overflow-y-auto">
10+
@foreach ($pages as $page)
11+
<div class="px-4 sm:px-6 py-3 flex justify-between hover:bg-gray-50">
12+
<div class="pr-5 text-sm leading-5 text-gray-800 truncate">
13+
<a href="{{ $page->page }}" target="_blank" class="hover:underline">
14+
{{ $page->page }}
15+
</a>
16+
</div>
17+
<div class="text-sm leading-5 text-gray-600">{{ $page->users }}</div>
18+
</div>
19+
@endforeach
20+
</div>
21+
</div>

0 commit comments

Comments
 (0)