一、DTcms模板生成机制
1、后生执行生成模板时,系统自动进入相应的主题模板检遍历模板文件
2、将模板文件与urls.config文件里面的rewrite节点的templet属性内容相对比
3、如果找到相对应的节点信息,则生成aspx文件到站点的aspx目录下
4、如果找不到符合条件的节点,不生成aspx文件;
二、DTcms网站访问映射处理流程
1、用户访问网站时,首先要经过HttpModel类的解析
2、HttpModel与urls.config匹配,符合条件则将访问的URL地址映射到站点目录下的aspx目录里的对应文件,否则不进行URL映射,直接访问原URL地址
三、urls.config文件节点属性说明
Name:URL配置的(名称)key,唯一标识
Path:URL重写后的地址
pattern:URL重写的正则表达式
page:源页面真实名称
querystring:传输的参数($1,$2,$3 ……)
templet:对应的模板文件的名称
channel:所属频道的ID,不是频道请为0
type:该页面的类型(首页:index,列表页:list,详细页:detail,不允许重写:no)
inherit:该页面所要继承的全局限定类名
四、新增自定义模板步骤
===>通过管理页面也可以做到,实际是修改了urls.config
===>Name、Path、 URL-pattern
artile_list.aspx==就是根据article_list.html
1、新增urls.config文件节点信息
2、在DTcms.Web.UI项目下的Page文件夹下新增处理该页面的方法
3、制作相对应的模板文件
4、进入后台生成模板文件
===>type/inherit/channel/template 模版文件对应
传输参数:category_id=$1^page=$2
====>web.UI/page
protected override void showpage()
{page=DTRequest.getueryint(--定义的参数名
category_id=DTRequest.getqueryint(定义的参数名
}
五、新增自定义模型步骤
search.aspx?key=$1
通过-对应的伪规则。--选择禁用重写。。。。手工输入class名称,其实是关联aspx和。cs文件
web.UI.basepage=====> 建立search class......
1、建立模型对应的数据库表
2、建立表映射的Model类、业务逻辑层(BLL) 类、数据访问层(DAL) 类
3、制作后台管理界面文件
4、在DTcms.Web.UI项目下的Page文件夹下新增处理该模型的模板页的处理的方法
5、进入后台>控制面板>系统模型配置>添加模型,填写后保存
6、新建一个频道,选择该模型
7、制作该频道的模板文件
模版文件中使用的是来自page下面class的数据返回的。。。
8、进入后台生成模板即可