จัดการไฟล์สื่อของคุณโดยใช้ไลบรารีสื่อ spatie พร้อม GUI ที่ใช้งานง่ายสำหรับ FilamentPHP
composer require tomatophp/filament-media-manager
ตอนนี้คุณต้องเผยแพร่การโยกย้ายสื่อ
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
หลังจากติดตั้งแพ็คเกจของคุณแล้ว โปรดรันคำสั่งนี้
php artisan filament-media-manager:install
ในที่สุดก็ลงทะเบียนปลั๊กอินบน /app/Providers/Filament/AdminPanelProvider.php
หากคุณต้องการใช้ GUI และ Folder Browser
-> plugin ( TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ())
->schema()
คุณสามารถใช้ตัวจัดการสื่อได้โดยเพิ่มโค้ดนี้ลงในส่วนประกอบเส้นใยของคุณ
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 ),
]),
]);
}
คุณสามารถเพิ่มการแสดงตัวอย่างแบบกำหนดเองให้กับประเภทที่เลือกในตัวจัดการสื่อโดยเพิ่มรหัสนี้ให้กับผู้ให้บริการของคุณ
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 ' ),
]);
}
ในไฟล์มุมมองของคุณคุณสามารถใช้มันเช่นนี้
4 ">
คุณสามารถแนบไฟล์ global js
หรือ css
ให้กับ Media Manager ได้โดยเพิ่มโค้ดนี้ให้กับผู้ให้บริการของคุณ
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 ' ),
]);
}
โปรดทราบว่า name
ของส่วนประกอบจะเป็นชื่อเดียวกันกับคอลเลกชัน
คุณสามารถอนุญาตให้สร้างและจัดการโฟลเดอร์ย่อยในตัวจัดการสื่อของคุณได้ที่ /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowSubFolders ()
)
ตอนนี้คุณสามารถอนุญาตให้ผู้ใช้เข้าถึงโฟลเดอร์ที่เลือกและถอนผู้ใช้ให้เข้าถึงโฟลเดอร์อื่น ๆ ได้หากโฟลเดอร์นั้นไม่เป็นสาธารณะใน /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowUserAccess ()
)
ตอนนี้ในรุ่นผู้ใช้ของคุณคุณสามารถใช้คุณสมบัตินี้เพื่อให้ผู้ใช้สามารถเข้าถึงโฟลเดอร์ที่เลือกได้
use TomatoPHP FilamentMediaManager Traits InteractsWithMediaFolders ;
class User extends Authenticatable
{
use InteractsWithMediaFolders ;
}
หมายเหตุ อย่าลืมย้ายหลังจากอัปเดตปลั๊กอิน
ตอนนี้คุณสามารถเข้าถึงสื่อและโฟลเดอร์ของคุณโดยใช้ API คุณมี 2 จุดสิ้นสุด
/api/folders
เพื่อรับโฟลเดอร์ทั้งหมด/api/folders/{id}
เพื่อรับโฟลเดอร์ตาม id พร้อมโฟลเดอร์ย่อยและไฟล์มีเดียเพื่ออนุญาตคุณสมบัตินี้ คุณต้องเผยแพร่ไฟล์กำหนดค่าโดยใช้คำสั่งนี้
php artisan vendor:publish --tag= " filament-media-manager-config "
จากนั้นคุณสามารถตั้ง api.active
เป็น true
ในไฟล์ปรับแต่งได้
' api ' => [
" active " => true ,
],
คุณสามารถเผยแพร่ไฟล์ปรับแต่งได้โดยใช้คำสั่งนี้
php artisan vendor:publish --tag= " filament-media-manager-config "
คุณสามารถเผยแพร่ไฟล์มุมมองได้โดยใช้คำสั่งนี้
php artisan vendor:publish --tag= " filament-media-manager-views "
คุณสามารถเผยแพร่ไฟล์ภาษาได้โดยใช้คำสั่งนี้
php artisan vendor:publish --tag= " filament-media-manager-lang "
คุณสามารถเผยแพร่ไฟล์การโยกย้ายได้โดยใช้คำสั่งนี้
php artisan vendor:publish --tag= " filament-media-manager-migrations "
ชำระเงิน TomatoPHP ที่ยอดเยี่ยมของเรา