Administre sus archivos multimedia utilizando la biblioteca multimedia spatie con una GUI fácil de usar para FilamentPHP
composer require tomatophp/filament-media-manager
ahora necesitas publicar la migración de medios
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
Después de instalar su paquete, ejecute este comando.
php artisan filament-media-manager:install
finalmente registre el complemento en /app/Providers/Filament/AdminPanelProvider.php
, si desea utilizar la GUI y el explorador de carpetas.
-> plugin ( TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ())
->schema()
Puedes usar el administrador de medios agregando este código a tu 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 ),
]),
]);
}
Puede agregar una vista previa personalizada al tipo seleccionado en el administrador de medios agregando este código a su proveedor.
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 ' ),
]);
}
en tu archivo de vista puedes usarlo así
4 ">
Puede adjuntar un archivo js
o css
global al administrador de medios agregando este código a su proveedor
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 ' ),
]);
}
tenga en cuenta que el name
del componente será el mismo nombre de la colección.
puede permitir la creación y administración de subcarpetas en su administrador de medios en /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowSubFolders ()
)
ahora puede permitir que el usuario acceda a la carpeta seleccionada y restringir el acceso entre sí a las carpetas si la carpeta no es pública en /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowUserAccess ()
)
ahora en su modelo de usuario puede usar este rasgo para permitir que el usuario acceda a la carpeta seleccionada
use TomatoPHP FilamentMediaManager Traits InteractsWithMediaFolders ;
class User extends Authenticatable
{
use InteractsWithMediaFolders ;
}
NOTA, no olvide migrar después de actualizar el complemento.
ahora puede acceder a sus medios y carpetas usando API, tiene 2 puntos finales
/api/folders
para obtener todas las carpetas/api/folders/{id}
para obtener carpeta por id con subcarpetas y archivos multimediaPara permitir esta función, debe publicar el archivo de configuración mediante este comando.
php artisan vendor:publish --tag= " filament-media-manager-config "
entonces puedes configurar api.active
en true
en el archivo de configuración
' api ' => [
" active " => true ,
],
puedes publicar el archivo de configuración usando este comando
php artisan vendor:publish --tag= " filament-media-manager-config "
puedes publicar archivos de vistas usando este comando
php artisan vendor:publish --tag= " filament-media-manager-views "
puedes publicar archivos de idiomas usando este comando
php artisan vendor:publish --tag= " filament-media-manager-lang "
puedes publicar el archivo de migraciones usando este comando
php artisan vendor:publish --tag= " filament-media-manager-migrations "
Echa un vistazo a nuestro impresionante TomatoPHP