ercos / ercos-cms
2.0.2
2024-08-13 07:14 UTC
Requires
- php: ^8.1
- filament/filament: ^3.2
- illuminate/contracts: ^10.0 || ^11.0
- pboivin/filament-peek: ^2.2
- spatie/laravel-package-tools: ^1.14.0
- spatie/laravel-sitemap: ^7.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-09-13 07:23:15 UTC
README
无头CMS包为Laravel应用程序提供简单易用的CMS。
特性
- 页面:包括SEO字段、页面块、页面预览和草稿
- 菜单:允许创建和管理菜单及其子菜单(页面、外部链接、...)和页脚内容
- Tiny MCE编辑器
- Font Awesome服务(图标选择器)
由于这是无头设计,我们不提供任何前端视图。您可以使用提供的API数据使用API或Laravel函数来构建自己的前端。
核心
安装
使用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也将可用。
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查看我们的安全策略以了解如何报告安全漏洞。
致谢
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。