Skip to content

Commit 8d411bb

Browse files
committed
added stats
1 parent 8276017 commit 8d411bb

File tree

3 files changed

+124
-13
lines changed

3 files changed

+124
-13
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?php
2+
/**
3+
* SiteBase
4+
* PHP Version 7.0
5+
*
6+
* @category CMS / Framework
7+
* @package Degami\Sitebase
8+
* @author Mirko De Grandis <degami@github.com>
9+
* @license MIT https://opensource.org/licenses/mit-license.php
10+
* @link https://github.com/degami/sitebase
11+
*/
12+
namespace App\Site\Controllers\Admin;
13+
14+
use \Psr\Container\ContainerInterface;
15+
use \App\Base\Abstracts\Controllers\AdminPage;
16+
17+
/**
18+
* "Stats" Admin Page
19+
*/
20+
class Stats extends AdminPage
21+
{
22+
/**
23+
* @var array template data
24+
*/
25+
protected $templateData = [];
26+
27+
/**
28+
* {@inheritdocs}
29+
*
30+
* @return string
31+
*/
32+
protected function getTemplateName()
33+
{
34+
return 'stats';
35+
}
36+
37+
/**
38+
* {@inheritdocs}
39+
*
40+
* @return string
41+
*/
42+
protected function getAccessPermission()
43+
{
44+
return 'administer_site';
45+
}
46+
47+
/**
48+
* {@inheritdocs}
49+
*
50+
* @return array
51+
*/
52+
protected function getTemplateData()
53+
{
54+
$this->addActionLink('back-btn', 'back-btn', $this->getUtils()->getIcon('rewind').' '.$this->getUtils()->translate('Back', $this->getCurrentLocale()), $this->getRouting()->getUrl('admin.dashboard'));
55+
56+
$stmt = $this->getPdo()->prepare('SELECT ip_address, COUNT(id) AS cnt FROM request_log GROUP BY ip_address ORDER BY cnt DESC LIMIT 10');
57+
$stmt->execute();
58+
$top_visitors = $stmt->fetchAll(\PDO::FETCH_ASSOC);
59+
60+
$stmt = $this->getPdo()->prepare('SELECT url, COUNT(id) AS cnt FROM request_log GROUP BY url ORDER BY cnt DESC LIMIT 10');
61+
$stmt->execute();
62+
$most_viewed = $stmt->fetchAll(\PDO::FETCH_ASSOC);
63+
64+
$this->templateData = [
65+
'top_visitors' => $top_visitors,
66+
'most_viewed' => $most_viewed,
67+
];
68+
return $this->templateData;
69+
}
70+
}

templates/admin/dashboard.php

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,34 @@
33
<div class="jumbotron p-4">
44
<div class="row">
55
<div class="col-2 text-center">
6-
<?php echo $this->sitebase()->getGravatar($current_user->email, 100);?>
6+
<?php echo $this->sitebase()->getGravatar($current_user->email, 100);?>
77
</div>
88
<div class="col-10 mt-3">
99
<h4><?= $this->sitebase()->translate('Welcome home');?>, <?= $current_user->getNickname();?></h4>
10-
<div class="info"><?= $current_user->getEmail();?> (<?= $this->sitebase()->translate('role');?>: <?= $current_user->getRole()->getName();?>)</div>
10+
<div class="info"><?= $current_user->getEmail();?> (<?= $this->sitebase()->translate('role');?>: <?= $current_user->getRole()->getName();?>)</div>
1111
</div>
1212
</div>
1313
</div>
1414

1515
<div class="counters">
1616
<div class="row">
1717
<div class="col-6">
18-
<div class="counter"><label><?= $this->sitebase()->translate('Websites');?></label> <?= $websites;?></div>
19-
<div class="counter"><label><?= $this->sitebase()->translate('Users');?></label> <?= $users;?></div>
20-
<div class="counter"><label><?= $this->sitebase()->translate('Pages');?></label> <?= $pages;?></div>
21-
<div class="counter"><label><?= $this->sitebase()->translate('Contact Forms');?></label> <?= $contact_forms;?></div>
22-
<div class="counter"><label><?= $this->sitebase()->translate('Contact Submissions');?></label> <?= $contact_submissions;?></div>
23-
<div class="counter"><label><?= $this->sitebase()->translate('Taxonomy Terms');?></label> <?= $taxonomy_terms;?></div>
18+
<div class="counter"><label><?= $this->sitebase()->translate('Websites');?></label> <?= $websites;?></div>
19+
<div class="counter"><label><?= $this->sitebase()->translate('Users');?></label> <?= $users;?></div>
20+
<div class="counter"><label><?= $this->sitebase()->translate('Pages');?></label> <?= $pages;?></div>
21+
<div class="counter"><label><?= $this->sitebase()->translate('Contact Forms');?></label> <?= $contact_forms;?></div>
22+
<div class="counter"><label><?= $this->sitebase()->translate('Contact Submissions');?></label> <?= $contact_submissions;?></div>
23+
<div class="counter"><label><?= $this->sitebase()->translate('Taxonomy Terms');?></label> <?= $taxonomy_terms;?></div>
24+
<div class="counter"><label><?= $this->sitebase()->translate('News');?></label> <?= $news;?></div>
2425
</div>
2526
<div class="col-6">
26-
<div class="counter"><label><?= $this->sitebase()->translate('News');?></label> <?= $news;?></div>
2727
<div class="counter"><label><?= $this->sitebase()->translate('Links');?></label> <?= $links;?></div>
2828
<div class="counter"><label><?= $this->sitebase()->translate('Blocks');?></label> <?= $blocks;?></div>
29-
<div class="counter"><label><?= $this->sitebase()->translate('Media');?></label> <?= $media;?></div>
30-
<div class="counter"><hr /></div>
31-
<div class="counter"><label><?= $this->sitebase()->translate('Page Views');?></label> <?= $page_views;?></div>
32-
<div class="counter"><label><?= $this->sitebase()->translate('Mails sent');?></label> <?= $mails_sent;?></div>
29+
<div class="counter"><label><?= $this->sitebase()->translate('Media');?></label> <?= $media;?></div>
30+
<div class="counter"><hr /></div>
31+
<div class="counter"><label><?= $this->sitebase()->translate('Page Views');?></label> <?= $page_views;?></div>
32+
<div class="counter"><label><?= $this->sitebase()->translate('Mails sent');?></label> <?= $mails_sent;?></div>
33+
<div><a href="<?= $this->sitebase()->getUrl('admin.stats');?>"><?= $this->sitebase()->translate('Stats');?></a></div>
3334
</div>
3435
</div>
3536
</div>

templates/admin/stats.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
$this->layout('admin::layout', ['title' => $controller->getPageTitle()] + get_defined_vars()) ?>
3+
4+
5+
<h3>Top Visitors</h3>
6+
<table class="table table-striped" width="100%" cellpadding="0" cellspacing="0">
7+
<thead>
8+
<tr>
9+
<th>Ip Address</th>
10+
<th>Visits</th>
11+
</tr>
12+
</thead>
13+
<tbody>
14+
<?php foreach ($top_visitors as $visitor) : ?>
15+
<tr>
16+
<td><?= $visitor['ip_address'];?></td>
17+
<td><?= $visitor['cnt'];?></td>
18+
</tr>
19+
<?php endforeach;?>
20+
</tbody>
21+
</table>
22+
23+
24+
<h3>Most viewed</h3>
25+
<table class="table table-striped" width="100%" cellpadding="0" cellspacing="0">
26+
<thead>
27+
<tr>
28+
<th>Url</th>
29+
<th>Visits</th>
30+
</tr>
31+
</thead>
32+
<tbody>
33+
<?php foreach ($most_viewed as $view) : ?>
34+
<tr>
35+
<td><?= $view['url'];?></td>
36+
<td><?= $view['cnt'];?></td>
37+
</tr>
38+
<?php endforeach;?>
39+
</tbody>
40+
</table>

0 commit comments

Comments
 (0)