ระบบ 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 ได้โดยใช้วิธี Facade ในวิธี AppServiceProvider boot()
ของคุณ
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 ในวิธี AppServiceProvider boot()
ของคุณ
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
{
"autoload" : {
"psr-4" : {
"App \ " : " app/ " ,
"Modules \ " : " Modules/ "
}
}
}
ตอนนี้รันคำสั่งนี้เพื่อโหลดธีมอัตโนมัติ
composer dump-autoload
และคุณต้องการแพ็คเกจอื่นสำหรับการแคชและส่งคืนธีมตามแบบจำลองที่เราใช้แพ็คเกจ sushi
composer require calebporzio/sushi
ตอนนี้อยู่ใน config 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 ())
สิ่งแรกที่คุณต้องสร้างส่วนในเมธอด AppServiceProvider boot()
ของคุณ
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
helper เพื่อโหลดเพจของคุณและส่งต่อไปยังมุมมองของคุณ วิธีนี้จะตรวจสอบว่าเพจนั้นมีอยู่โดย 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 ที่ยอดเยี่ยมของเรา