总目录

本实例旨在以一个实际的项目中的例子来介绍如何在dtcms中制作插件,本系列文章非入门教程,部分逻辑实现一带而过,敬请谅解。

项目要求是在dtcms中增加一个电子资源管理,并且提供灵活的筛选方式。

由于涉及内容比较多,打算分4个部分来描述,内容页是我自己一点一点摸索出来的,在原有的基础上进行开发已经是第3次了,这一次对插件制作进一步理解深刻,同时通过不断的调试摸透了URL重写的规则。

本章目录

  • 插件目录结构
  • 新建一个插件项目
  • plugin.config的设置

一、插件目录结构

首先,插件是放在web根目录下的plugin目录下,plugin目录下每一个目录代表一个插件,每个插件下至少包含admin目录,bin目录,templet目录,以及一个plugin.config文件。

建好的项目就如下所示:

二、新建一个插件项目

1.新建项目

首先是在vs中新建一个类库项目,DTcms.Web.Plugin.DataBaseManager,位置在dtcms的web目录的plugins目录里。

然后添加引用,首先是项目内部的引用,如bll、common、db、model、ui这几个,还有一个是.Net的 system.web

2.修改项目文件夹名字

为了能够让dtcms识别这个插件,我们需要把文件夹名字改一下,那么先暂时卸载这个插件项目,我们需要到文件夹中去改一下文件夹名字。

重命名这个文件夹,叫DataBaseManager

然后再把这个项目给添加回来,

3.设置项目生成属性

右键项目—属性—生成,输出路径,主要是为了方便调试,不用每次都把生成的dll放到web\bin\目录中。

4.按照规则建立目录

首先我们需要admin目录、templet目录,新建目录比较简单,比较麻烦的是新建一个web页面,因为我们是类库项目,无法新建aspx的页面,而后台需要用aspx页面,所以我们从别的地方复制一个aspx页面过来。

然后需要修改一下类名称

Aspx页面:

Aspx.cs文件:

Aspx.designer.cs文件

然后删掉所有报错的代码,因为我们都要自己重写的。

至此我们都 项目就建立好了。

三、plugin.config的设置

为了能够让dtcms后台能识别插件,需要设置plugin.config。首先来了解一下plugin.config的格式

这里是我写好的config

这里主要介绍3个地方:

  1. 第一行目录,一定要和你的目录名字保持一致,就是web/plugins/DataBaseManager中的最后一级目录保持一致,接下来几个配置项影响不大。Isload一开始要写0,不然就无法安装了;
  2. 安装sql那个部分,可以把create table的sql放进去,卸载sql部分可以吧drop table的sql放进去,我这里就不做演示了;
  3. 最后nav那里是配置后台的,name随便写,title是后台显示的名字,url就写admin/index.aspx,然后后台配置的列表页就是admin/index.aspx了,action有几个取值,具体如下图

     
     

     
     

    这样就建立好了一个完整的插件,接下来就可以到后台看效果了,我们就可以安装新建的插件了

DTCMS插件的制作实例电子资源管理(一)插件目录结构的更多相关文章

  1. DTCMS插件的制作实例电子资源管理(二)Admin后台页面编写

    总目录 插件目录结构(一) Admin后台页面编写(二) 前台模板页编写(三) URL重写(四) 本实例旨在以一个实际的项目中的例子来介绍如何在dtcms中制作插件,本系列文章非入门教程,部分逻辑实现 ...

  2. DTCMS插件的制作实例电子资源管理(三)前台模板页编写

    总目录 插件目录结构(一) Admin后台页面编写(二) 前台模板页编写(三) URL重写(四) 本实例旨在以一个实际的项目中的例子来介绍如何在dtcms中制作插件,本系列文章非入门教程,部分逻辑实现 ...

  3. DTCMS插件的制作实例电子资源管理(四)URL重写

    总目录 插件目录结构(一) Admin后台页面编写(二) 前台模板页编写(三) URL重写(四) 本实例旨在以一个实际的项目中的例子来介绍如何在dtcms中制作插件,本系列文章非入门教程,部分逻辑实现 ...

  4. Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

    引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...

  5. Smint – 用于单页网站制作的 jQuery 导航菜单插件

    Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮.Smint 使用非常简单,只有一个参数用于设置 ...

  6. Maven-002-eclipse 插件安装及实例

    因为平常编码的时候,习惯了使用 eclipse 进行编码,因而需要将 eclipse 安装 maven 的插件,安装步骤如下所示: 一.安装 选择菜单: help -> Install New  ...

  7. Swift 制作一个新闻通知中心插件1

    使用 Swift 制作一个新闻通知中心插件(1) 随着 iOS 8 的发布,苹果为开发者们开放了很多新的 API,而在这些开放的接口中 通知中心插件 无疑是最显眼的一个.通知中心就不用过多介绍了,相信 ...

  8. JQuery实用技巧--学会你也是大神(1)——插件的制作技巧

      前  言 JRedu 学习之前,首先我们需要知道什么是JQuery? JQuery是一个优秀的javascript框架. JQuery是继Prototype之后又一个优秀的Javascript框架 ...

  9. 40款非常棒的 jQuery 插件和制作教程(系列一)

    jQuery 在现在的 Web 开发项目中扮演着重要角色,jQuery 让网站有更好的可用性和用户体验,让访问者对网站留下非常好的印象.jQuery以其插件众多.独特.轻量以及支持大规模的网站开发闻名 ...

随机推荐

  1. Consul 启动命令

    服务端: nohup consul agent -server -bootstrap-expect 1 -config-dir /etc/consul.d/ -data-dir /var/opt/co ...

  2. 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}

    int [][]a={{3,2,6},{6,8,2,10},{5},{12,3,23}}; //先对二维数组进行遍历:然后把二维数组合成一个数组 int[] k=new int[11]; int q= ...

  3. MySQL入门(三)

    写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想 ...

  4. MongoDB3.0.x版本用户授权配置(单机环境)

    MongoDB数据库默认情况下是没有做权限控制的,只要能够连接所开放的端口就能进行访问,而且拥有root级别的权限:对于生产环境而言是极不安全的,所以需要建立用户,进行授权控制. 单机环境下的用户授权 ...

  5. html5 如何进行自定义属性的定义和查询

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>T ...

  6. iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤

    打包Framework,测试时: 1.用模拟器打包,测试时只能跑在模拟器 2.用真机打包,测试时只能跑在真机 那么怎么做到一个版本兼容以上两种场景呢? 解决如下: 1.打开终端 2.输入   lipo ...

  7. hash查找

    这里使用了编号代替真实的数据,只用来表示算法 #ifndef HASH_DATA_T #define HASH_DATA_T int #endif //HASH_DATA_T typedef stru ...

  8. python 笔记(一) —— 不要误用 ++i、--i

    ilocker:关注 Android 安全(新手) QQ: 2597294287 在 python 中也可以写 ++i,但含义完全不同于 c/c++.python 的 ++i 并不是将 i 自增 1, ...

  9. linux运行级别[转自网络]

    运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init 程序寻找的主要文件,最先运行的服务是那些放在/etc/rc ...

  10. 关于mapreduce.map.java.opts

    a)   Update the property in relevant mapred-site.xml(from where client load the config). b) Import t ...