mcms / package-admin
管理界面
v0.1.1
2022-04-17 07:10 UTC
Requires
- intervention/image: ^2.7.1
This package is auto-updated.
Last update: 2024-09-17 12:15:49 UTC
README
这是Mcms的管理包。它是基于Angular material构建的,但你可以使用任何你喜欢的框架。
安装
通过Composer
$ composer require mcms/package-admin
使用方法
将此服务提供者添加到config/app.php Mcms\Admin\AdminServiceProvider::class, 并添加此别名以便于使用 'ModuleRegistry' => Mcms\Admin\Facades\ModuleRegistryFacade::class,
你可以这样注册一个新的管理模块
ModuleRegistry::registerModule('{package-name}/admin.package.json'); print_r(ModuleRegistry::get());
然后你应该按照如下方式发布你的admin.package.json
$this->publishes([
__DIR__ . '/../config/admin.package.json' => storage_path('app/package-pages/admin.package.json'),
], 'admin-package');
以下是一个admin.package.json的示例
{
"name" : "My package name",
"package" : "package-name",
"modules" : [
"my.angular.module.name"
],
"files" : {
"js" : [
"package-name/js/script-compiled.js"
],
"css" : [
]
}
}
最后,确保你将所有文件发布到public目录下的正确文件夹中。
使用以下方式获取处理后的注册信息
$files = ModuleRegistry::processRegistry();
Angular ACL
<div ng-if="ACL.can('create.users')">Can create users</div>
<div ng-if="ACL.level(2)">Is of level 2 and above</div>
<div ng-if="ACL.role('admin')">Is admin or above</div>
角色方法可以接受多个角色,如
<div ng-if="ACL.role('admin|su|moderator')">Is admin</div>
角色支持继承,所以如果你是一个级别为4的超级用户,而基本要求是级别为3的管理员,由于超级用户继承自管理员,因此你可以直接使用超级用户权限
如果超级用户和管理员处于同一级别,则继承不再适用。使用多角色表示法来表示你希望相似级别的用户通过检查(调解员-发布者或用户-作者)
- 需要将angular模板移动到正确的public目录中(在开发中使用gulp)
- 需要告诉angular模板public目录的位置
扩展Angular模块
我们需要使用ModuleExtender服务。按照如下方式向注册表中添加一个新模块
ModuleExtender.register('pages', ModuleExtender.newPackage({
id : 'extendedModule',
label : 'Extended Module',
order : 99,
file : Config.templatesDir + 'temp.html'
}));
第一个参数应该是模块名称,第二个是扩展。通常,我们应该在该文件中有一个组件,但由于你继承了模板注入,你可以使用一些小的东西。
然后在你自己的模块中,通过将其添加到你的标签或其他渲染方法中,你可以获得扩展后的功能
vm.tabs = ModuleExtender.extend('pages', vm.tabs);
第一个参数是模块名称,第二个是你的现有标签,这些标签将被附加并重新排序。