This repository has been archived by the owner on Dec 13, 2020. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathExtension.php
executable file
·106 lines (95 loc) · 3 KB
/
Extension.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
namespace Igniter\OnlineTracker;
use Igniter\OnlineTracker\Classes\RepositoryManager;
use Igniter\OnlineTracker\Classes\Tracker;
use Igniter\OnlineTracker\Geoip\ReaderManager;
use Igniter\OnlineTracker\Middleware\LogOnlineUser;
use Igniter\OnlineTracker\Models\GeoIp;
use Igniter\OnlineTracker\Models\PageVisit;
use Igniter\OnlineTracker\Models\Settings;
use Jenssegers\Agent\AgentServiceProvider;
use System\Classes\BaseExtension;
/**
* OnlineTracker Extension Information File
*/
class Extension extends BaseExtension
{
/**
* Register method, called when the extension is first registered.
*
* @return void
*/
public function register()
{
$this->app->register(AgentServiceProvider::class);
$this->app->singleton('tracker.reader', function ($app) {
return new ReaderManager($app);
});
$this->app->singleton('tracker.repository.manager', function ($app) {
return new RepositoryManager(
new PageVisit,
new GeoIp
);
});
$this->app->singleton('tracker', function ($app) {
return new Tracker(
Settings::instance(),
$app['tracker.repository.manager'],
$app['request'],
$app['session.store'],
$app['router'],
$app['agent'],
$app['tracker.reader']
);
});
if (!$this->app->runningInAdmin())
$this->app['Illuminate\Contracts\Http\Kernel']->pushMiddleware(LogOnlineUser::class);
}
/**
* Registers any admin permissions used by this extension.
*
* @return array
*/
public function registerPermissions()
{
return [
'Igniter.OnlineTracker.ManageSettings' => [
'description' => 'Manage online tracker extension settings',
'group' => 'module',
],
];
}
public function registerNavigation()
{
return [
'pagevisits' => [
'priority' => 50,
'class' => 'pagevisits',
'icon' => 'fa-globe',
'href' => admin_url('igniter/onlinetracker/pagevisits'),
'title' => lang('igniter.onlinetracker::default.text_title'),
'permission' => 'Igniter.OnlineTracker.*',
],
];
}
public function registerSettings()
{
return [
'settings' => [
'label' => 'Page Tracker Settings',
'description' => 'Manage online tracker settings.',
'model' => 'Igniter\OnlineTracker\Models\Settings',
'permissions' => ['Igniter.OnlineTracker.*'],
],
];
}
public function registerDashboardWidgets()
{
return [
\Igniter\OnlineTracker\DashboardWidgets\PageViews::class => [
'label' => 'Page Views chart widget',
'context' => 'dashboard',
],
];
}
}