从零开始编写属于我的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     }

改天继续写

时间: 2024-10-10 13:27:12

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

从零开始编写属于我的CMS:(六)插件

二三四五还没写,先写六吧(有道友说想看看插件部分). 这里是一 从零开始编写属于我的CMS:(一)前言 一,首先预定义接口 新建类库,WangCms.PluginInterface 新建两个类,一个实体Models.cs,一个接口IPlugin.cs Models是插件所用到的实体集合类:IPlugin是为第三方预定义接口,所有插件必须实现该接口. 实体Models代码如下 1 namespace WangCms.PluginInterface 2 { 3 public class Plugin

从零开始编写属于我的CMS:(一)前言

一,项目背景 记得大学毕业课题,我就是选择做个CMS,不过当时虽然做了个,不过感觉不是很好,所以现在又重做了,顺便发上来供大家讨论的.虽然CMS不是什么特别的项目,但是还是想从一个普通项目学到更多的东西. 二,核心技术 使用asp.net mvc5 模板引擎使用razor. 还有简单数据操作工具WangSql,反正我用起来很爽. 大家都应该知道CMS最重要的一点就是模板,所谓快速建站还能适应各种需求,除了这些网站本来就有共同点外,最重要一点就是模板.模板甚至还可以体现网站业务,一套模板就可以撑起

从零开始编写自己的C#框架(5)——三层架构介绍

原文:从零开始编写自己的C#框架(5)--三层架构介绍 三层架构对于开发人员来说,已经是司空见惯了,除了大型与超小型项目外,大多都是这种架构来进行开发. 在这里为初学者们简单介绍一下三层架构: (下面内容摘自<趣味理解:三层架构与养猪-<.NET深入体验与实战精要>>,这是以前看到的关于三层架构介绍,觉得挺经典的,大家有时间的话认真看看) 对比以上两图,我们可以看出: 1)数据库好比猪圈 ,所有的猪有序地按区域或编号,存放在不同的猪栏里. 2)DAL 好比是屠宰场 ,把猪从猪圈取出

从零开始编写自己的C#框架(3)——开发规范

原文:从零开始编写自己的C#框架(3)--开发规范 由于是业余时间编写,而且为了保证质量,对写出来的东西也会反复斟酌,所以每周只能更新两章左右,请大家谅解,也请大家耐心等待,谢谢大家的支持. 初学者应该怎样学习本系列内容呢?根据我自己的学习经验,一般直接看一遍的方法,学习与认知都会比较浅,很快就忘了.而看完后写笔记.手抄或将所看的内容照着打一遍或多次的,可以比较深刻的理解文章或代码中的思想,并能将里面的核心内容牢记在心. 对于开发规范,都是老生常谈的事情了,很多正规一些的公司都有一套规范来约束,

从零开始编写自己的C#框架(7)——需求分析

原文:从零开始编写自己的C#框架(7)--需求分析 本章内容虽然叫"需求分析",实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚的书,而需求分析在本系列中,是帮助大家了解项目的基本要求(主要针对本项目而已).而写本章的主要目的想告诉初学者们一些常识与重要性,顺便写一写本项目的开发需求与需求文档格式,而不是具体的需求分析步骤.由于个人水平有限,文笔也并不怎么样,为了加快进度早点进入编码阶段所以写得有点水,大家先将就将就吧. 慢工出细活,磨刀不误砍材工.计划将要做

从零开始编写自己的C#框架(9)——数据库设计与创建

对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常......当然不同的公司与项目要求不同,初学者要学会适应不同的项目开发要求,使用本框架开发时,必须严格按照本章节的要求来设计数据库,不然可能会产生不可控的异常. 从零开始编写自己的C#框架 数据库设计规范   文件状态: [√] 草稿 [  ] 正式发布 [  ] 正在修改 文件标识: C#框架 当前版本

从零开始编写自己的C#框架(24)——测试

导航 1.前言 2.不堪回首的开发往事 3.测试推动开发的成长——将Bug消灭在自测中 4.关于软件测试 5.制定测试计划 6.编写测试用例 7.执行测试用例 8.发现并提交Bug 9.开发人员修复Bug 10.对已修复Bug进行返测 11.将修复完成的Bug关闭,对未修复的Bug重新激活 12.灵活使用压力测试工具 13.测试与版本控制 14.小结 15.附件下载 1.前言 对于测试,很多公司并不看重,接触过不少朋友或客户,打开网站随便点击一下,就可以很容易发现爆黄页.404.UI变型(浏览器

从零开始编写自己的C#框架(1)——前言

原文:从零开始编写自己的C#框架(1)--前言 记得十五年前自学编程时,拿着C语言厚厚的书,想要上机都不知道要用什么编译器来执行书中的例子.十二年前在大学自学ASP时,由于身边没有一位同学和朋友学习这种语言,也只能整天混在图收馆里拼命的啃书.而再后来也差不多,自学了很多不同的知识,都一直只能自己默默的克服一个又一个困难.所以这几年带一些应届生或只有一两年经验的新人时,都会同他们讲:你们现在太幸福了,有问题可以找度娘,还可以找我来解决.做为过来人,能深深的体会到刚入门的时候,没有系统的介绍和老师指

从零开始编写自己的C#框架(6)——SubSonic3.0插件介绍(附源码)

原文:从零开始编写自己的C#框架(6)--SubSonic3.0插件介绍(附源码) 前面几章主要是概念性的东西为主,向初学者们介绍项目开始前的一些知识与内容,从本章开始将会进入实操阶段,希望跟着本系统学习的朋友认真按说明做好每一步操作(对于代码最好是直接照着文档内容在你的IDE中打一次出来,而不是使用复制粘贴),这样对你理解后面的章节会有较好的帮助,如果你对我这种书写方式有什么建议或支持,也希望在评论中留言,谢谢你的支持. SubSonic3.0简介 SubSonic是Rob Conery用c#