outl1ne / nova-media-hub
用于管理媒体内容的Laravel Nova工具。
2.1.0
2024-09-09 10:21 UTC
Requires
- php: >=8.0
- laravel/nova: ^4.29.8
- outl1ne/nova-translatable: ^2.2
- outl1ne/nova-translations-loader: ^5.0
- spatie/image: ^3.0
- spatie/image-optimizer: ^1.7
- dev-main
- 2.1.0
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.8.1
- 1.8.0
- 1.7.6
- 1.7.5
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.1
- 1.3.0
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-09-09 10:22:23 UTC
README
这个Laravel Nova包允许您管理媒体和媒体字段。
要求
php: >=8.0
laravel/nova: ^4.0
功能
- 独立的视图中的媒体中心UI
- 用于选择单个/多个媒体的媒体中心字段
- 图像优化和多格式转换支持
- 文件命名和路径定制
- 暗黑模式支持
- 许多配置选项
- 查看配置文件。
屏幕截图
安装
通过Composer在Laravel Nova项目中安装包并运行迁移
# Install nova-media-hub composer require outl1ne/nova-media-hub # Run migrations php artisan migrate
在Nova的tools()
方法中注册该工具
// in app/Providers/NovaServiceProvider.php public function tools() { return [ // ... \Outl1ne\NovaMediaHub\MediaHub::make() // You can choose to hide the Tool from the sidebar ->hideFromMenu() // Optionally add additional fields to Media items ->withCustomFields( ['copyright' => __('Copyright')], overwrite: false ) ]; }
使用方法
字段
此包提供了一个名为MediaHubField
的字段,允许您选择媒体。该字段将媒体以JSON数组的形式存储到数据库中。
示例用法
use Outl1ne\NovaMediaHub\Nova\Fields\MediaHubField; // ... MediaHubField::make('Media', 'media') ->defaultCollection('products') // Define the default collection the "Choose media" modal shows ->multiple(), // Define whether multiple media can be selected
类型转换
模型中的媒体列可以自动转换为媒体模型集合
class Product extends Model { protected $casts = [ 'media' => \Outl1ne\NovaMediaHub\Casts\MediaCast::class, ]; }
$cover = Product::first()->media->first(); // ... $urls = Product::first()->media->pluck('url'); // ... $collection = Product::first()->media->where('collection_name', 'Details');
配置
可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Outl1ne\NovaMediaHub\MediaHubServiceProvider" --tag="config"
自定义优化链
您可以定义一个自定义优化链或向其中添加项目,如下所示
// in app/Providers/AppServiceProvided.php public function register() { // ... // https://github.com/spatie/image-optimizer#creating-your-own-optimization-chains \Outl1ne\NovaMediaHub\MediaHub::withOptimizerChain( (new OptimizerChain) ->addOptimizer(new Jpegoptim([ '--strip-all', '--all-progressive', ])) ->addOptimizer(new Pngquant([ '--force', ])) ); }
本地化
可以使用以下命令发布翻译文件
php artisan vendor:publish --provider="Outl1ne\NovaMediaHub\MediaHubServiceProvider" --tag="translations"
鸣谢
许可证
Nova Media Hub是开源软件,根据MIT许可证授权。