awcodes/filament-addons

一组组件/字段,用于扩展 Filament 管理界面。

v0.3.15 2024-02-02 15:27 UTC

This package is auto-updated.

Last update: 2024-08-31 00:33:30 UTC


README

一组组件、字段和布局,用于扩展 Filament 管理界面。

安装

composer require awcodes/filament-addons

(可选)发布配置文件

php artisan vendor:publish --tag=filament-addons-config

主题

如果你正在使用 Filament 的自定义主题,你需要将此插件的视图添加到 Tailwind CSS 配置中。完成此操作后,你可以在配置文件中将插件的样式表禁用,通过将 'load_styles' 更改为 false。

content: [
    ...
    "./vendor/awcodes/filament-addons/resources/views/**/*.blade.php",
],

管理界面

固定侧边栏布局

直接从你的模型资源中的表单函数返回它。

use FilamentAddons\Admin\FixedSidebar;

public static function form(Form $form): Form
{
    return FixedSidebar::make()
        ->schema([
            // Main section form components
        ], [
            // Sidebar form components
        ]);
}

表单

日期输入

date input

use FilamentAddons\Forms\Fields\DateInput;

DateInput::make(string $fieldname)
    ->label('Publish Date')
    ->withoutTime() //optional

密码生成器

password generator

所有从 TextInput 可用的方法。

use FilamentAddons\Forms\Fields\PasswordGenerator;

PasswordGenerator::make(string $fieldname)
    ->passwordLength(int $length = 12)
    ->hasNumbers(bool $hasNumbers = true)
    ->hasSymbols(bool $hasSymbols = true)

带路径的标题

title with slug title with slug open

创建一个可以在创建后修改路径的 TextInput,但在编辑时保留路径以帮助 SEO。

use FilamentAddons\Forms\Components\TitleWithSlug;

TitleWithSlug::make(
    string $titleFieldName = 'title',
    string $slugFieldName = 'slug',
    string|Closure $basePathForResource = '/'
)->columnSpan('full')

时间戳

输出创建时间和更新时间信息块。

use FilamentAddons\Forms\Components\Timestamps;

Timestamps::make()

分隔符

仅输出一个合理的 hr 以帮助分隔组件。

use FilamentAddons\Forms\Components\Separator;

Separator::make()

标题

use FilamentAddons\Forms\Components\Heading;

Heading::make('whatevs')->level('h3')->content('This is a test')

视频嵌入

video-embed

允许嵌入代码并预览。此字段不会清理你的值。你负责净化任何原始 html 输入或输出。

支持大多数 Textarea 字段选项。

use FilamentAddons\Forms\Fields\VideoEmbed;

VideoEmbed::make(string $fieldname)
    ->label('label')
    ->rows()

oEmbed

video-embed

允许嵌入带有预览的视频。

目前仅支持 YouTube 和 Vimeo。

use FilamentAddons\Forms\Components\OEmbed;

OEmbed::make(string $fieldname)

表格

带状态指示器的标题

title with status

use FilamentAddons\Tables\Columns\TitleWithStatus;

TitleWithStatus::make(string $fieldname = 'title')
    ->statusField(string $fieldname = 'status') // optional
    ->statuses(array | Arrayable (Enum) Status::class)
    ->colors(array | Arrayable (Enum) Status::colors())
    ->hiddenOn(string | null Status::Published->name) //optional