filament cms

网站数据 2025-08-12

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

下载源码

通过命令行克隆项目:

git clone https://github.com/tomatophp/filament-cms.git