قم بإدارة ملفات الوسائط الخاصة بك باستخدام مكتبة الوسائط spatie مع واجهة المستخدم الرسومية سهلة الاستخدام لـ 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
، إذا كنت ترغب في استخدام واجهة المستخدم الرسومية ومتصفح المجلدات.
-> 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 ">
يمكنك إرفاق ملف js
أو css
عالمي بمدير الوسائط عن طريق إضافة هذا الرمز إلى المزود الخاص بك
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) لديك نقطتي نهاية
/api/folders
للحصول على كافة المجلدات/api/folders/{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 الرائع الخاص بنا