ercos/ercos-cms

基于Laravel和FilamentPHP的CMS。

2.0.2 2024-08-13 07:14 UTC

README

Latest Version on Packagist Total Downloads

无头CMS包为Laravel应用程序提供简单易用的CMS。

特性

  • 页面:包括SEO字段、页面块、页面预览和草稿
  • 菜单:允许创建和管理菜单及其子菜单(页面、外部链接、...)和页脚内容
  • Tiny MCE编辑器
  • Font Awesome服务(图标选择器)

由于这是无头设计,我们不提供任何前端视图。您可以使用提供的API数据使用APILaravel函数来构建自己的前端。

核心

安装

使用Composer安装包

composer require ercos/ercos-cms

运行插件安装命令。

php artisan ercos-cms:install

发布资源

php artisan filament:assets

最后,使用命令ercos-cms:make:section {sectionName}开始添加页面部分。

用法

将插件添加到您的Filament安装中。

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ...
            ->plugins([
                \Ercos\ErcosCms\Filament\Plugin\CmsPlugin::make()
                    ->navigationGroup('Structure')
                    ->registerNavigation(true) // Optional: Either show the navigation items or not
            ]);

API路由

  • GET /api/pages : 页面列表及其内容
  • GET /api/pages/preview : 页面预览
  • GET /api/pages/published-urls : 已发布页面URL列表(对SSG很有用)
  • GET /api/pages/{slug} : 通过slug获取页面
  • GET /api/sitemap : 获取网站地图
  • GET /api/menus : 菜单列表及其内容

## 与Laravel一起使用时的有用函数

  • Ercos\ErcosCms\Facades\ErcosCms::getPages() : 获取所有页面
  • Ercos\ErcosCms\Facades\ErcosCms::getMenus() : 获取所有菜单

TinyMCE

安装

在配置文件中添加您的TinyMCE脚本

    'tiny_mce' => [
        'script' => 'https://cdn.tiny.cloud/1/********/tinymce/7/tinymce.min.js',
        ...
    ]
    'tiny-mce' => 'https://cdn.tiny.cloud/1/********/tinymce/7/tinymce.min.js'

用法

TinyMceEditor::make('...')
    ->label('...')
    ...

FontAwesome

安装

在配置中添加您的Fontawesome css文件

    'fontawesome' => 'https://kit.fontawesome.com/********.css'

用法

您可以在选择器中使用fontawesome来选择图标。

Select::make('...')
    ->label('...')
    ->reactive()
    ->searchable()
    ->allowHtml()
    ->getSearchResultsUsing(
        fn(string $search) => App::make(FontawesomeService::class)
            ->searchFontawesomeIconNamesOptions($search)
            ->pluck('label', 'value')
    )
    ->getOptionLabelUsing(
        fn($value) => $value
            ? App::make(FontawesomeService::class)->getHtmlElement($value)
            : null
    )
    ->preload(false)
    ...

如果使用TinyMCE,fontawesome也将可用。alt text

测试

composer test

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请查看我们的安全策略以了解如何报告安全漏洞。

致谢

许可

MIT许可证(MIT)。有关更多信息,请参阅许可文件