Statistics module for Yii2
- PHP 5.6 or higher
- Yii2 v.2.0.20 and newest
- Yii2 Base module (required)
- Yii2 ChartJS widget
- Yii2 SelectInput widget
- GeoIP2 PHP API
- Yii2 Users module (optionaly)
To install the module, run the following command in the console:
$ composer require "wdmg/yii2-stats:dev-master"
After configure db connection, run the following command in the console:
$ php yii stats/init
And select the operation you want to perform:
- Apply all module migrations
- Revert all module migrations
- Update MaxMind GeoIP2 DB
In any case, you can execute the migration run the following command in the console:
$ php yii migrate --migrationPath=@vendor/wdmg/yii2-stats/migrations
To add a module to the project, add the following data in your configuration file:
'modules' => [
...
'stats' => [
'class' => 'wdmg\stats\Module',
'collectStats' => true,
'routePrefix' => 'admin',
'storagePeriod' => 0,
'ignoreDev' => true,
'ignoreAjax' => true,
'useChart' => true,
'ignoreRoute' => ['/admin', '/admin/'],
'ignoreListIp' => ['::1', '127.0.0.1'],
'ignoreListUA' => [],
'cookieName' => 'yii2_stats',
'cookieExpire' => 3110400,
'advertisingSystems' => ["gclid", "yclid", "fbclid", ...],
'socialNetworks' => ["facebook", "instagram", "twitter", ...],
'searchEngines' => ["google", "yandex", "yahoo", ...],
'clientPlatforms' => [
'/windows nt 10/i' => [
'title' => 'Windows 10',
'icon' => 'icon-win-10-os'
],
...
],
'clientBrowsers' => [
'/msie/i' => [
'title' => 'Internet Explorer',
'icon' => 'icon-ie-browser'
],
...
]
],
...
],
Name | Type | Default | Description |
---|---|---|---|
collectStats | boolean | true |
Collect statistics with this module? |
routePrefix | string | 'admin' | Route prefix to the module control panel. |
storagePeriod | integer | 0 | Days, how many to store statistics. 0 - infinity. |
useChart | boolean | true |
Use charts when displaying statistics. |
ignoreDev | boolean | true |
Ignore activity in development mode. |
ignoreAjax | boolean | true |
Ignoring activity for Ajax requests. |
ignoreRoute | array | ['/admin'] | Ignoring the activity at the specified routing. |
ignoreListIp | array | ['127.0.0.1'] | Ignoring activity from specified IP addresses. |
ignoreListUA | array | [...] | Ignoring of activity at specified UserAgents. |
cookieName | string | 'yii2_stats' | The name of the cookie to store the visit ID. |
cookieExpire | integer | 3110400 | Cookie lifetime. |
advertisingSystems | array | [...] | List to detect the transition from advertising sites. |
socialNetworks | array | [...] | List for detecting transition from social networks. |
searchEngines | array | [...] | List for detecting the transition from search engines. |
clientPlatforms | array | [...] | List for detecting the client's OS. |
clientBrowsers | array | [...] | Client's Browser detection list. |
Use the Module::dashboardNavItems()
method of the module to generate a navigation items list for NavBar, like this:
<?php
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'label' => 'Modules',
'items' => [
Yii::$app->getModule('stats')->dashboardNavItems(),
...
]
]);
?>
- v.1.1.8 - Bugfix update GeoIP2 from console for non Unix platforms
- v.1.1.7 - Added extra options to composer.json and navbar menu icon
- v.1.1.6 - Added choice param for non interactive mode
This product also includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com