rupadana/filament-announce

向潜在用户展示您的卓越产品的一个简单方法

3.2.5 2024-06-21 08:58 UTC

README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

在 filament 中发布通知的最简单方法!

安装

您可以通过 composer 安装此包

composer require rupadana/filament-announce
# Laravel 11 and higher
php artisan make:notifications-table

# Laravel 10
php artisan notifications:table

运行迁移

php artisan migrate

可选地,您可以使用

php artisan vendor:publish --tag="filament-announce-views"

发布配置

php artisan vendor:publish --tag="filament-announce-config"
return [
    'navigation' => [
        'group' => '',
        'sort' => 1
    ],
    'can_access' => [
        'role' => ['super_admin']
    ]
];

使用说明

您必须通过将 FilamentAnnouncePlugin 类添加到您的 Filament 面板插件()或plugins([])方法中启用 Announce

use Rupadana\FilamentAnnounce\FilamentAnnouncePlugin;
use Filament\Support\Colors\Color;
class CustomersPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ...
            ->plugin(
                FilamentAnnouncePlugin::make()
                    ->pollingInterval('30s') // optional, by default it is set to null
                    ->defaultColor(Color::Blue) // optional, by default it is set to "primary"

            )
    }
}

要使用您自己的自定义资源覆盖 plugins announcementResource,您应在注册插件时附加 usingResource 方法

use Rupadana\FilamentAnnounce\FilamentAnnouncePlugin;
use Filament\Support\Colors\Color;
class CustomersPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ...
            ->plugin(
                FilamentAnnouncePlugin::make()
                    ->usingResource(MyCustomAnnouncementResource::class)
                    ->pollingInterval('30s') // optional, by default it is set to null
                    ->defaultColor(Color::Blue) // optional, by default it is set to "primary"

            )
    }
}

现在您可以向用户发布任何内容

use App\Models\User;
use Rupadana\FilamentAnnounce\Announce;

Announce::make()
    ->title('Big News!')
    ->icon('heroicon-o-megaphone')
    ->body('Filament can now show very important message to specific users!')
    ->disableCloseButton() // Optional, if you want ur announcement discloseable
    ->announceTo(User::all());

标题和正文对齐

默认情况下,对齐方式将是 start,您可能需要调整它们

use App\Models\User;
use Filament\Support\Enums\Alignment;
use Rupadana\FilamentAnnounce\Announce;

Announce::make()
    ->title('Big News!')
    ->icon('heroicon-o-megaphone')
    ->body('Filament can now show very important message to specific users!')
    ->alignment(Alignment::Center) // this will set both title and body alignments (common alignment)
    ->titleAlignment(Alignment::Start) // this will set title alignment and take precedence over common alignment methods
    ->bodyAlignment(Alignment::Start) // this will set body alignment and take precedence over common alignment methods
    ->actions([
        Action::make('view')
            ->button(),
        Action::make('undo')
            ->color('gray'),
    ])
    ->announceTo(User::all());

您还可以使用 alignStart()alignCenter()alignEnd()alignJustify()alignBetween()alignLeft()alignRight() 以方便您。

向通知添加操作

由于 Announce 扩展了 Filament 通知,您可以将 Filament 通知操作添加到您的通知中

use App\Models\User;
use Rupadana\FilamentAnnounce\Announce;

Announce::make()
    ->title('Big News!')
    ->icon('heroicon-o-megaphone')
    ->body('Filament can now show very important message to specific users!')
    ->actions([
        Action::make('view')
            ->button(),
        Action::make('undo')
            ->color('gray'),
    ])
    ->announceTo(User::all());

有关 通知操作 的更多信息,请参阅。

公告资源

待办事项

  • 可以向每个公告添加操作
  • 提供资源/操作以发送公告
  • 为全局公告添加类似横幅的实现
  • 设置结束日期或时间,以便它将自动消失

测试

composer test

更改日志

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

贡献

有关详细信息,请参阅 贡献

安全漏洞

有关如何报告安全漏洞的更多信息,请参阅 我们的安全策略

鸣谢

许可协议

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