hugomyb/filament-media-action

自动显示您的媒体内容(视频、音频、文档、图片等)并执行操作

v3.1.0.8 2024-09-25 09:09 UTC

This package is auto-updated.

Last update: 2024-09-27 13:22:10 UTC


README

Latest Version on Packagist Total Downloads

在 Filament 中自动显示您的媒体内容(视频、音频、PDF、图片等)并执行操作。该包自动检测媒体扩展以显示正确的播放器。

示例

example1 example2 example3 example4 example5 example6 example7

安装

您可以通过 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)。有关更多信息,请参阅许可文件