PHP code example of devlogx / filament-pirsch-dashboard-widget

1. Go to this page and download the library: Download devlogx/filament-pirsch-dashboard-widget library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?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()
])

->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);
bash
php artisan vendor:publish --tag="filament-pirsch-dashboard-widget-config"
bash
php artisan vendor:publish --tag="filament-pirsch-dashboard-widget-translations"