Gerencie seus arquivos de mídia usando a biblioteca de mídia spatie com GUI fácil de usar para FilamentPHP
composer require tomatophp/filament-media-manager
agora você precisa publicar a migração de mídia
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
depois de instalar seu pacote, execute este comando
php artisan filament-media-manager:install
finalmente registre o plugin em /app/Providers/Filament/AdminPanelProvider.php
, se você gosta de usar GUI e navegador de pastas.
-> plugin ( TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ())
->schema()
você pode usar o gerenciador de mídia adicionando este código ao seu componente de filamento
use TomatoPHP FilamentMediaManager Form MediaManagerInput ;
public function form ( Form $ form )
{
return $ form -> schema ([
MediaManagerInput :: make ( ' images ' )
-> disk ( ' public ' )
-> schema ([
Forms Components TextInput :: make ( ' title ' )
-> required ()
-> maxLength ( 255 ),
Forms Components TextInput :: make ( ' description ' )
-> required ()
-> maxLength ( 255 ),
]),
]);
}
você pode adicionar uma visualização personalizada ao tipo selecionado no gerenciador de mídia adicionando este código ao seu provedor
use TomatoPHP FilamentMediaManager Facade FilamentMediaManager ;
use TomatoPHP FilamentMediaManager Services Contracts MediaManagerType ;
public function boot () {
FilamentMediaManager :: register ([
MediaManagerType :: make ( ' .pdf ' )
-> icon ( ' bxs-file-pdf ' )
-> preview ( ' media-manager.pdf ' ),
]);
}
no seu arquivo de visualização você pode usá-lo assim
4 ">
você pode anexar um arquivo js
ou css
global ao gerenciador de mídia adicionando este código ao seu provedor
use TomatoPHP FilamentMediaManager Facade FilamentMediaManager ;
use TomatoPHP FilamentMediaManager Services Contracts MediaManagerType ;
public function boot() {
FilamentMediaManager ::register([
MediaManagerType :: make ( ' .pdf ' )
-> js ( ' https://mozilla.github.io/pdf.js/build/pdf.mjs ' ),
-> css ( ' https://cdnjs.cloudflare.com/ajax/libs/pdf.js/4.3.136/pdf_viewer.min.css ' ),
-> icon ( ' bxs-file-pdf ' )
-> preview ( ' media-manager.pdf ' ),
]);
}
observe que o name
do componente será o mesmo nome da coleção.
você pode permitir a criação e gerenciamento de subpastas em seu gerenciador de mídia em /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowSubFolders ()
)
agora você pode permitir que o usuário acesse a pasta selecionada e restringir o usuário para acessar as pastas uns dos outros se a pasta não for pública em /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowUserAccess ()
)
agora no seu modelo de usuário você pode usar esta característica para permitir que o usuário acesse a pasta selecionada
use TomatoPHP FilamentMediaManager Traits InteractsWithMediaFolders ;
class User extends Authenticatable
{
use InteractsWithMediaFolders ;
}
NOTA não se esqueça de migrar após atualizar o plugin
agora você pode acessar sua mídia e pastas usando API, você tem 2 endpoints
/api/folders
para obter todas as pastas/api/folders/{id}
para obter pasta por id com subpastas e arquivos de mídiapara permitir este recurso você precisa publicar o arquivo de configuração usando este comando
php artisan vendor:publish --tag= " filament-media-manager-config "
então você pode definir api.active
como true
no arquivo de configuração
' api ' => [
" active " => true ,
],
você pode publicar o arquivo de configuração usando este comando
php artisan vendor:publish --tag= " filament-media-manager-config "
você pode publicar o arquivo de visualizações usando este comando
php artisan vendor:publish --tag= " filament-media-manager-views "
você pode publicar o arquivo de idiomas usando este comando
php artisan vendor:publish --tag= " filament-media-manager-lang "
você pode publicar o arquivo de migração usando este comando
php artisan vendor:publish --tag= " filament-media-manager-migrations "
Confira nosso incrível TomatoPHP