纸壳CMS开发新的插件
ZKEASOFT May 22, 2022
ZKEACMS 是基于是插件式开发的,可以通过开发不同的插件来实现不同的功能,可以一直横向扩展,而不用修改其它的代码。
安装插件模板
使用dotnet new
命令来安装CMS的插件模板:
dotnet new --install zkeacms.plugin
然后打开项目文件夹下的src
目录,并在这里创建插件目录,例如插件名为Share
,则创建目录为ZKEACMS.Share
,然后打开命令窗口,并定位到ZKEACMS.Share
目录:
然后使用dotnet new
命令来创建插件项目,-n
表示插件的名称:
dotnet new zkeacms.plugin -n Share
添加到解决方案
插件的目录和文件已经建好了,现在需要将它添加到解决方案中。右键添加 Plugins 选择添加已存在项目,然后选择刚刚创建的插件项目文件。
这样一个新的插件就添加完成了。
当然添加新插件也可以在Visual Studio中直接操作,在Plugins
上右键,然后添加项目:
然后输入ZKEACMS找到CMS插件项目,然后点击下一步:
但要注意的是,一定要将位置修改到src
目录下,输入名称后点击创建即可:
xxxPlug.cs 中的方法说明
xxxPlug.cs 这个是插件的加载入口。继承自 PluginBase。接下来说明一下这个类里面的主要的几个方法。
路由
public override IEnumerable<RouteDescriptor> RegistRoute()
{
return null;
}
这个方法用于注册路由,如果该插件里面没有特别的路由要求,可不用修改该方法。
后端菜单
public override IEnumerable<AdminMenu> AdminMenu()
{
return null;
}
这个方法,用于向后台菜单返回菜单数据。
样式和脚本
protected override void InitScript(Func<string, ResourceHelper> script)
{
}
protected override void InitStyle(Func<string, ResourceHelper> style)
{
}
这两个方法用于注册CSS和JavaScript资源。注册好的资源可以在视图(*.cshtml)中使用。
例如定义一个Article的样式:
protected override void InitStyle(Func<string, ResourceHelper> style)
{
style("Article").Include("~/Plugins/ZKEACMS.Article/Content/Article.css");
}
就可以在模板中使用了:
@model ZKEACMS.Article.ViewModel.ArticleDetailViewModel
@{
Style.Reqiured("Article").AtHead();
}
权限
public override IEnumerable<PermissionDescriptor> RegistPermission()
{
return null;
}
注册权限,注册好的权限,会在角色的权限中出现。
组件申明
public override IEnumerable<WidgetTemplateEntity> WidgetServiceTypes()
{
return null;
}
如果你的插件中,有写了新的组件(Widget),那么一定要通过该方法返回该组件的类型给系统。
例如:
public override IEnumerable<WidgetTemplateEntity> WidgetServiceTypes()
{
string groupName = "2.文章";
yield return new WidgetTemplateEntity<ArticleListWidgetService>
{
Title = "文章列表",
GroupName = groupName,
PartialView = "Widget.ArticleList",
Thumbnail = "~/Plugins/ZKEACMS.Article/Content/Image/Widget.ArticleList.png",
Order = 1
};
}
依赖注入
public override void ConfigureServices(IServiceCollection serviceCollection)
{
}
IOC配置,接口实现配置。
zkea.plugin 插件描述文件
打开 zkea.plugin
{
ID:"D8543DD0-B100-4CA5-AEEA-B6182C38B6DC", //插件的GUID
Name:"ZKEACMS.Standard",//插件的名字
FileName:"ZKEACMS.Standard.dll",//插件的DLL名字
Enable:"true"//是否启用插件
}
做好这些配置的修改,就可以开发你自己的插件了。
最后别忘了生成一下这个新添加的插件。在新加的插件项目上,鼠标右键》生成
下一步:开发组件
var - 4/11/2018 11:25 AM
IOC
回复
ZKEASOFT - 5/29/2018 12:50 PM
@var 好眼力。
回复