dtcms插件开发文档

wuchangjian2021-10-24 12:40:14dtcms

插件开发

image.png

DTcms的插件源码放在DTcms.Web/plugins目录下,发布后的插件位于站点根目录的plugins目录下,插件一般包含plugin.config、admin目录、bin目录和templet目录。另外其它目录和文件,如DAL、BLL文件夹分别代表DAL层的类文件和BLL层的类文件,这些都是由开发者自行发挥,没有严格的指定要求。

Plugin.config文件说明

该文件的存在,系统才会识别为这是一个插件,所以它里面的配置节点说明至关重要,下面我们来说明一下该文件的格式书写要求及列张表格说明该文件的结构节点,分别描述说明作用。

<?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>
      ……
  </install>
  <uninstall>
    <sql> SQL删表语句…</sql>
    ……
  </uninstall>
  <urls>
    <rewrite>URL配置</rewrite>
    ……
  </urls>
  <menu>
    <nav>后台导航菜单</nav>
    ……
  </menu>
</plugin>

各节点的说明:

节点名称说明示例
directory插件的所在目录,位于DTcms.Web/plugins目录下的文件夹名称,要求名称为英文小写link
name插件的中文名称,该名称将会显示在后台的插件安装配置管理页面。友情链接
author开发者昵称动力启航
version插件适应的系统版本号V3.0
description插件的备注说明仅适用于3.0以上版本
isload插件的安装状态,0为未安装,1为已安装。如果插件尚未安装的状态下手动改为1则插件可能出错。0
install插件的安装时所需要的SQL建表语句,该节点下还有sql子节点,一条sql子节点代表一条SQL语句。其中<![CDATA[……]]>代表XML所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待。SQL语句表头的{databaseprefix}表示建表的前缀。<sql><![CDATA[……]]></sql>
uninstall与install相反,该节点存放的是在卸载插件时所要执行的SQL语句删除的表,该节点下也有sql子节点,一条sql子节点代表一条SQL语句。<sql><![CDATA[……]]></sql>
urls该节点为URL配置节点,其中一条子节点rewrite,代表一条URL配置信息,关于URL配置信息请查阅第三章文档。注意由于是插件,要求子节点rewrite的type属性值始终为plugin。
menu后台生成的导航菜单节点,插件安装时会根据该节点下的nav子节点生成导航菜单,并分配权限控制。请查阅menu的子节点nav属性说明

nav属性说明:

属性名称说明示例
name导航的英文名称,不可重复,命名规则以plugin_开头,权限控制的名称,非常重要。plugin_link
title插件的导航中文标题,该标题出现在生成的后台管理菜单上。链接管理
url导航菜单的链接路径,位于该插件目录下的相对路径。一般指向admin目录的对应文件名。admin/index.aspx
action导航菜单的权限控制器字典,该字典可在DTcms.Common项目的Utils.cs文件的ActionType方法中找到。以英文逗号分隔开。

枚举可选值有:

  1. Show           ----添加

  2. View           ----查看

  3. Add            ----添加

  4. Edit            ----修改

  5. Delete          ----删除

  6. Audit           ----审核

  7. Reply           ----回复

  8. Confirm         ----确认

  9. Cancel          ----取消

  10. Invalid          ----作废

  11. Build           ----生成

  12. Instal          ----安装

  13. UnLoad        ----卸载

  14. Back           ----备份

  15. Restore         ----还原

  16. Replace        ----替换

插件安装流程

插件在安装的时候所要做的工作:

  1. 系统自动复制所选插件bin目录下后缀名为dll文件到站点根目录下的bin目录下;

  2. 系统自动读取所选插件目录里的plugin.config文件中的install节点里的SQL语句进行建表;

  3. 系统自动读取所选插件目录里的plugin.config文件中的urls节点里的URL映射添加到站点根目录下的xmlconfig/url.config里;

  4. 系统自动读取所选插件目录里的templet目录下的模板文件生成aspx文件到站点的aspx/plugin目录下;

  5. 系统自动读取所选插件目录里的plugin.config文件中的menu节点里后台导航菜单添加到后台导航表里面,生成后台管理导航菜单;

  6. 系统自动修改所选插件目录里的plugin.config文件中的isload节点里的值为1;

image.png

插件卸载流程

插件在卸载的时候所要做的工作:

  1. 系统自动删除站点根目录下的bin目录里与所选插件bin目录下同名的dll文件;

  2. 系统自动读取所选插件目录里的plugin.config文件中的uninstall节点里的SQL语句进行删除表操作;

  3. 系统自动删除站点根目录下的xmlconfig目录里的url.config文件中与所选插件目录里的plugin.config文件中的urls节点里的URL配置;

  4. 系统自动删除站点根目录下的aspx/plugin目录里的对应的aspx文件;

  5. 系统自动删除所选插件对应的后台管理导航菜单的数据库记录;

  6. 系统自动修改所选插件目录里的plugin.config文件中的isload节点里的值为0;

image.png

插件运作原理

首先插件是一个独立的项目,当我们编写好各种CS类的时候,在编译后它会生成一个这个项目的DLL文件,该文件已经包含了我们在页面运作的封装类。

image.png

如上图所示,当我们通过URL地址通过HTTP请求一个页面的时候,系统会检查该URL是否属于插件URL,如果属于插件则将地址映射重写到站点的根目录下的aspx/plugin目录下对应的aspx文件,从而使页面能够运行起来。


相关文章

dtcms模板引擎文档

dtcms模板引擎文档

模板引擎URL重写,实质上是将网页真实URL隐藏起来,使用户通过相应的虚拟URL访问网页资源,以便克服真实URL的许多不足。IIS Rewrite的工作原理请看下图:DTcms的HttpModule类...

dtcms通用标签文档

通用标签通用标签在所有模板页面都可以使用,如果您下载的是DTcms的源码版,请查看DTcms.Web.UI项目下的Label文件夹,如果默认标签不够用的情况下,你也可以在里面新增一些自定义的标签,但记...

dtcms常见问题

常见问题Q:为什么在本地运行网站前台正常,发布后上传服务器上面访问前台出现404错误?A:DTcms从4.0开始,IIS应用池设置为集成模式不用做任何的设置,上传服务器即可运行。出现这种情况,可能出现...

dtcms页面标签文档

页面标签内置的页面标签,实际上是动态生成的aspx文件要继承的类,这些变量与方法只允许对应的模板页面使用。位于DTcms.Web.UI项目的Page目录下,如果开发者需要增加一个页面可以在此目录中增加...

dtcms安装教程

安装环境一、安装环境要求开发工具:Microsoft Visual Studio 2010操作系统:Windows Server 2008(推荐) 、Windows Server 2003(推荐)、W...

dtcms二次开发之系统架构

dtcms二次开发之系统架构

系统架构设计模式中的分层架构实现了各司其职,互不干涉,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。这样就能更好的实现开发中的分工,有利于组件的重用。所以...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。