Verwalten Sie Ihre Mediendateien mithilfe der Spatie-Medienbibliothek mit benutzerfreundlicher GUI für FilamentPHP
composer require tomatophp/filament-media-manager
Jetzt müssen Sie die Medienmigration veröffentlichen
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
Führen Sie nach der Installation Ihres Pakets bitte diesen Befehl aus
php artisan filament-media-manager:install
Registrieren Sie das Plugin schließlich unter /app/Providers/Filament/AdminPanelProvider.php
, wenn Sie GUI und Ordnerbrowser verwenden möchten.
-> plugin ( TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ())
->schema()
hochSie können den Medienmanager verwenden, indem Sie diesen Code zu Ihrer Filamentkomponente hinzufügen
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 ),
]),
]);
}
Sie können dem ausgewählten Typ im Medienmanager eine benutzerdefinierte Vorschau hinzufügen, indem Sie diesen Code zu Ihrem Anbieter hinzufügen
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 ' ),
]);
}
In Ihrer Ansichtsdatei können Sie es so verwenden
4 ">
Sie können eine globale js
oder css
Datei an den Medienmanager anhängen, indem Sie diesen Code zu Ihrem Anbieter hinzufügen
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 ' ),
]);
}
Bitte beachten Sie, dass der name
der Komponente mit dem Namen der Sammlung identisch ist.
Sie können das Erstellen und Verwalten von Unterordnern in Ihrem Medienmanager unter /app/Providers/Filament/AdminPanelProvider.php
zulassen
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowSubFolders ()
)
Jetzt können Sie Benutzern den Zugriff auf den ausgewählten Ordner erlauben und den Zugriff der Benutzer auf andere Ordner unterbinden, wenn der Ordner unter /app/Providers/Filament/AdminPanelProvider.php
nicht öffentlich ist
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowUserAccess ()
)
Jetzt können Sie in Ihrem Benutzermodell diese Eigenschaft verwenden, um dem Benutzer den Zugriff auf den ausgewählten Ordner zu ermöglichen
use TomatoPHP FilamentMediaManager Traits InteractsWithMediaFolders ;
class User extends Authenticatable
{
use InteractsWithMediaFolders ;
}
HINWEIS: Vergessen Sie nicht, nach der Aktualisierung des Plugins zu migrieren
Jetzt können Sie über die API auf Ihre Medien und Ordner zugreifen und haben zwei Endpunkte
/api/folders
um alle Ordner abzurufen/api/folders/{id}
um Ordner nach ID mit Unterordnern und Mediendateien abzurufenUm diese Funktion zu ermöglichen, müssen Sie die Konfigurationsdatei mit diesem Befehl veröffentlichen
php artisan vendor:publish --tag= " filament-media-manager-config "
Dann können Sie api.active
in der Konfigurationsdatei auf true
setzen
' api ' => [
" active " => true ,
],
Mit diesem Befehl können Sie die Konfigurationsdatei veröffentlichen
php artisan vendor:publish --tag= " filament-media-manager-config "
Mit diesem Befehl können Sie die Ansichtsdatei veröffentlichen
php artisan vendor:publish --tag= " filament-media-manager-views "
Mit diesem Befehl können Sie die Sprachdatei veröffentlichen
php artisan vendor:publish --tag= " filament-media-manager-lang "
Mit diesem Befehl können Sie die Migrationsdatei veröffentlichen
php artisan vendor:publish --tag= " filament-media-manager-migrations "
Testen Sie unser Awesome TomatoPHP