FilamentPHP 用の使いやすいページビルダーとテーママネージャーを備えた完全な CMS システム
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
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
Modules
ディレクトリにカスタムmodule.json
ファイルを含む新しいモジュールが見つかります。
ページビルダーを使用すると、ページのカスタマイズと自動ロードされたページの生成が非常に簡単になります。 Sections
を使用して Web サイトを構築するには、パネルプロバイダー/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 />
Livewire / Tailwind スタイルを簡単にアクティブにするためにフィラメント レイアウトを使用する必要がある場合は、 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 トレイトを User モデルに追加します。
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 ())
詳細については、フィラメント シールドを確認してください。
場合によっては、メールの送信やユーザーへの通知など、投稿にカスタム ロジックを追加する必要がある場合があります。これには投稿イベントを使用できます。サポートされているイベントは次のとおりです。
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 をチェックしてください