Laravel 4 VisitorLog
A package for Laravel 4 to log all visitors, (*1)
If anyone has any ideas on how to make this framework agnostic, please contact me or open a pull request., (*2)
Installation
Add uniacid/visitor-log
as a requirement to composer.json
:, (*3)
{
...
"require": {
...
"uniacid/visitor-log": "dev-master"
...
},
}
Update composer:, (*4)
$ php composer.phar update
Add the provider to your app/config/app.php
:, (*5)
'providers' => array(
...
'Uniacid\VisitorLog\VisitorLogServiceProvider',
),
Add the alias to your app/config/app.php
:, (*6)
'aliases' => array(
...
'Visitor' => 'Uniacid\VisitorLog\Visitor',
),
Publish migration:, (*7)
$ php artisan migrate --package=uniacid/visitor-log
(Optional) Publish package config:, (*8)
$ php artisan config:publish uniacid/visitor-log
Configuration
-
onlinetime
: The time (in minutes) while a visitor is still saved
-
usermodel
: Set this to the Auth Provider you're using:
-
Laravel
: Visitor-Log will try to get the User with Laravel's Auth Class
-
Sentry
: Visitor-Log will try to get the User with Sentry
-
ignore
: This is an array of pages that will be ignored by Visitor-Log. Example "admin/online"
The Visitor Class
The Visitor Class is an Eloquent Class but has a few extra methods, which will be explained here.
* static isOnline($id)
: Will check whether the user with $id
is online
* static getCurrent()
: Will get the current Visitor (based on their sid)
* static clear()
: Buggy!! This removes all old visitors from the Database. You normally don't need to call this as this happens on every request.
* static loggedIn()
: Will get all logged in Users
* static guests()
: Will get all guests
* static findUser($id)
: Will get the User provided by $id
(if online)
* static findIp($ip)
: Will get all visitors with $ip
* isUser()
: Checks whether this visitor is a User
* isGuest()
: Checks whether this visitor is a Guest, (*9)
There are a few methods that wraps the specific Useragent method:
* is_browser()
: Checks whether this visitor uses a browser
* is_robot()
: Checks whether this visitor is a bot
* is_mobile()
: Checks whether this visitor uses a mobile client
* is_referral()
: Checks whether this visitor is a referral, (*10)
The Visitor Class also provides some attributes:
* sid
: A random String which is used to identicate the visitor
* ip
: The IP of the visitor
* page
: The Page where the visitor is
* useragent
: The useragent of the visitor
* user
: The UserID of the visitor
* The timestamps (created_at
, updated_at
)
* agent
: Returns the useragent Instance used for this visitor
* agents
: Returns the modified Agentstring (eg Opera 12.16)
* platform
: Returns the operating System
* browser
: Returns the Browser which is used
* version
: Returns the Browser version which is used
* robot
: Returns the Botname which is browsing your site
* mobile
: Returns the mobile which is used
* referrer
: Returns the referrer, (*11)
What's with an "Who's online page"?
It's really easy to add one by yourself but Visitor-Log provides you already a very simple one: simply add @include("visitor-log::online")
to your blade template where you want. And the best: It's ready to look nice with bootstrap, (*12)