完整的 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_KEY
新增至.env
來允許從 YouTube 匯入內容
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 ())
您可以透過在 AppServiceProvider boot()
方法上使用 Facade 方法將自訂類型新增至 CMS
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 ' )
]);
}
您可以透過在 AppServiceProvider boot()
方法上使用 Facade 方法來新增更多作者類型
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
您將在Modules
目錄中找到一個帶有自訂module.json
檔案的新模組
頁面建立器可以非常輕鬆地自訂您的頁面並產生自動加載的頁面來使用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
幫助程式來載入頁面並將其傳遞到您的視圖,此方法透過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 ())
現在執行以下命令來安裝shield:
php artisan shield:install
現在我們可以發布包資源了。
php artisan vendor:publish --tag= " filament-users-config "
現在你需要在插件選項中允許它
-> plugin ( TomatoPHP FilamentCms FilamentCMSPlugin :: make ()-> allowShield ())
欲了解更多信息,請查看燈絲屏蔽
有時您需要在帖子中添加一些自訂邏輯,例如發送電子郵件或通知用戶,您可以使用帖子事件來執行此操作,支援的事件是:
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