首页 > 代码库 > 从零开始编写属于我的CMS:(二)系统讲解

从零开始编写属于我的CMS:(二)系统讲解

目录

1 系统管理

   1.1 系统设置

   1.2 路由设置

   1.3 缓存管理

   1.4 模板管理

 

2 系统用户

   2.1 角色管理

   2.2 管理员管理

 

3 站点管理

   3.1 站点设置

   3.2 频道管理

   3.3 栏目管理

  3.4 项目管理

 

4 内容管理

5 高级管理

   5.1 内容回收

   5.2 表单管理

   5.3 插件管理(未实现)

 

 

正文

1.1 系统设置

      主要用于设置系统相关信息,包括基本信息,前线设置,邮箱设置。

      表结构

技术分享

      整个系统设置只是一个键值对的值,KEY:SysConfig VALUE:xml/json

      使用时,根据KEY取出配置序列化即可。这样方便维护和后期扩展,毕竟这个只是一条数据而已,该表还有可能存储系统其他配置信息。目前约束,都是键值对存值且值都是xml/json格式。

      实体

 1     public enum SiteStatus
 2     {
 3         [Description("开启")]
 4         Open = 0,
 5         [Description("关闭")]
 6         Close = 1
 7     }
 8     public enum LogStatus
 9     {
10         [Description("开启")]
11         Open = 0,
12         [Description("关闭")]
13         Close = 1
14     }
15     public class SysConfig
16     {
17         public string SiteName { get; set; }
18         public string SiteDomain { get; set; }
19         public string CompanyName { get; set; }
20         public string CompanyAddress { get; set; }
21         public string CompanyTelephone { get; set; }
22         public string CompanyMail { get; set; }
23         public string ICP { get; set; }
24 
25 
26         public SiteStatus SiteStatus { get; set; }
27         public string SiteRemark { get; set; }
28         public LogStatus LogStatus { get; set; }
29 
30 
31         public string SmtpServer { get; set; }
32         public string SmtpPort { get; set; }
33         public string MailAccount { get; set; }
34         public string MailPassword { get; set; }
35         public string MailNickName { get; set; }
36     }

 

 1.2 路由设置

      路由是对前台所有访问路径的管理,同时也是连接访问路径和模板关联的纽带。

      路由是区分多站点的,(多站点看后面),每个站点都自己一套路由配置,一个路由可以设置调用的Controller和Action以及对应的模板。路由最重要的当然路径规则,每个路由可以对应多个路径规则,路径规则一律使用正则匹配,根据配置顺序匹配,匹配到一个即止。路由参数(可多个)也可以在此配置,可以含有默认参数,如无默认参数用$1,$2...占位。

      如图,

    技术分享

        表结构

技术分享

       实体

 1     public enum RouteType
 2     {
 3         [Description("")]
 4         None,
 5         [Description("主页")]
 6         Index,
 7         [Description("列表")]
 8         List,
 9         [Description("详情")]
10         Detail,
11         //[Description("插件")]
12         //Plugin,
13         [Description("其他")]
14         Other
15     }
16     public class Route
17     {
18         public string Id { get; set; }
19         public string SiteId { get; set; }
20         public string Name { get; set; }
21         public RouteType Type { get; set; }
22         public string ControllerName { get; set; }
23         public string ActionName { get; set; }
24         public string TempletFile { get; set; }
25         public string Remark { get; set; }
26         public string RouteExp
27         {
28             get
29             {
30                 try
31                 {
32                     return Commons.SerializeHelper.ToJson<List<RouteExp>>(RouteExpList);
33                 }
34                 catch
35                 {
36                     return null;
37                 }
38             }
39             set
40             {
41                 try
42                 {
43                     RouteExpList = Commons.SerializeHelper.FromJson<List<RouteExp>>(value);
44                 }
45                 catch { }
46             }
47         }
48 
49         public List<RouteExp> RouteExpList { get; set; }
50         public Route()
51         {
52             RouteExpList = new List<RouteExp>();
53         }
54     }
55     public class RouteExp
56     {
57         public string UrlExp { get; set; }
58         public string ParExp { get; set; }
59 
60         //扩展字段
61         public bool IsExist { get; set; }
62     }

 

      

 改天继续写

 

 

   

从零开始编写属于我的CMS:(二)系统讲解