devaslanphp / filament-avatar
为您的 Filament 项目提供完整且可定制的用户头像提供者,同时也适用于任何使用用户模型的任何项目。
1.0.0
2022-09-20 13:56 UTC
Requires
- php: ^8.0
- spatie/laravel-package-tools: ^1.9
This package is auto-updated.
Last update: 2024-09-13 17:21:35 UTC
README
此包为您的 Filament 项目以及任何使用用户模型的项目提供了一个完整且可定制的用户头像提供者。
目前实现的头像提供者包括:
安装
您可以通过 composer 安装此包
composer require devaslanphp/filament-avatar
可选:您可以选择发布包配置文件
php artisan vendor:publish --tag=filament-avatar-config
安装包后,您需要做的唯一一件事就是将 filament 的 default_avatar_provider
配置更改为使用 FilamentUserAvatarProvider
头像提供者
// ... 'default_avatar_provider' => \Devaslanphp\FilamentAvatar\Core\FilamentUserAvatarProvider::class, // ...
完成,Filament 现在将使用此包提供的头像提供者。
配置
此包的配置文件如下:
<?php return [ /* |-------------------------------------------------------------------------- | DEFAULT PROVIDER |-------------------------------------------------------------------------- | | This value is the provider to use when generating the user's avatar url | */ 'default_provider' => 'ui-avatar', /* |-------------------------------------------------------------------------- | PROVIDERS |-------------------------------------------------------------------------- | | This value is the definition of the different avatar providers | */ 'providers' => [ // UI Avatar provider (https://ui-avatars.com/) 'ui-avatar' => [ // Class used to generate the user avatar 'class' => \Devaslanphp\FilamentAvatar\Core\UiAvatarsProvider::class, // UI Avatar source url 'url' => 'https://ui-avatars.com/api/', // User's field used to generate avatar 'name_field' => 'name', // Color used in url text color 'text_color' => 'FFFFFF', // Background color used if the 'dynamic_bg_color' flag is false 'bg_color' => '111827', // If 'true' the provider will generate a dynamic 'bg_color' based on user's name 'dynamic_bg_color' => true, // HSL ranges // You can change them as you like to adapt the dynamic background color 'hRange' => [0, 360], 'sRange' => [50, 75], 'lRange' => [25, 60], ], // Gravatar provider (https://gravatar.com) 'gravatar' => [ // Class used to generate the user avatar 'class' => \Devaslanphp\FilamentAvatar\Core\GravatarProvider::class, // Gravatar source url 'url' => 'https://www.gravatar.com/avatar/', // User's field used to generate avatar 'name_field' => 'email' ], ], ];
我认为它有很好的文档,我将让您自己检查。
自定义提供者
如果您想添加您定制的头像提供者,请按照以下步骤操作:
- 创建一个实现函数
get(Model $user): string
的 PHP 类(您可以检查\Devaslanphp\FilamentAvatar\Core\GravatarProvider
) - 将新的提供者添加到
config('filament-avatar.providers')
,在class
参数中放置您的自定义类(您可以检查配置文件以进行相同的操作) - 更新
config('filament.default_avatar_provider')
为您的提供者名称
提示
此包也可以在 Filament 之外使用,您可以将 Devaslanphp\FilamentAvatar\Core\HasAvatarUrl
特性添加到您的用户模型中。
此特性将为您提供访问由头像提供者生成的附加属性 avatarUrl
的权限,然后您可以使用它作为图像的 src
。
支持
为了快速支持,请加入 Filament 社区 的 discord,并在该频道 #avatar-provider 中给我发消息
鸣谢
许可
MIT 许可证(MIT)。请参阅 许可文件 以获取更多信息。