jasminecms / jasmine
基于Laravel的CMS。
Requires
- php: ^8.2
- composer-runtime-api: ^2.2
- ext-json: *
- alexusmai/laravel-file-manager: ^3.1.1
- inertiajs/inertia-laravel: ^1.0
- laravel/framework: ^11.0
- laravel/ui: ^4.0
- pragmarx/google2fa: ^8.0
- spatie/eloquent-sortable: ^4.4
- spatie/laravel-translatable: ^6.7
- tightenco/ziggy: ^1.5
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11.0
- dev-master
- 2.13.16
- 2.13.15
- 2.13.14
- 2.13.13
- 2.13.12
- 2.13.11
- 2.13.10
- 2.13.9
- 2.13.8
- 2.13.7
- 2.13.6
- 2.13.5
- 2.13.4
- 2.13.3
- 2.13.2
- 2.13.1
- 2.13.0
- 2.12.2
- 2.12.1
- 2.12.0
- v2.11.x-dev
- 2.11.11
- 2.11.10
- 2.11.9
- 2.11.8
- 2.11.6
- 2.11.5
- 2.11.4
- 2.11.3
- 2.11.1
- 2.11.0
- 2.10.2
- 2.10.1
- 2.10.0
- 2.9.2
- 2.9.1
- 2.9.0
- 2.8.1
- 2.8.0
- 2.7.7
- 2.7.6
- 2.7.5
- 2.7.4
- 2.7.3
- 2.7.2
- 2.7.1
- 2.7.0
- 2.6.0
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.2
- 1.0.1
- 1.0.0
- 0.12.1
- 0.12.0
- 0.11.4
- 0.11.3
- 0.11.2
- 0.11.1
- 0.11.0
- 0.10.5
- 0.10.4
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.1
- 0.8.0
- 0.7.1
- 0.7.0
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.0
- 0.4.9
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.15
- 0.3.14
- 0.3.13
- 0.3.12
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- 0.0.17
- 0.0.16
- 0.0.15
- 0.0.14
- 0.0.13
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- dev-add-tests
This package is auto-updated.
Last update: 2024-09-04 09:18:28 UTC
README
受Voyager启发的基于Laravel的CMS。
屏幕截图
注意
Jasmine使用alexusmai/laravel-file-manager
如果你已经在使用它或者计划使用它,
你可能需要调整一些配置以避免冲突。
安装
在你的新Laravel应用或现有应用中引入JasmineCMS
composer require jasminecms/jasmine
将jasmine公共资源链接到你的公共文件夹
php artisan jasmine:link-public-assets
迁移数据库(确保在迁移之前对默认的Laravel迁移进行任何更改)
php artisan migrate
创建用户(第一个用户是超级管理员)
php artisan jasmine:create-user
将Jasmine路由添加到你的routes/web.php
路由文件(你可以将前缀更改为你喜欢的任何内容)
Route::prefix('jasmine')->group(fn() => Jasmine::routes());
将Jasmine API路由添加到你的routes/api.php
路由文件(你可以将前缀更改为你喜欢的任何内容)
Route::prefix('jasmine')->group(fn() => Jasmine::apiRoutes());
你现在可以登录Jasmine了,
导航到/jasmine
然后登录
你可以在你的AppServiceProvider
中注册Jasmine资源
本地化
Jasmine支持多语言资源,定义你的内容语言如下
Jasmine::registerLocales(['en', 'he']);
Breadables
Breadables可以是任何模型
运行php artisan make:jasmine-model Post
来创建Jasmine模型
在你的模型中实现
Jasmine\Jasmine\Bread\BreadableInterface
使用trait Jasmine\Jasmine\Bread\Breadable
如果模型有多语言列,也使用trait
Jasmine\Jasmine\Bread\Translatable;
实现缺失的方法
然后在AppServiceProvider
中注册你的模型
Jasmine::registerBreadable(\App\Models\MyModel::class);
页面
页面与模型非常相似,但作为单个实体而不是表来功能
运行php artisan make:jasmine-model Post
来创建Jasmine模型
在AppServiceProvider
中注册你的页面
Jasmine::registerPage(\App\Pages\Home::class);
接口本地化
你可以将Jasmine界面翻译成任何语言,如下所示
Jasmine::registerInterfaceLocale('he', 'path/to/locale.json');
send参数将接受一个指向你的json文件的路径或一个翻译数组
你可以复制/resources/front-lang/he.json
快速开始。
自定义资源
如果你出于某种原因想要加载自定义的javascript或css,你可以这样做
Jasmine::registerCustomStyle('/path/to/style.css'); Jasmine::registerCustomJs('/path/to/app.js');
权限
待办事项
侧边栏菜单项
你可以这样向侧边栏菜单添加项
// internal \Jasmine::registerSideBarMenuItem('settings', fn() => [ 'title' => __('Settings'), 'icon' => 'bi-link-45deg text-danger', 'href' => route('jasmine.my.route', 'my-param-value'), 'is-route' => ['r' => 'jasmine.my.route', 'p' => ['my-param' => 'my-param-value']], ], 70); // external \Jasmine::registerSideBarMenuItem('site-triple', fn() => [ 'href' => 'https://triple.co.il', 'title' => 'Triple', 'icon' => 'bi-link-45deg text-danger', 'target' => '_blank', ], 100);
待办事项:registerSideBarSubMenuItem
Oauth2 SSO
你可以注册oauth2提供商以启用Jasmine的SSO登录
Facebook示例
Jasmine::registerOauth2Sso( 'Facebook', //name 'https://#/images/fb_icon_325x325.png', //icon '{client_id}', '{client_secret}', 'https://#/v3.3/dialog/oauth', 'https://graph.facebook.com/v3.3/oauth/access_token', ['email'], false, // accepts boolean or callback function ($token) { $token = json_decode($token, true); $res = Http::asJson()->get('https://graph.facebook.com/v3.3/me', [ 'access_token' => $token['access_token'], 'fields' => 'name,email', ]); return [ 'name' => $res->json('name'), 'email' => $res->json('email'), ]; }, );