<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
devlogx / filament-pirsch-dashboard-widget example snippets
return [
/*
|--------------------------------------------------------------------------
| Pirsch Client id & Client secret
|--------------------------------------------------------------------------
|
| You can acquire your client id and secret id under
| https://dashboard.pirsch.io/settings/integration
|
*/
'client_id' => env('PIRSCH_CLIENT_ID', null),
'client_secret' => env('PIRSCH_CLIENT_SECRET', null),
/*
|--------------------------------------------------------------------------
| Stats cache ttl
|--------------------------------------------------------------------------
|
| This value is the ttl for the displayed dashboard
| stats values. You can increase or decrease
| this value.
|
*/
'cache_time' => 300,
];
namespace App\Filament\Pages;
use Devlogx\FilamentPirsch\Concerns\HasFilter;
class Dashboard extends \Filament\Pages\Dashboard
{
use HasFilter;
}
->pages([
//Pages\Dashboard::class,
])
->widgets([
Widgets\AccountWidget::class,
Widgets\FilamentInfoWidget::class,
\Devlogx\FilamentPirsch\Widgets\PirschStatsWidget::class,// <-- add this widget
])
->plugins([
\Devlogx\FilamentPirsch\FilamentPirschPlugin::make()
->pirschLink(true) //Direct link to pirsch analytics page
->pollingInterval("60s") //Auto polling interval
->filterSectionIcon("heroicon-s-adjustments-vertical")
->filterSectionIconColor("primary")
->liveVisitorIcon("heroicon-s-user") //First Block | Live Visitors
->liveVisitorColor("primary") //First Block | Live Visitors
->visitorsIcon("heroicon-s-user-group") //Second Block | All Visitors
->visitorsColor("primary") //Second Block | All Visitors
->viewsIcom("heroicon-s-eye") //Third Block | All Page Views
->visitorsColor("primary") //Third Block | All Page Views
->sessionTimeIcon("heroicon-s-clock") //Fourth Block | Avg. Session Time
->sessionTimeColor("primary") //Fourth Block | Avg. Session Time
])
public function getDashboardLink(): string
{
return 'https://' . $this->client->getDomain()->subdomain . '.pirsch.io';
}
use Devlogx\FilamentPirsch\Concerns\Filter;
$filter = (new Filter())
->setFrom(Carbon::now()->subDays(30))
->setTo(Carbon::now())
->setFromTime(Carbon::now()->startOfDay())
->setToTime(Carbon::now()->endOfDay())
->setScale(\Devlogx\FilamentPirsch\Enums\Scale::SCALE_DAY) // can be 'SCALE_DAY', 'SCALE_MONTH', 'SCALE_WEEK' or 'SCALE_YEAR'
->setEvent("name of event")
->setEventMetaKey("meta key");
use Devlogx\FilamentPirsch\Facades\FilamentPirsch;
//Get active visitors
$activeVisitors = FilamentPirsch::activeVisitors($filter,false);
//Get avg session duration
$sessionDuration = FilamentPirsch::sessionDuration($filter,false);
//Get visitors
$visitors = FilamentPirsch::visitors($filter,false);
//Get page views
$views = FilamentPirsch::views($filter,false);
//Get avg time on page
$timeOnPage = FilamentPirsch::timeOnPage($filter,false);
//Get events
$events = FilamentPirsch::events($filter,false);
//Get event meta data
$eventMetaData = FilamentPirsch::eventMetaData($filter,false);
//Get languages
$languages = FilamentPirsch::languages($filter,false);
//Get referrer listed
$referrer = FilamentPirsch::referrer($filter,false);
//Get os listed
$os = FilamentPirsch::os($filter,false);
//Get platforms listed
$platform = FilamentPirsch::platform($filter,false);
//Get a list of used keywords
$keywords = FilamentPirsch::keywords($filter,false);