Getting started
Library
Components
Integrations
Principles
A few core principles have guided the development of Filament Media Library Pro.
Customisability
All Filament actions used in the Media Library are defined in their own class. This means you can easily configure any specific action using their configureUsing() method:
use RalphJSmit\Filament\Explore\Filament\Actions;
use RalphJSmit\Filament\MediaLibrary\Filament\Actions as MediaLibraryActions;
Actions\CreateFolderAction::make();
Actions\CreateFolderBulkAction::make();
Actions\DeleteAction::make();
Actions\DeleteBulkAction::make();
Actions\DownloadAction::make();
Actions\DuplicateAction::make();
Actions\DuplicateBulkAction::make();
Actions\EditImageAction::make();
Actions\MoveAction::make();
Actions\MoveBulkAction::make();
Actions\PreviewAction::make();
Actions\RenameAction::make();
Actions\ReplaceAction::make();
Actions\SelectFileAction::make();
Actions\UploadAction::make();
Actions\ViewAction::make();
MediaLibraryActions\RegenerateAction::make();
MediaLibraryActions\SelectMediaAction::make();
Which can all be easily customised as such:
CreateFolderAction::configureUsing(function (CreateFolderAction $action) {
$action->label('New directory');
});
Furthermore, it is easy to insert custom actions into all places where actions are supported inside the Media Library.
use Filament\Actions\ActionGroup;
use RalphJSmit\Filament\Explore\Filament\Actions\DeleteAction;
use RalphJSmit\Filament\Explore\Filament\Actions\Action;
$plugin
->fileActions(fn () => [
DeleteAction::make(),
ActionGroup::make([
Action::make('optimize')
->icon(Heroicon::OutlinedSparkles)
->action(function (FileData $file) {
// ...
}),
]),
])
Flexibility (can power every project)
Another core principle that I followed was that the Media Library should be able to power any project. This means projects created from the V1, V2 and V3 of the Media Library with the MediaLibraryItem-structure, projects that already have an existing library of files on a regular Storage-disk, projects that already have an existing library of files on a spatie/media-library-library, or even legacy projects with a wholly different structure.
To learn more about drivers and their details, please read the drivers documentation.