Gérez vos fichiers multimédias à l'aide de la bibliothèque multimédia Spatie avec une interface graphique facile à utiliser pour FilamentPHP
composer require tomatophp/filament-media-manager
maintenant vous devez publier la migration des médias
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
après avoir installé votre package, veuillez exécuter cette commande
php artisan filament-media-manager:install
enfin, enregistrez le plugin sur /app/Providers/Filament/AdminPanelProvider.php
, si vous aimez utiliser l'interface graphique et le navigateur de dossiers.
-> plugin ( TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ())
->schema()
vous pouvez utiliser le gestionnaire de médias en ajoutant ce code à votre composant filament
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 ),
]),
]);
}
vous pouvez ajouter un aperçu personnalisé au type sélectionné sur le gestionnaire de médias en ajoutant ce code à votre fournisseur
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 ' ),
]);
}
sur votre fichier de vue, vous pouvez l'utiliser comme ceci
4 ">
vous pouvez joindre un fichier js
ou css
global au gestionnaire de médias en ajoutant ce code à votre fournisseur
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 ' ),
]);
}
veuillez noter que le name
du composant sera le même que celui de la collection.
vous pouvez autoriser la création et la gestion de sous-dossiers sur votre gestionnaire de médias sur /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowSubFolders ()
)
vous pouvez désormais autoriser l'utilisateur à accéder au dossier sélectionné et empêcher l'utilisateur d'accéder aux autres dossiers si le dossier n'est pas public sur /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowUserAccess ()
)
maintenant sur votre modèle utilisateur, vous pouvez utiliser ce trait pour permettre à l'utilisateur d'accéder au dossier sélectionné
use TomatoPHP FilamentMediaManager Traits InteractsWithMediaFolders ;
class User extends Authenticatable
{
use InteractsWithMediaFolders ;
}
REMARQUE n'oubliez pas de migrer après la mise à jour du plugin
vous pouvez maintenant accéder à vos médias et dossiers à l'aide de l'API, vous disposez de 2 points de terminaison
/api/folders
pour obtenir tous les dossiers/api/folders/{id}
pour obtenir le dossier par identifiant avec les sous-dossiers et les fichiers multimédiaspour autoriser cette fonctionnalité, vous devez publier le fichier de configuration en utilisant cette commande
php artisan vendor:publish --tag= " filament-media-manager-config "
alors vous pouvez définir api.active
sur true
sur le fichier de configuration
' api ' => [
" active " => true ,
],
vous pouvez publier le fichier de configuration en utilisant cette commande
php artisan vendor:publish --tag= " filament-media-manager-config "
vous pouvez publier un fichier de vues en utilisant cette commande
php artisan vendor:publish --tag= " filament-media-manager-views "
vous pouvez publier le fichier de langues en utilisant cette commande
php artisan vendor:publish --tag= " filament-media-manager-lang "
vous pouvez publier le fichier de migrations en utilisant cette commande
php artisan vendor:publish --tag= " filament-media-manager-migrations "
Découvrez notre génial TomatoPHP