]>
Commit | Line | Data |
---|---|---|
1 | <?php | |
2 | require_once "common.php"; | |
3 | require_once "header.php"; | |
4 | ||
5 | $stats = $rpc->query("stats.get", []); | |
6 | ?> | |
7 | ||
8 | <h2>Network Overview</h2> | |
9 | ||
10 | <?php | |
11 | $array_of_stats = (array)$stats; | |
12 | ||
13 | /* What if someone wants to add their own stats... */ | |
14 | Hook::run(HOOKTYPE_PRE_OVERVIEW_CARD, $array_of_stats); | |
15 | ||
16 | /* This makes sure that a plugin which called the parameter | |
17 | * by reference can add/update the stats for display here. | |
18 | */ | |
19 | $stats = (object) $array_of_stats; | |
20 | ||
21 | ||
22 | ?> | |
23 | ||
24 | <div class="container mt-5"> | |
25 | ||
26 | <div class="row"> | |
27 | <div class="col-sm"> | |
28 | <div class="card text-center"> | |
29 | <div class="card-header bg-success text-white"> | |
30 | <div class="row"> | |
31 | <div class="col"> | |
32 | <i class="fa fa-users fa-3x"></i><span class="position-absolute badge rounded-pill badge-warning"> | |
33 | <?php echo "Record: ".$stats->user->record; ?> | |
34 | </span> | |
35 | </div> | |
36 | <div class="col"> | |
37 | <h3 class="display-4"><?php echo $stats->user->total; ?></h3> | |
38 | </div> | |
39 | </div> | |
40 | </div> | |
41 | <div class="card-body"> | |
42 | <div class="row"> | |
43 | <div class="col"> | |
44 | <h6>Users Online</h6> | |
45 | </div> | |
46 | <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>users">View</a></div> | |
47 | </div> | |
48 | </div> | |
49 | </div> | |
50 | ||
51 | ||
52 | </div> | |
53 | <div class="col-sm"> | |
54 | <div class="card text-center"> | |
55 | <div class="card-header bg-primary text-white"> | |
56 | <div class="row"> | |
57 | <div class="col"> | |
58 | <i class="fa fa-hashtag fa-3x"></i> | |
59 | </div> | |
60 | <div class="col"> | |
61 | <h3 class="display-4"><?php echo $stats->channel->total; ?></h3> | |
62 | </div> | |
63 | </div> | |
64 | </div> | |
65 | <div class="card-body"> | |
66 | <div class="row"> | |
67 | <div class="col"> | |
68 | <h6>Channels</h6> | |
69 | </div> | |
70 | <div class="col"><a class="btn btn-primary" href="<?php echo BASE_URL; ?>channels">View</a></div> | |
71 | </div> | |
72 | </div> | |
73 | </div> | |
74 | </div> | |
75 | <div class="col-sm"> | |
76 | <div class="card text-center"> | |
77 | <div class="card-header bg-warning"> | |
78 | <div class="row"> | |
79 | <div class="col"> | |
80 | <i class="fa fa-shield-halved fa-3x"></i> | |
81 | </div> | |
82 | <div class="col"> | |
83 | <h3 class="display-4"><?php echo $stats->user->oper; ?></h3> | |
84 | </div> | |
85 | </div> | |
86 | </div> | |
87 | <div class="card-body"> | |
88 | <div class="row"> | |
89 | <div class="col"> | |
90 | <h6>Opers</h6> | |
91 | </div> | |
92 | <div class="col"><a class="btn btn-primary" href="<?php echo BASE_URL."users/?operonly"; ?>">View</a></div> | |
93 | </div> | |
94 | </div> | |
95 | </div> | |
96 | </div> | |
97 | ||
98 | <div class="col-sm"> | |
99 | <div class="card text-center"> | |
100 | <div class="card-header bg-secondary text-white"> | |
101 | <div class="row"> | |
102 | <div class="col"> | |
103 | <i class="fa fa-network-wired fa-3x"></i> | |
104 | </div> | |
105 | <div class="col"> | |
106 | <h3 class="display-4"><?php echo $stats->server->total; ?></h3> | |
107 | </div> | |
108 | </div> | |
109 | </div> | |
110 | <div class="card-body"> | |
111 | <div class="row"> | |
112 | <div class="col"> | |
113 | <h6>Servers</h6> | |
114 | </div> | |
115 | <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>servers">View</a></div> | |
116 | </div> | |
117 | </div> | |
118 | </div> | |
119 | </div> | |
120 | </div> | |
121 | </div> | |
122 | <div class="container mt-3"> | |
123 | ||
124 | <div class="row"> | |
125 | <div class="col-sm"> | |
126 | <div class="card text-center"> | |
127 | <div class="card-header bg-danger text-white"> | |
128 | <div class="row"> | |
129 | <div class="col"> | |
130 | <i class="fa fa-ban fa-3x"></i> | |
131 | </div> | |
132 | <div class="col"> | |
133 | <h3 class="display-4"><?php echo $stats->server_ban->server_ban; ?></h3> | |
134 | </div> | |
135 | </div> | |
136 | </div> | |
137 | <div class="card-body"> | |
138 | <div class="row"> | |
139 | <div class="col"> | |
140 | <h6>Server Bans</h6> | |
141 | </div> | |
142 | <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>server_bans.php">View</a></div> | |
143 | </div> | |
144 | </div> | |
145 | </div> | |
146 | </div> | |
147 | <div class="col-sm"> | |
148 | <div class="card text-center"> | |
149 | <div class="card-header bg-secondary text-white"> | |
150 | <div class="row"> | |
151 | <div class="col"> | |
152 | <i class="fa fa-filter fa-3x"></i> | |
153 | </div> | |
154 | <div class="col"> | |
155 | <h3 class="display-4"><?php echo $stats->server_ban->spamfilter; ?></h3> | |
156 | </div> | |
157 | </div> | |
158 | </div> | |
159 | <div class="card-body"> | |
160 | <div class="row"> | |
161 | <div class="col"> | |
162 | <h6>Spamfilter</h6> | |
163 | </div> | |
164 | <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>spamfilter.php">View</a></div> | |
165 | </div> | |
166 | </div> | |
167 | </div> | |
168 | </div> | |
169 | <div class="col-sm"> | |
170 | <div class="card text-center"> | |
171 | <div class="card-header bg-primary text-white"> | |
172 | <div class="row"> | |
173 | <div class="col"> | |
174 | <i class="fa fa-door-open fa-3x"></i> | |
175 | </div> | |
176 | <div class="col"> | |
177 | <h3 class="display-4"><?php echo $stats->server_ban->server_ban_exception; ?></h3> | |
178 | </div> | |
179 | </div> | |
180 | </div> | |
181 | ||
182 | <div class="card-body"> | |
183 | <div class="row"> | |
184 | <div class="col"> | |
185 | <h6>Server Ban Exceptions</h6> | |
186 | </div> | |
187 | <div class="col"> <a class="btn btn-secondary disabled" href="#">View</a></div> | |
188 | </div> | |
189 | </div> | |
190 | </div> | |
191 | </div> | |
192 | <?php | |
193 | if ($stats->server->ulined) { | |
194 | $bg = "bg-success"; | |
195 | ||
196 | /* honestly can't think of a case where there would actually be only one uline... but... well here we are, worrying over the small stuff =] */ | |
197 | $user_noun = ($stats->user->ulined == 1) ? "user" : "users"; // use "users" even if 0, sounds better. | |
198 | $is_are = ($stats->user->ulined == 1) ? "is" : "are"; | |
199 | $server_noun = ($stats->server->ulined == 1) ? "server" : "servers"; | |
200 | $tooltip = "There $is_are " . $stats->user->ulined . " U-Lined $user_noun over " . $stats->server->ulined . " U-Lined $server_noun"; | |
201 | } | |
202 | else | |
203 | $bg = "bg-warning"; | |
204 | ?> | |
205 | <div class="col-sm"> | |
206 | <div class="card text-center"> | |
207 | <div class="card-header <?php echo $bg; ?> text-white"> | |
208 | <div class="row"> | |
209 | <div class="col"> | |
210 | <i class="fa fa-database fa-3x"> </i> | |
211 | </div> | |
212 | <div class="col"> | |
213 | <span data-toggle="tooltip" title="<?php echo $tooltip; ?>" style="border-bottom: 1px dotted #000000"><h3 class="display-4"><?php echo $stats->user->ulined; ?>/<?php echo $stats->server->ulined; ?></h3> | |
214 | </div> | |
215 | </div> | |
216 | </div> | |
217 | <div class="card-body"> | |
218 | <div class="row"> | |
219 | <div class="col"> | |
220 | <h6>Services Online</h6> | |
221 | </div> | |
222 | <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL."users/?servicesonly"; ?>">View</a></div> | |
223 | </div> | |
224 | </div> | |
225 | ||
226 | </div> | |
227 | </div> | |
228 | </div> | |
229 | </div> | |
230 | ||
231 | <?php | |
232 | ||
233 | Hook::run(HOOKTYPE_OVERVIEW_CARD, $stats); | |
234 | ||
235 | require_once "footer.php"; |