devlogx/filament-pirsch-dashboard-widget

这是我的包 filament-pirsch-dashboard-widget

1.1.1 2024-05-09 16:56 UTC

This package is auto-updated.

Last update: 2024-09-15 08:11:32 UTC


README

Filament Pirsch Dashboard Widget

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包允许您将简单的分析仪表板小部件集成到面板中。

屏幕截图

filament_pirsch_light.jpg filament_pirsch_dark.jpg

安装

您可以通过composer安装此包

composer require devlogx/filament-pirsch-dashboard-widget

获取Pirsch访问令牌并将其添加到您的env文件中。

  1. 访问Pirsch "集成"设置页面
  2. 确保在页面的右上角选择了正确的域名。
  3. 滚动到“客户端”部分并点击“添加客户端”按钮。
  4. 选择“oAuth (ID + secret)”作为类型并输入描述。
  5. 点击“创建客户端”按钮并复制生成的“客户端ID和客户端密钥”。
  6. 将复制的ID和密钥添加到您的.env文件中
# ...
PIRSCH_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PIRSCH_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="filament-pirsch-dashboard-widget-config"

可选,您还可以使用以下命令发布翻译

php artisan vendor:publish --tag="filament-pirsch-dashboard-widget-translations"

这是已发布配置文件的内容

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,
];

使用方法

创建自己的仪表板文件

Filament/Pages/下创建一个名为Dashboard.php的新文件,内容如下

<?php

namespace App\Filament\Pages;

use Devlogx\FilamentPirsch\Concerns\HasFilter;

class Dashboard extends \Filament\Pages\Dashboard
{
    use HasFilter;
    
}

从您的PanelProvider中删除默认仪表板

->pages([
    //Pages\Dashboard::class,
])

或者,如果您已经有自定义仪表板,请将HasFilter特质添加到您的仪表板文件中。

将小部件添加到您的PanelProvider中

->widgets([
    Widgets\AccountWidget::class,
    Widgets\FilamentInfoWidget::class,
    \Devlogx\FilamentPirsch\Widgets\PirschStatsWidget::class,// <-- add this widget
])

将插件添加到您的PanelProvider中

->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);

测试

composer test

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全漏洞

有关报告安全漏洞的详细信息,请参阅我们的安全策略

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件