cogroup / cms
Laravel 项目通用的 CMS
Requires
- php: >=7.2
- intervention/image: >=2.5.1
- laravel/socialite: >=5.0
- laravel/ui: >=3.0
- thedoctor0/laravel-mailjet-driver: >=1.0
Requires (Dev)
- laravel/framework: 8.x
- 3.1.x-dev
- 3.0.x-dev
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- dev-master / 2.x-dev
- 2.0.x-dev
- v2.0.5
- 1.8.x-dev
- v1.8.13
- 1.7.x-dev
- v1.7.2
- 1.6.x-dev
- v1.6.0
- dev-dependabot/npm_and_yarn/minimist-1.2.8
- dev-dependabot/npm_and_yarn/jszip-3.8.0
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/qs-and-express-6.11.0
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/terser-4.8.1
- dev-dependabot/npm_and_yarn/moment-2.29.4
- dev-dependabot/npm_and_yarn/async-2.6.4
- dev-dependabot/npm_and_yarn/follow-redirects-1.14.8
This package is auto-updated.
Last update: 2024-09-04 05:42:49 UTC
README
重要
为了避免不兼容,有必要从 webpack 中删除 popper、jquery 和 bootstrap;我们的库已经包含了最新的版本。
在 Cms 中注释所有 require 文件
resources/js/bootstrap.js
Cms
对于 Laravel < 5.7,请使用 1.6 分支!
对于 Laravel <= 6,请使用 1.8 分支!
对于 Laravel 7,请使用 2.0 分支!
对于 Laravel 8,请使用 3.0 分支!
COgroup - CMS 包是向 Laravel 添加基于角色的权限的基本 CMS 系统的灵活方式。
内容
安装
- 运行命令安装 laravel/ui 并生成脚手架
composer require laravel/ui php artisan ui bootstrap --auth
- 为了安装 COgroup - CMS,只需将以下内容添加到您的 composer.json 中。然后运行
composer update
"cogroup/cms": "^3.0"
或者运行以下命令
composer require cogroup/cms "3.*"
- fixed Auth::routes, to avoid Clouser error
从 web.php 文件中移除 Auth::routes
- 运行以下命令发布包配置文件
config/cogroupcms.php
php artisan vendor:publish --provider="Cogroup\Cms\CmsServiceProvider"
- 运行以下命令执行迁移
php artisan migrate
- 运行以下命令进行填充
php artisan db:seed --class=CogroupCmsSeeder
- 运行以下命令重新发布资产、配置、自定义错误视图、字体、迁移和翻译
php artisan cogroupcms:assets php artisan cogroupcms:config php artisan cogroupcms:errorviews php artisan cogroupcms:fonts php artisan cogroupcms:migrations php artisan cogroupcms:seeders php artisan cogroupcms:translations
- 在
config/auth.php 文件中更改默认用户模型
'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => Cogroup\Cms\Models\User::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ],
InterventionImage
安装 Intervention Image 后,打开您的 Laravel 配置文件 config/app.php 并添加以下行。
在 $providers 数组中添加此包的服务提供者。
Intervention\Image\ImageServiceProvider::class
将此包的外观添加到 $aliases 数组。
'ImageManager' => Intervention\Image\Facades\Image::class
现在 Laravel 将自动加载 Image 类。
在 Laravel 5 中发布配置
$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"
配置
在 config/cogroupcms.php 中设置属性值。这些值将被 cogroup-cms 用于引用正确的前缀、颜色主题和访问 CMS 的 URI。
用户与角色的关系
您现在可以运行 artisan migrate 命令
php artisan migrate
迁移后,将出现七个新表
files— 在 CMS 中管理文件modules— CMS 的模块noworkingdays— 特殊日期和能够对一系列日期进行折扣的日期roles— CMS 的角色roles_access— 角色和模块访问之间的关系settings— CMS 基本设置(站名、电子邮件名等)user— 用户和特定角色用户表
模型
文件
Files 模型有八个主要属性
originalname— 文件的原始名称。diskname— 上传后文件在系统中的名称。extension— 文件的扩展名。size— 文件的大小。mimetype— 文件的 MIME 类型。alt— HTML中标签alt的文本。width— 当是图片时,一个宽度属性。height— 当是图片时,一个高度属性。ispublic— 确定一个文件是否为公开。created_at— 确定创建日期。updated_at— 确定更新日期。
模块
Modules模型有十个主要属性
moduleslug— 模块的别名,用于验证权限。modulename— 要显示的模块名称。description— 对模块功能的更详细说明。active— 模块是否激活。url— 访问模块的url。该url不应该包含域名。icon— 模块的字体图标。parent— 当是子模块时,父模块的id。当是父模块时为0。order— 在菜单中显示模块的顺序。inmenu— 确定模块是否显示在主菜单中。permissions— 确定模块需要的权限。它们必须用逗号分隔。例如:“查看,创建”。
NoWorkingDays
NoWorkingDays模型有两个主要属性
date— 特殊日期。active— 确定一个日期是否激活。created_at— 确定创建日期。updated_at— 确定更新日期。
角色
Role模型有两个主要属性
rolname— 角色的唯一名称,用于在应用层查找角色信息。例如:“管理员”,“所有者”,“员工”。description— 对角色功能的更详细说明。created_at— 确定创建日期。updated_at— 确定更新日期。
RolesAccess
RolesAccess模型有六个主要属性
roles_id— 角色的唯一键,用于与roles表的关系。modules_id— 模块的唯一键,用于与modules表的关系。view— 设置查看模块或子模块的权限。create— 设置在模块或子模块中创建内容的权限。update— 设置在模块或子模块中更新内容的权限。delete— 设置在模块或子模块中删除内容的权限。created_at— 确定创建日期。updated_at— 确定更新日期。
设置
Settings模型有两个主要属性
setting— 设置的唯一名称。defaultvalue— 设置属性的值。
用户
这将启用与Role的关系。
现在你已经准备好了。
使用
中间件
你可以使用中间件根据权限或角色过滤路由和路由组
Route::group(['prefix' => 'settings', 'middleware' => ['admin:settings|view']], function() { Route::get('/', 'AdminController@welcome'); Route::post('/', ['middleware' => ['admin:settings|create,update'], 'uses' => 'AdminController@manageAdmins']); });
可以使用逗号符号验证两个操作之间的内容
'middleware' => ['role:admin|create,update']
辅助权限
你可以使用辅助工具验证权限
cms_roles_check($check, $moduleslug, $type);
check是Auth::user信息或模块id。moduleslug是要检查权限的模块的别名。type是可选的权限,默认为view。
辅助函数
Cogroup - CMS包含两个“辅助”PHP函数。这些函数由包本身使用;然而,如果你觉得它们方便,你可以在自己的应用程序中使用它们。
cms_get_modules
此函数返回系统的模块,注册到modules表中。
cms_get_modules($modulename, $inmenu, $idrol);
modulename是可选参数。如果为NULL,则返回所有模块。inmenu默认为Y。其他选项是N。idrol是可选参数,默认为NULL。存在时,它返回具有权限view的角色关联的模块。
cms_settings
此函数返回包含设置值的对象
cms_settings();
示例:cms_settings()->sitename
cms_format_date
此函数返回具有dateformat设置格式的Carbon格式日期
cms_format_date($date);
date是必需参数。日期格式必须是Y-m-d。
cms_format_time
此函数返回具有timeformat设置格式的Carbon格式日期
cms_format_time($time);
time是必需参数。时间格式必须是H:i:s。
cms_format_datetime
此函数返回具有dateformat和timeformat设置格式的Carbon格式日期
cms_format_datetime($datetime);
datetime是必需参数。日期格式必须为 Y-m-d H:i:s。
cms_get_file_attribute
此函数返回一个 FileModel 属性。
cms_get_file_attribute($id, $attribute);
id是必需参数。Id 在Files表中。attribute是必需参数。表Files的列。
cms_get_total_unread_notifications
此函数返回系统未读通知的总数。
cms_get_file_attribute();
仪表板
要更改仪表板,请将 config/cogroupcms.php 文件中的 dashboard 选项更改。添加所有命名空间示例:\App\Http\Controllers\MyDashboardController
通知消息
通过选项在 config/cogroupcms.php 中配置通道。
'via' => ['mail', 'database'],
如果使用邮件通道,请将 use Cogroup\Cms\Notifications\NewMessage; 添加到您的 Controller 中。
要发送消息,请使用 Notification::send( $user, new NewMessage( $from, $message ) );
$user是要发送电子邮件的用户。User 对象。$from是发送电子邮件的用户。User 对象。$message是一条数据消息。
通知 JavaScript
此配置用于从 Controller 设置浮动消息。
设置 0 为错误,1 为成功,2 为信息,3 为警告。
$request->session()->flash('status', '1');
设置位置(顶部,底部)。
$request->session()->flash('msgfrom', {position});
设置对齐(左,中,右)。
$request->session()->flash('msgfrom', {align});
设置延迟时间(默认:4000)。
$request->session()->flash('msgtime', {time});
设置一条消息。
$request->session()->flash('msg', {message});
许可证
COgroup CMS 是一款免费软件,根据 MIT 许可证条款发布。
贡献指南
支持遵循 PSR-4 PHP 编码标准,以及语义版本控制。
请在问题页面报告您发现的问题。欢迎提交拉取请求。