oriondevelops/filament-feedback

用于收集反馈的 Filament 插件。

v0.1.0 2023-11-25 21:06 UTC

This package is auto-updated.

Last update: 2024-09-18 08:32:39 UTC


README

Latest Version on Packagist Total Downloads

这个 Filament 插件是一个简单的向导,用于收集用户反馈并将其转发到指定的电子邮件地址。

安装

您可以通过 composer 安装此包。

composer require oriondevelops/filament-feedback

接下来,请确保您已设置邮件服务

使用方法

您需要将插件注册到您偏好的 Filament 面板提供商。这可以在您的 PanelProvider 内完成,例如 AdminPanelProvider

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use Orion\FilamentFeedback\FeedbackPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FeedbackPlugin::make()
                    ->sendResponsesTo(email: 'oriondevelops@gmail.com')
            );
    }
}

现在,您可以在 Filament 应用中点击“反馈”菜单项来查看反馈插件。

自定义可见性

定义谁可以查看反馈页面。

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use Orion\FilamentFeedback\FeedbackPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FeedbackPlugin::make()
                    ->visible(fn() => auth()->user()->can('view feedback page'))
            );
    }
}

自定义导航项

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use Orion\FilamentFeedback\FeedbackPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FeedbackPlugin::make()
                    ->slug('feedback')
                    ->label('Feedback')
                    ->icon('heroicon-o-face-smile')
                    ->group('Help')
                    ->sort(3),
            );
    }
}

自定义页面

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use Orion\FilamentFeedback\FeedbackPlugin;
use App\Filament\Pages\ExtendedFeedbackPage;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FeedbackPlugin::make()
                    ->page(ExtendedFeedbackPage::class),
            );
    }
}

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

请查看安全策略以了解如何报告安全漏洞。

致谢

许可证

MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。