插件开发

一、插件制作

1 插件项目最基本的结构,包含 admin 文件夹, bin 文件夹, template 文件夹, plugin.config 文件,其他类似 DAL,BLL,Model,SqlHelper等等请自行添加

2 前期准备,需要 Micronet.Base.dll,JinianNet.JNTemplate.dll,System.Web.Mvc.dll (一般情况下,由我方提供)

3 新建一个名为 Micronet.Mvc.Plugin.Link 的类库项目( Micronet.Mvc.Plugin 前缀必须相同,后面的Link根据需要自己改名称)

4 后台页面制作(相关涉及:webForm )

  • ① 添加 System.Web 引用和 Micronet.Base.dll 引用
  • ② 新建一个 admin 的文件夹,将做好的后台文件放进去(注意:因为项目属性是类库,所以里面不能直接新建 aspx 页面, 可将做好的 aspx 页面放进去 admin 文件夹,记得需要手动更改一下命名空间)
    Aspx 页面:Inherits="Micronet.Mvc.Plugin.Link.admin.index"( index 是我 aspx 的名称)
    Aspx.cs 页面:namespace Micronet.Mvc.Plugin.Link.admin
    public partial class index : Micronet.Base.ManagePage(注意要继承 ManagePage )
  • ③ 调用权限控制方法 ChkAdminLevel ("plugin_link ", MNEnums.ActionEnum.View.ToString());
    通过继承 ManagePage ,可以调用权限控制方法,上面的代码用于检查该管理员在后台有没有查看友情链接的查看列表权限。 在这个方法中,plugin_link 代表的是 plugin.config 文件中的 menu 节点下 nav 节点属性的 name 属性值, MNEnums.ActionEnum.View.ToString()表示的是 plugin.config 文件中的 menu 节点下 nav 节点属性的 action 属性值的其中一个权限码, 具体含义看下面 plugin.config 文件解析

5 前台模版制作(相关涉及:MVC,极念模版)

  • ① 添加 JinianNet.JNTemplate.dll 引用和 System.Web.Mvc.dll 引用
  • ② 新建一个类 LinkController (注意:命名规则为 *Controller ,后面的 Controller 是必要的,前面的*可以自行命名,因为它代表的是一个控制器)
  • 例子如下:
    //需要继承 BaseController
    public class LinkController:BaseController
    {
    public void index()
    {
    //获取模版
    MainTemplate = CreateTemplate("/link/link.html");
    //初始化head seo信息
    InitHeadData("测试链接", "测试链接", "测试链接");
    //绑定前台字段值
    MainTemplate.Context.TempData["test"] = "传给前台模版的值";
    //初始话底部数据(比如:底部的在线客服,网站的设置等)
    InitFooterData();
    //呈现结果
    MainTemplate.Render(Response.Output);
    }
    }
  • ③ 新建一个html页面
  • 例子如下:
    < !DOCTYPE html >
    < html xmlns="http://www.w3.org/1999/xhtml" >
    < head >
    < meta http-equiv="Content-Type" content="text/html; charset=utf-8" / >
    < title >插件安装说明< /title >
    < /head >
    < body >
    ${test} //获取LinkController传过来的值,既${test} ="传给前台模版的值"
    < /body >
    < /html >

6 打包

  • 打包项目时,必须包含四个文件,分别为admin文件夹,bin文件夹,templates 文件夹和 plugin.config ,将这四个文件放到名为 link 的文件夹(文件夹名必须和 plugin.config 里的< directory >link< /directory >一致, 同时应该避免和 MicronetMvc\Micronet.Mvc\templates\pc\Concise 目录下的文件夹同名)
  • ① admin 文件夹,存放客户自己的后台内容页面
  • ② bin 文件夹,存放客户生成的 dll 文件
  • ③ templates 文件夹,存放前台模版页面
  • ④ plugin.config (最下面有 plugin.config 文件解析和例子)

二、插件安装与卸装

1 将 link 文件夹放到网站中MicronetMvc\Micronet.Mvc\plugins目录下

2 安装操作,进入后台,界面->插件安装配置,选中并点击安装即可

3 安装后会重新登录后,内容->插件管理,显示安装的后台配置界面

4 前端页面显示,通过域名/cn/link/link.html 访问

5 卸装操作,进入后台,界面->插件安装配置,选中并点击卸装即可


三、plugin.config文件解析

1 节本结构

  • < ?xml version="1.0" encoding="utf-8"? >
    < plugin >
    < directory >插件目录名< /directory >
    < name >插件的中文名称< /name >
    < author >作者< /author >
    < version >版本号< /version >
    < description >插件描述< /description >
    < isload >安装状态:0未安装,1已安装< /isload >
    < install >
    < sql >< ![CDATA[SQL建表语句]] >< /sql >(可添加多个sql节点)
    < /install >
    < uninstall >
    < sql >< ![CDATA[SQL删表语句]] >< /sql >(可添加多个sql节点)
    < /uninstall >
    < urls >
    < route controller="控制器名" action="方法名" url="页面链接地址" name="页面名" >< /route >(可添加多个route节点)
    < /urls >
    < menu >
    < nav name="导航ID " title="导航标题" url="链接地址" action="导航菜单权限字典" >< /nav >(可添加多个nav节点)
    < /menu >
    < /plugin >

2 节点详细说明

属性名称 说明 示例
directory 插件目录名 link
name 插件的中文名称 友情链接
author 作者 Micronet
version 版本号 4.5
description 插件描述 只适合v4.5以上版本
isload 安装状态:0未安装,1已安装 0
install 插件的安装时所需要的SQL 建表语句,该节点下还 有sql 子节点,一条sql 子节点代表一条SQL 语句。 其中代表XML 所有的标记、实体 引用都被忽略,而被XML 处理程序一视同仁地当做 字符数据看待。SQL 语句表头的{databaseprefix} 表示建表的前缀 < sql >< ![CDATA[……]] >< /sql >
uninstall 与install 相反,该节点存放的是在卸载插件时所要 执行的SQL 语句删除的表,该节点下也有sql 子节 点,一条sql 子节点代表一条SQL 语句,SQL 语句表 头的{databaseprefix}表示建表的前缀 < sql >< ![CDATA[……]] >< /sql >
urls 该节点为URL 配置节点,其子节点route表示路由配置 < urls > < route controller="link" action="index" url="cn/link/link.html" name="plugin_link_index" >< /route > < /urls >
注意:url="cn/link/link.html"
cn:固定值,不要改
link:与前面的directory一致就行
link.html:你放在templates里面的前端模版页面
menu 后台生成的导航菜单节点,插件安装时会根据该节点 下的nav 子节点生成导航菜单,并分配权限控制。 menu 的子节点nav 属性说明

3 nav节点属性说明

属性名称 说明 示例
Name 导航的英文名称(导航ID),不可重复,命名规则以plugin_开头,权限控制的名称,非常重要 plugin_link
title 插件的导航标题,该标题出现在生成的后台管理菜单上 链接管理
url 导航菜单的链接路径,位于该插件目录下的相对路 径。一般指向admin 目录的对应文件名 admin/index.aspx
action 导航菜单的权限字典,可输入多个,以英文逗号分隔开 All(所有) Show(显示)
(查看) Add(添加)
Edit(修改) Delete(删除)
Audit(审核) Reply(回复)
Confirm(确认) Cancel(取消)
Invalid(作废) Build(生成)
Instal(安装) UnLoad(卸载)
Login(登录) Back(备份)
Restore(还原) Copy(复制)
Replace(替换)