hugomyb / filament-media-action
自动显示您的媒体内容(视频、音频、文档、图片等)并执行操作
v3.1.0.8
2024-09-25 09:09 UTC
Requires
- php: ^8.1
- filament/filament: ^3.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
README
在 Filament 中自动显示您的媒体内容(视频、音频、PDF、图片等)并执行操作。该包自动检测媒体扩展以显示正确的播放器。
示例
安装
您可以通过 composer 安装该包
composer require hugomyb/filament-media-action
可选,您可以使用以下命令发布视图
php artisan vendor:publish --tag="filament-media-action-views"
可选,您可以使用以下命令发布翻译
php artisan vendor:publish --tag="filament-media-action-translations"
使用方法
基本使用
类似于经典的 Filament Action,您可以在任何地方使用 MediaAction(表单、表格、信息列表、后缀和前缀等)。
只需在 ->media()
方法中提供您的媒体 URL。然后该包将自动检测您的媒体扩展以显示。
MediaAction::make('tutorial') ->iconButton() ->icon('heroicon-o-video-camera') ->media('https://www.youtube.com/watch?v=rN9XI9KCz0c&list=PL6tf8fRbavl3jfL67gVOE9rF0jG5bNTMi')
可用选项
自动播放
您可以通过使用 ->autoplay()
方法启用视频和音频的自动播放。
MediaAction::make('media-url') ->media(fn($record) => $record->url) ->autoplay()
您还可以在方法中传递一个闭包,并访问 $record
和 $mediaType
MediaAction::make('media-url') ->media(fn($record) => $record->url) ->autoplay(fn($record, $mediaType) => $mediaType === 'video')
$mediatype
可以返回 "youtube"、"audio"、"video"、"image" 或 "pdf"。
其他选项
您可以通过与经典操作相同的方式(请参阅 https://filamentphp.com/docs/3.x/actions/modals)自定义模态框。
如果存在现有记录,您可以通过将闭包传递给 ->media()
方法来访问它。
示例
MediaAction::make('media-url') ->modalHeading(fn($record) => $record->name) ->modalFooterActionsAlignment(Alignment::Center) ->media(fn($record) => $record->url) ->extraModalFooterActions([ MediaAction::make('media-video2') ->media('https://www.youtube.com/watch?v=9GBXqWKzfIM&list=PL6tf8fRbavl3jfL67gVOE9rF0jG5bNTMi&index=3') ->extraModalFooterActions([ MediaAction::make('media-video3') ->media('https://www.youtube.com/watch?v=Bvb_vqzhRQs&list=PL6tf8fRbavl3jfL67gVOE9rF0jG5bNTMi&index=5') ]), Tables\Actions\Action::make('open-url') ->label('Open in browser') ->url(fn($record) => $record->url) ->openUrlInNewTab() ->icon('heroicon-o-globe-alt') ])
如上例所示,您可以使用 ->extraModalFooterActions()
方法将 MediaAction 链接起来。
自定义模态视图
您可以通过发布视图来自定义模态视图
php artisan vendor:publish --tag="filament-media-action-views"
然后,在视图中,您可以访问
$mediaType
:获取媒体类型,可以是“youtube”、“audio”、“video”、“image”或“pdf”。$media
:获取媒体 URL
支持媒体扩展
变更日志
有关最近更改的更多信息,请参阅变更日志
贡献
有关详细信息,请参阅贡献指南
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅我们的安全策略
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅许可文件