devaslanphp/filament-avatar

为您的 Filament 项目提供完整且可定制的用户头像提供者,同时也适用于任何使用用户模型的任何项目。

1.0.0 2022-09-20 13:56 UTC

This package is auto-updated.

Last update: 2024-09-13 17:21:35 UTC


README

Latest Version on Packagist Total Downloads

此包为您的 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'
        ],
    ],

];

我认为它有很好的文档,我将让您自己检查。

自定义提供者

如果您想添加您定制的头像提供者,请按照以下步骤操作:

  1. 创建一个实现函数 get(Model $user): string 的 PHP 类(您可以检查 \Devaslanphp\FilamentAvatar\Core\GravatarProvider
  2. 将新的提供者添加到 config('filament-avatar.providers'),在 class 参数中放置您的自定义类(您可以检查配置文件以进行相同的操作)
  3. 更新 config('filament.default_avatar_provider') 为您的提供者名称

就这样

提示

此包也可以在 Filament 之外使用,您可以将 Devaslanphp\FilamentAvatar\Core\HasAvatarUrl 特性添加到您的用户模型中。

此特性将为您提供访问由头像提供者生成的附加属性 avatarUrl 的权限,然后您可以使用它作为图像的 src

支持

为了快速支持,请加入 Filament 社区 的 discord,并在该频道 #avatar-provider 中给我发消息

鸣谢

许可

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