纸壳CMS开发新的插件

纸壳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 好眼力。

    回复

微信公众号