1.杨可乙(河南省民政学校,河南 郑州 450007) 2.张天祥(河南省民政学校,河南 郑州 450002) 摘 要:内容管理系统广泛应用在门户网站、电子政务、电子商务、微信与微博等多方面。ThinkPHP包括了很多常用的功能特性,在企事业单位各种网络服务建设中,有很多应用。本文对CMS的构建进行了介绍,具体描述了基于MVC架构模式构建CMS服务平台所涉及的主要内容及典型应用,对采用ThinkPHP实现CMS的核心问题进行了分析研究。 内容管理系统(缩写CMS),英文全称为Content Management System。内容是指多样类型的信息,如文本、图片、网面、视频、音频等。各大企事业单位的官网都是一个内容管理系统,如综合门户网站、商业网站,个人Blog网站,它们存储着大量的信息,添加,更新,删除,管理这些信息是日常性工作。在早期,如果管理网站内容,需要手工代码的方式进行,但随着信息技术日新月异的发展,在面对海量的数据时,单靠管理者手工的方式就无所适从,CMS也就应运而生。网站的各级管理者只需要按系统模块做相应的工作, CMS来处理相关的、具体实现的事务,从而就节省了大量的人力、物力与时间。 1 CMS的目标和系统设计 一个商业级的CMS,首先应该满足可以让各级管理员方便地进行栏目管理、文章管理、会员管理,管理系统内的角色权限,并且进行系统设置等;用户可以浏览栏目、浏览文章、留言评论、搜索文章,注册成为会员参与互动等,并且系统还应具有可扩展性,可在此平台上进行二次开发,增加新的网络应用,这之中,关键问题就是如何有效地提高用户体验感和如何让管理者科学地管理信息数据,通过初始阶段的需求分析,下面7个模块是一个成熟的CMS系统所必备。 1) 用户注册模块,对CMS新增用户基本信息的保存,登录后能够修改当前用户口令,更改个人基本信息并能个性化设置。 2) 用户管理模块,提供具有管理权限的管理员使用,能够维护CMS用户信息,如增加、更新、删除、更改头像并能够手动调整用户的权限等基本设置。 3) 内容管理模块 栏目管理功能,栏目也属于内容的一种形式,通过栏目管理能够实现栏目添加、修改、删除,模板设置,SEO设置,自定义字段、栏目等功能,并提供了页面区块机制,区块是基本的页面片段,用于展示在站点首页、栏目首页等。 内容类别管理,管理CMS系统内所有信息所属的类别,显示同一类别下的信息。 文章管理功能,可以对文章列表展示、详细信息浏览以及文章的添加、修改、删除等操作。 文本管理功能,网站内容是CMS系统中最核心的元素,这些元素包括文本,影音视频等,本系统为文档管理提供了便捷的操作界面。内容维护人员不需要掌握HTML,就可以利用CMS提供与Word类似的文本编辑器进行编排文档信息,并能够简洁地进行图文混排、分页管理等操作。 上传管理功能,能够进行影音视频的管理。包括上传、缩略图、格式转换、分割、影音合并等功能。 内容审核功能,对发布的信息进行上级审核与同级监督机制,从而防止信息未审批就被错误地发布,带来不良的后果。 4) 采集模块,CMS能够根据自定义设置从其他网站上采集与本系统相关的文章和数据信息,能够快捷发布新闻信息、便于丰富网站内容、减少编辑人员工作量等功能。 5) 检索模块,可以对内容进行高效的全文检索,并能够自定义检索结果展现形式,以满足不同行业的个性化需求。同时还包括智能化知识检索技术,自然语言查询等[1]。 6) 权限控制模块,以满足网站多层级组织模式,方便各级管理者进行网站内容管理。 7) 扩展模块 模板插件功能,CMS实现了灵活的模板机制,灵活地适应了用户的个性化需求,能够在日后维护中,方便地添加、升级插件,更改网站前台主题。 投票与广告功能,利用模板可以生成投票系统、调查问卷。广告管理可以对文字代码、固定位置、漂浮移动等各种版位广告进行配置。 统计分析功能,能够详细统计出来访数据信息并生产统计图,这样可以更好地得到统计报告并了解访问者。 2 CMS系统的实现 2.1相关技术分析 1) MVC MVC是Model-View-Controller的缩写,MVC有三个组成部分:模型、视图、控制器。MVC分别管理着系统的输入、处理和输出,并使它们相对分离,因此这个系统就变成三个层:模型层、视图层和控制层。Model不通过视图和控制器就可以对数据库直接访问,在模型层中封装了与系统业务逻辑相关的数据以及对数据处理的规则;并且Model能够同时向多个View提供数据,减少了代码的重复性。View是用户最直接体验到的信息,确保数据有目的的展示给用户,界面友好程度取决于View设计部分。Controlle利用模型和视图来控制系统的流程,它接收用户的输入,并及时对事件作出响应。事件导致控制器改变模型或视图[2],或同时改变两者,只要控制器改变了模型的数据或者属性,所有依赖的视图就会更新,MVC模式使得PHP在大型Web项目开发中耦合性低、内聚性高、重用性好、可维护性高、有利于软件工程化管理[6]。 2) ThinkPHP ThinkPHP是开源的,它基于MVC和OO的轻量级PHP开发框架[3]。它引入了CBD(核心+行为+驱动)架构模式,使用OO的开发结构和MVC设计模式,在单入口、CURD(创建、更新、读取、删除) 、RBAC、模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。现在的ThinkPHP V5.0已经重构了包括路由、日志、异常、模型、数据库、模板引擎和验证等模块,无论是WEB开发还是API开发,都更简单、更快速[5]。ThinkPHP中的MVC分层体现在:Model类来完成模型的定义;View类和模板文件组成视图,模板能够完全分离出来,可以独立制作和预览;App类负责调度控制器,而Action控制器承担控制器的角色,并完成业务过程控制。 2.2 CMS的实现 基于ThinkPHP框架的CMS系统采用LAMP(Linux- Apache-MySQL-PHP) 网站架构,开发工具采用Zend Studio 13.6。在CMS实现过程中有三个主要步骤,一、进行数据库和数据表的设计与创建工作,同时合理配置系统文件;二、创建系统的控制器类和与之对应的模型类,在控制器类中编写系统具体实现功能的代码以及与模板文件有关的代码,在模型类中编写和数据库操作相关的代码,这就需要为主要模块定义各自的控制器类,系统的默认模块是Index,对应控制器就是项目目录下面的IndexAction.class.php,控制器必须继承Action类,一个模块可以实现多个操作方法;三、界面的设计主要是模板文件和模板引擎,要输出视图,必须在控制器方法中进行模板渲染输出操作。为了多模板间的切换而设计出了模板主题功能,可以快速地进行主题界面的更新操作。根据所需的页面文件,在需要显示的地方插入模板变量,并不断调整页面模板文件以适应各种浏览器和显示器的类型,最终发布到互联网站点上面[4]。 在CMS系统设计中,需要很多的数据操作,利用ThinkPHP框架中的CURD就变得非常方便。如果要操作数据库中的数据表,就需要创建一个对应的模型类,并且使用ThinkPHP的create、add、save和delete方法就能快捷地进行操作数据库数据,如用户注册、发表文章、删除评论等。在保证业务逻辑没有安全隐患的前提下,还应该利用ThinkPHP框架内建的安全机制来保证系统、数据库、服务器的安全。所有核心文件均不能直接在URL中被访问,对于关键的操作需要检查用户权限。 3 结论 本系统采用B/S结构,具有良好的运行效率和稳定性;程序开发采用面相对象的编程方法和MVC设计模式,提高了系统的可靠性;系统同时具有很高的可扩展性,为系统的质量提供了规范依据。结果测试,系统运行稳定,主题界面更换便利,维护成本低廉,安全性良好。 参考文献 [1]耿路,聂足.基于CMS的企业网站的设计与实现[J],计算机工程与设计,2009(2) :351-361. [2]江国炳.基于CMS的中小企业网站设计和实现[D],江苏:江苏大学,2008,25-28. [3] ThinkPHP完全开发手册-3.1[EB/OL],上海:上海顶想信息科技有限公司,2012. [4] 常本超.基于Thinkphp框架的毕业论文管理系统设计与实现[J],计算机光盘软件与应用2011(14):212. [5] ThinkPHP V5完全开发手册[EB/OL],上海:上海顶想信息科技有限公司,2016. [6]夏磊.ThinkPHP实战[M],北京:清华大学出版社,2017.
|