omnia-digital/media-manager

一个媒体管理器,用于将媒体文件上传到多个存储或从Unsplash、URL选择图片

2.0.0 2023-08-12 23:37 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

一个TALL Stack媒体管理器,用于将媒体文件上传到多个存储或从Unsplash、URL选择图片

CleanShot.2022-03-22.at.22.24.51.mp4

安装

您可以通过composer安装此包

composer require omnia-digital/media-manager

tailwind.config.js 中添加Tailwind CSS类

module.exports = {
    content: [
        ...
        './vendor/omnia-digital/media-manager/resources/views/**/*.blade.php',
    ]
};

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="media-manager-config"

这是发布配置文件的内容

return [
    'storage'    => [
        'disk' => 'public'
    ],

    'image' => [
        'allowed_file_types' => ['png', 'jpg', 'jpeg', 'gif'],

        /*
         * Max file size in KB.
         */
        'max_file_size'      => 5000,
    ],

    'unsplash' => [
        'access_key' => env('UNSPLASH_ACCESS_KEY'),

        'utm_source' => env('APP_NAME')
    ]
];

可选地,您可以使用以下方式发布视图

php artisan vendor:publish --tag="media-manager-views"

如何打开媒体管理器模态框

通过Alpinejs

this.$wire.dispatchTo(
    'media-manager',
    'media-manager:show',
    {
        id: 'featured-image',
        file: null,
        metadata: null
    }
);

从Livewire组件

use Omnia\MediaManager\WithMediaManager;

...

public function showUploader()
{
    $this->showFileManager('featured-image', $file, $metadata);
}

您可以将文件URL作为第二个参数传递,这样媒体管理器将默认显示该文件。

从媒体管理器中删除文件

use Omnia\MediaManager\WithMediaManager;

...

public function removeFeaturedImage()
{
    $this->image = null;

    $this->removeFileFromMediaManager();
}

事件

文件选中

当选中媒体文件时,它将触发一个名为 media-manager:file-selected 的事件

您可以使用AlpineJS来监听该事件,如下所示

x-on:media-manager:file-selected.window="setImage"

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

致谢

许可

MIT许可(MIT)。请参阅 许可文件 了解更多信息。