devlogx/filament-pirsch-dashboard-widget
这是我的包 filament-pirsch-dashboard-widget
1.1.1
2024-05-09 16:56 UTC
Requires
- php: ^8.1|^8.2|^8.3
- filament/filament: ^3.0
- malzariey/filament-daterangepicker-filter: ^2.6
- pirsch-analytics/laravel-pirsch: ^0.4.9
- spatie/laravel-package-tools: ^1
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
Filament Pirsch Dashboard Widget
此包允许您将简单的分析仪表板小部件集成到面板中。
屏幕截图
安装
您可以通过composer安装此包
composer require devlogx/filament-pirsch-dashboard-widget
获取Pirsch访问令牌并将其添加到您的env
文件中。
- 访问Pirsch "集成"设置页面。
- 确保在页面的右上角选择了正确的域名。
- 滚动到“客户端”部分并点击“添加客户端”按钮。
- 选择“oAuth (ID + secret)”作为类型并输入描述。
- 点击“创建客户端”按钮并复制生成的“客户端ID和客户端密钥”。
- 将复制的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)。有关更多信息,请参阅许可证文件。