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
通过命令行克隆项目: