نظام CMS كامل مع منشئ الصفحات ومدير السمات سهل الاستخدام لـ FilamentPHP
composer require tomatophp/filament-cms
بعد تثبيت الحزمة الخاصة بك يرجى تشغيل هذا الأمر
ملاحظة: إذا كنت بحاجة إلى تخصيص بعض الميزات، فيرجى عدم استخدام هذا الأمر واتبع الخطوات التالية لأن هذه الخطوة تعمل على تشغيل الترحيل وتحتاج إلى تكوين مخصص قبل تشغيل الترحيل.
php artisan filament-cms:install
أخيرًا قم بتسجيل المكون الإضافي على /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentCms FilamentCMSPlugin :: make ()
-> useCategory ()
-> usePost ()
-> allowExport ()
-> allowImport ()
)
الآن يرجى نشر وترحيل جدول الوسائط
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
php artisan migrate
يمكنك السماح باستيراد محتوى من youtube عن طريق إضافة YOUTUBE_KEY
إلى .env
الخاص بك
YOUTUBE_KEY = YOUR_YOUTUBE_KEY
الآن على موفر اللوحة /app/Providers/Filament/AdminPanelProvider.php
أضف هذه الطريقة
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowYoutubeImport ())
أولا وقبل كل شيء تحتاج إلى تثبيت dusk
كحزمة رئيسية للسماح بهذه الميزة
composer require laravel/dusk
الآن قم بتثبيت برنامج تشغيل الغسق
php artisan dusk:install
أنت الآن بحاجة إلى السماح باستيراد behanace على موفر اللوحة الخاص بك /app/Providers/Filament/AdminPanelProvider.php
أضف هذه الطريقة
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowBehanceImport ())
يمكنك إضافة نوع مخصص إلى نظام إدارة المحتوى (CMS) باستخدام طريقة الواجهة في طريقة boot()
الخاصة بـ AppServiceProvider
use TomatoPHP FilamentCms Facades FilamentCMS ;
use TomatoPHP FilamentCms Services Contracts CmsType ;
public function boot ()
{
FilamentCMS :: types ()-> register ([
CmsType :: make ( ' building ' )
-> label ( ' Buildings ' )
-> icon ( ' heroicon-o-home ' )
-> color ( ' danger ' )
]);
}
يمكنك إضافة المزيد من أنواع المؤلفين باستخدام طريقة Facade في طريقة boot()
الخاصة بـ AppServiceProvider
use TomatoPHP FilamentCms Facades FilamentCMS ;
use TomatoPHP FilamentCms Services Contracts CmsAuthor ;
public function boot ()
{
FilamentCMS :: authors ()-> register ([
CmsAuthor :: make ( ' Admin ' )
-> model ( App Models User ::class)
]);
}
تم إنشاء مدير السمات باستخدام وحدات Laravel لذا عليك تثبيته أولاً
ملاحظة: إذا كنت تقوم بتثبيت tomatophp/filament-plugins
فلن تحتاج إلى تثبيت nwidart/laravel-modules
لأنها مثبتة بالفعل
composer require nwidart/laravel-modules
الآن على composer.json
الخاص بك، أضف إلى التحميل التلقائي psr-4
{
"autoload" : {
"psr-4" : {
"App \ " : " app/ " ,
"Modules \ " : " Modules/ "
}
}
}
الآن قم بتشغيل هذا الأمر لتحميل السمات تلقائيًا
composer dump-autoload
وتحتاج إلى حزمة أخرى للتخزين المؤقت وإرجاع السمات كنموذج نستخدمه في حزمة sushi
composer require calebporzio/sushi
الآن على filament-cms
return [
/*
* ---------------------------------------------------
* Allow Features
* ---------------------------------------------------
*/
" features " => [
" theme-manager " => true ,
],
];
أنت الآن بحاجة إلى تنشيط جدول الإعدادات
php artisan vendor:publish --provider= " SpatieLaravelSettingsLaravelSettingsServiceProvider " --tag= " migrations "
php artisan migrate
يمكنك الآن استخدام مدير السمات لإدارة سمات الواجهة الأمامية المتعددة في تطبيقك، على موفر اللوحة /app/Providers/Filament/AdminPanelProvider.php
أضف هذه الطريقة
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> useThemeManager ())
يمكنك الآن الوصول إلى /admin/themes
لإدارة السمات الخاصة بك ويمكنك إنشاء سمة جديدة باستخدام سطر الأوامر هذا
php artisan filament-cms:theme
ستجد وحدة نمطية جديدة تحتوي على ملف module.json
مخصص في دليل Modules
الخاص بك
تجعل أداة إنشاء الصفحات من السهل جدًا تخصيص صفحتك وإنشاء صفحات محملة تلقائيًا لإنشاء موقع الويب الخاص بك باستخدام Sections
لبدء استخدامها، تحتاج إلى إضافة هذه الطريقة على موفر اللوحة /app/Providers/Filament/AdminPanelProvider.php
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> usePageBuilder ())
أول شيء تحتاج إليه هو إنشاء قسم في طريقة boot()
الخاصة بـ AppServiceProvider
use TomatoPHP FilamentCms Services Contracts Section ;
use TomatoPHP FilamentCms Facades FilamentCMS ;
use Filament Forms Components TextInput ;
FilamentCMS :: themes ()-> register ([
Section :: make ( ' hero ' )
-> label ( ' Hero Section ' )
-> view ( ' sections.pages.hero ' )
-> form ([
TextInput :: make ( ' title ' )
-> label ( ' title ' ),
TextInput :: make ( ' description ' )
-> label ( ' description ' ),
TextInput :: make ( ' url ' )
-> url ()
-> label ( ' url ' ),
TextInput :: make ( ' button ' )
-> label ( ' button ' ),
])
]);
ملاحظة: يجب أن يكون مفتاح القسم فريدًا
بعد تسجيل القسم الخاص بك، يمكنك البدء في استخدام أداة إنشاء الصفحات، وستحتاج إلى إنشاء مسار جديد لصفحتك مثل هذا
use Illuminate Support Facades Route ;
Route :: get ( ' / ' , function () {
$ page = load_page ( ' / ' );
return view ( ' welcome ' , compact ( ' page ' ));
});
كما ترى، فأنت بحاجة إلى استخدام مساعد load_page
لتحميل صفحتك وتمريرها إلى العرض الخاص بك، وهذه الطريقة تتحقق مما إذا كانت الصفحة موجودة عن طريق slug
وإرجاع بيانات الصفحة إذا لم تكن الصفحة موجودة أو تم حذفها، فستقوم باستعادتها أو إنشائها أنت
في ملف welcome.blade.php
الخاص بك، تحتاج إلى استخدام مكون النصل هذا
< x-tomato-builder-toolbar :page =" $page " allow-layout />
إذا كنت بحاجة إلى استخدام Filament Layout لتسهيل تنشيط Livewire / Tailwind Style، فاستخدم سمة allow-layout
إذا كنت تريد استخدامه دون أي نمط، فيمكنك استخدامه بدون هذه السمة
الآن إذا قمت بفتح صفحتك ستجد عرض المنشئ مثل هذا
يمكنك إضافة المزيد من الحقول إلى منشئ النماذج باستخدام هذه الطريقة على المزود الخاص بك.
use TomatoPHP FilamentCms Services FilamentCMSFormFields ;
use TomatoPHP FilamentCms Services Contracts CmsFormFieldType ;
FilamentCMSFormFields :: register ([
CmsFormFieldType :: make ( ' code ' )
-> className ( CodeEditor ::class)
-> color ( ' warning ' )
-> icon ( ' heroicon-s-code-bracket-square ' )
-> label ( ' Code Editor ' ),
]);
بعد إنشاء النموذج الخاص بك، يمكنك استخدامه عن طريق key
مثل هذا
use TomatoPHP FilamentCms Services FilamentCMSFormBuilder ;
FilamentCMSFormBuilder :: make ( ' xvssd ' )-> build ()
يمكنك استخدام طلبات النموذج لإرسال بيانات النموذج الخاص بك باستخدام هذه الطريقة على المزود الخاص بك.
use TomatoPHP FilamentCms Services FilamentCMSFormBuilder ;
FilamentCMSFormBuilder :: make ( ' xvssd ' )-> send ( $ data )
يمكنك استخدام الدرع لحماية مواردك والسماح بأدوار المستخدم عن طريق تثبيته أولاً
composer require bezhansalleh/filament-shield
قم بإضافة سمة SpatiePermissionTraitsHasRoles إلى نموذج (نماذج) المستخدم الخاص بك:
use Illuminate Foundation Auth User as Authenticatable ;
use Spatie Permission Traits HasRoles ;
class User extends Authenticatable
{
use HasRoles ;
// ...
}
انشر ملف التكوين ثم قم بإعداد التكوين الخاص بك:
-> plugin ( BezhanSalleh FilamentShield FilamentShieldPlugin :: make ())
الآن قم بتشغيل الأمر التالي لتثبيت الدرع:
php artisan shield:install
الآن يمكننا نشر أصول الحزمة.
php artisan vendor:publish --tag= " filament-users-config "
الآن أنت بحاجة إلى السماح بذلك في خيارات البرنامج المساعد
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowShield ())
لمزيد من المعلومات، تحقق من Filament Shield
في بعض الأحيان تحتاج إلى إضافة بعض المنطق المخصص لمنشورك مثل إرسال بريد إلكتروني أو إعلام المستخدم، ويمكنك استخدام أحداث المنشور للقيام بذلك، والأحداث المدعومة هي:
TomatoPHP FilamentCms Events PostCreated ::class
TomatoPHP FilamentCms Events PostUpdated ::class
TomatoPHP FilamentCms Events PostDeleted ::class
يمكنك نشر ملف التكوين باستخدام هذا الأمر
php artisan vendor:publish --tag= " filament-cms-config "
يمكنك نشر ملف المشاهدات باستخدام هذا الأمر
php artisan vendor:publish --tag= " filament-cms-views "
يمكنك نشر ملف اللغات باستخدام هذا الأمر
php artisan vendor:publish --tag= " filament-cms-lang "
يمكنك نشر ملف الترحيل باستخدام هذا الأمر
php artisan vendor:publish --tag= " filament-cms-migrations "
تحقق من TomatoPHP الرائع الخاص بنا