1.对主从关系表的增【关键】,删,查,改。
2.对自引用关系表的增删查改
2.编辑器的配置
3.编辑器图片上传
4.编辑器文件管理
5.初级权限控制思路【对频道的控制:查看 修改 增加 删除】
6.事务的使用
7.双top分页方法的使用
8.缓存的使用
9.文件上传
10.文件下载
11.模板思路
DTcms图文信息添加修改删除的流程
分析:设计多个表的操作,非常的典型,使用事务实现
理清几张表之间的关系
Photo PhotoAlbum PhotoAttribute PhotoAttributeValue
PhotoAttribute之和频道相关,只要添加一条多选属性,该频道就会继承该多选属性
PhotoAttributeValue 记录了Photo 和 PhotoAttribute 的关系;某一个图文信息具有几个多个多选属性
这种设计类似于“文件标签的设计”
文件与标签之间的关系:多对多
常见操作是:为一篇文章添加多个标签;查询该标签下所有的文件信息【在wp中可以见到】
Photo PhotoAlbum 之间的关系:一对多的关系,一个图文信息具有多个图片 没有疑问
程序中的二次封转:photo 封转了 Photo和PhotoAttributeValue
提示:遇到那种单纯的主从关系表的,都可以将从表作为主表的一个附加属性
增加,通过
修改
删除
查询
PBcms频道菜单加载流程
菜单的加载流程
登录-->获取用户的信息-->检查用户的权限[判断当前用户的角色是否有查看该菜单的权限]-->加载菜单获取信息
PBcms权限控制思路
PBcmsURL重写机制
URLReWrite 参数列表的配置
name 标识的名称 article_list1
path URL重写表达式 article/{0}/{1}.aspx
pattern 正则表达式 article/(\d+)*/(\w+).aspx$
page 源页面地址 article_list.aspx 【系统中真实存在的aspx文件】
querystring 传递的参数 category_id=$1^page=$2
templet 模板名称 article_list.html
channel 所属的频道 1
type 频道的类型 list
inherit 继承的类名 DTcms.Web.UI.Page.article_list
Name: URL配置的(名称)key,唯一标识
Path: URL重写后的地址
pattern: URL重写的正则表达式
page: 源页面真实名称
querystring: 传输的参数($1,$2,$3 ……)
templet: 对应的模板文件的名称
channel: 所属频道的ID,不是频道请为0
type: 该页面的类型(首页:index,列表页:list,详细页:detail,不允许重写:no)
inherit: 该页面所要继承的全局限定类名
配置选项
<add name="reurl" type="Test.UrlRewriter,WebApplication5" /> 该类的完全限定的名称 程序集的名称
需要面对的情况 伪URL的情况
1.伪URL
2.请求目录
3.请求静态的文件
思路:混合动态和静态的
部分页面可是实现完全的静态,比如最新发布的文章 等等 较老的文章 就必须就是用动态的话进行管理
PBcms模板生成机制
PBcms无限极分类的思路策略
实现四大操作:查询 增加 修改 删除
设计思路
分类ID 分类名字 分类的ID【0表示顶级分类】 分类的层级【从1级别分类开始】 分类的父级ID
查询
系统设计的分类 和频道有关,输入频道的chanel_id和parentid=0便可以查询出该频道下所有的分类,使用了迭代的算法
增加
1--添加父类的情况
2--添加子类的情况
修改
删除
删除一个分类,该分类下面的子分类也一并进行删除