filament cms构建器
完整的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= \" Spatie\\MediaLibrary\\MediaLibraryServiceProvider \" --tag= \" medialibrary-migrations \" php artisan migrate
屏幕截图
特征
- 内容管理器
- 内容评论和评分
- YouTube META集成
- Behanace内容进口商
- GitHub内容进口商
- 内容导入和导出
- 页面构建器
- 主题经理
- 形式构建器
- 票务系统
- REST API
允许从YouTube URL导入
您可以通过在.env中添加YOUTUBE_KEY来允许从YouTube导入内容
YOUTUBE_KEY = YOUR_YOUTUBE_KEY
现在在您的面板提供商/app/Providers/Filament/AdminPanelProvider.php上添加此方法
-> plugin (\\ TomatoPHP \\ FilamentCms \\FilamentCMSPlugin:: make ()-> allowYoutubeImport ())
允许从Behanace URL进口
首先,您需要安装dusk作为主要软件包,以允许此功能
composer require laravel/dusk
现在安装黄昏驱动程序
php artisan dusk:install
现在,您需要允许Behanace在面板提供商/app/Providers/Filament/AdminPanelProvider.php上导入此方法
-> plugin (\\ TomatoPHP \\ FilamentCms \\FilamentCMSPlugin:: make ()-> allowBehanceImport ())
将自定义类型添加到CMS
您可以在AppServiceProvider boot()方法上使用立面方法向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()方法上使用立面方法添加更多作者类型
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上
<?php return [ /* * --------------------------------------------------- * Allow Features * --------------------------------------------------- */ \" features \" => [ \" theme-manager \" => true , ], ];
现在您需要活动表格表
php artisan vendor:publish --provider= \" Spatie\\LaravelSettings\\LaravelSettingsServiceProvider \" --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 />
如果您需要使用灯丝布局来使活跃的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
将spatie \\ wraists \\ traits \\ hasroles特质添加到您的用户模型:
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
