awcodes / matinee
Filament Panel 和表单构建器使用的 OEmbed 字段。
v1.0.2
2024-07-29 14:09 UTC
Requires
- php: ^8.1
- filament/forms: ^3.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-08-29 14:16:46 UTC
README
OEmbed 和视频字段用于 Filament Panel 和表单构建器
安装
您可以通过 composer 安装此包。
composer require awcodes/matinee
重要
如果您尚未设置自定义主题并且正在使用面板,请首先按照 Filament 文档 中的说明进行操作。以下内容适用于面板包和独立的表单包。
将插件的视图添加到您的 tailwind.config.js
文件中。
content: [ './vendor/awcodes/matinee/resources/views/**/*.blade.php', ]
重新构建您的自定义主题。
npm run build
准备您的模型
Matinee 将其内容作为 JSON 数据存储在您的模型的单列中。因此,在您的模型中将该列转换为数组或 JSON 对象至关重要。
protected $casts = [ 'video' => 'array', // or 'json' ];
使用方法
use Awcodes\Matinee\Matinee; Matinee::make('video')
强制预览显示
use Awcodes\Matinee\Matinee; Matinee::make('video') ->showPreview()
自定义提供者
Matinee 包含 YouTube 和 Vimeo 的提供者,但您可以通过创建一个类并将其传递到字段的 providers
调整器中来添加自己的提供者。
use Awcodes\Matinee\Providers\Concerns\IsMatineeProvider; use Awcodes\Matinee\Providers\Contracts\MatineeProvider; class CustomProvider implements MatineeProvider { use IsMatineeProvider; public function getId(): ?string { return 'custom'; } public function getDomains(): array { return [ 'custom.com', ]; } public function getOptions(): array { return [ 'controls' => 1, 'title' => 0, ]; } public function convertUrl(?array $options = []): string { return 'https://www.custom.com/embed/' . $this->getId() . '?' . http_build_query($options); } }
然后,您可以通过将其传递到字段实例的 providers
调整器或通过服务提供者的 register
方法的 configureUsing()
方法全局传递它来使用它。
use Awcodes\Matinee\Matinee; Matinee::make('video') ->providers([CustomProvider::class])
渲染视频
您可以根据自己的喜好以任何方式渲染视频,但 Matinee 提供了一个用于便利的 blade 组件。
<x-matinee::embed :data="$data" />
存储的数据将具有以下形状
{ "width": "16", "height": "9", "responsive": true, "url": "https:\/\/www.youtube.com\/watch?v=N9qZFD1NkhI", "embed_url": "https:\/\/www.youtube.com\/embed\/N9qZFD1NkhI?controls=1&start=0", "options": { "controls": "1", "nocookie": "0", "start": "00:00:00" } }
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
有关如何报告安全漏洞,请参阅 我们的安全策略。
鸣谢
许可协议
MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件。