摘 要:针对现有内容管理系统的缺点和Web2.0开发过程中的实际需求,提出以jQuery和LAMP技术为开发平台,实现内容管理和表现的分离,内容管理和数据分发的分离,可视链接改良,数据性能优化,面向搜索引擎友好的CMS。系统结合php模板引擎Smarty和Web前端新兴javascript框架jQuery,采用高性能PHP开源框架Yii Framework,在由Ubuntu Linux和Mysql数据库搭建的系统和数据环境中改进CMS功能和效率。
关键词:内容管理系统(CMS);jQuery;LAMP;Yii Framework;Smarty
基于jQuery和LAMP的内容管理系统实现了网站模板与网站程序完全分离,后台管理采用方便、易用、人性化的操作方式,使用基于角色的用户管理,有效地解决了现实网站开发中的诸多问题。
1.体系结构
1.1 Yii框架的体系结构
Yii 使用了 Web 开发中广泛采用的模型-视图-控制器(MVC)设计模式。在 MVC中,模型代表信息(数据)和业务规则;视图包含了用户界面元素,例如文本,表单等;控制器则管理模型和视图中的通信。
1.2基于jQuery和LAMP的内容管理系统体系结构
在Ubuntu Linux操作系统和MySQL数据库的基础上,采用jQuery和Yii Framework开发内容管理系统,视图层和业务层分离,具有低耦合性,高重用性,可适用性,较低的生命周期成本,快速的部署,可维护性,有利于软件工程化管理等优点。
第一层为表现层,利用优秀的javascript框架jQuery构筑内容管理系统以及网站页面的前端表现元素,使用Smarty将控制器中变量赋到页面中;第二层为业务层,主要负责内容管理系统各项管理业务逻辑的实现,处理用户的请求,返回响应;第三层为数据处理层,利用Yii框架的数据访问对象,查询构造器和基于对象关系映射的动态记录实现MySQL数据库的增、删、改、查和表连接等操作,返回业务层所需数据。
2.关键技术
内容管理系统的实现技术分为前端和后端两方面,前端为javascript及其框架jQuery和CSS、Smarty等,后端使用php框架Yii,项目中将会涉及到Yii的MVC模式和它的各个组件,如缓存、表单、数据库组件。
2.1 jQuery框架
jQuery采用CSS选择器引擎Sizzle实现html元素提取、html元素操作、css操作,提供了html事件处理函数、javascript特效和动画、html dom遍历和修改、ajax和实用工具,还可以通过插件机制实现扩展开发。
2.2 Ajax技术
Ajax指异步JavaScript及XML(Asynchronous JavaScript And XML),实现了从基于Web的应用到基于数据的应用的转换过程。通过Ajax,JavaScript可使用XMLHttpRequest对象来直接与服务器进行通信,在不重载页面的情况与Web 服务器交换数据。
2.3 Yii框架的工作流程
举例来说,用户发出访问URLhttp://www.example.com/index.php?r=post/show&id=1的请求,Web服务器通过执行入口脚本index.php 处理此请求,入口脚本创建一个应用实例并执行。应用从一个叫做 request 的应用组件中获得了用户请求的详细信息,在一个叫做 urlManager 的应用组件的帮助下,决定请求的控制器和动作 。
3.内容管理的实现
3.1 项目核心功能的实现
首先需要有一个整体规划,合理的组织目录结构,处理好各模块之间的关系,处理好各部分之间的顺序。对于使用频繁的函数,为了实现代码重用,将其写入一个公共文件里。最重要的模块是文章系统,实现查看文章、搜索文章、根据标签搜索文章等功能。
3.2 附件上传与图片处理
上传文件有单文件上传、多文件上传之分,有的将文件保存在文件夹中,有的保存在数据库中。程序需要判断是否是图片附件,如果是图片附件,则判断后台是否允许生成缩略图,如果图片的尺寸比规定的缩略图的尺寸大,则计算缩略图尺寸,生成缩略图。
3.3 后台管理模块
文章管理模块:模板、文章列表等;模板管理模块:程序模块、模板;评论管理模块:设置评论可见状态、批量处理评论;友情链接管理模块:添加友情链接、更新友情链接等;数据管理模块:修复数据库、备份数据库。
3.4安全部署与优化
环境设置与程序安全:设置php安全模式、设置脚本访问目录、设置禁用函数、设置register_globals、设置magic_quotes_gpc、设置报错信息;防止注入漏洞等。
4.结束语
基于jQuery和LAMP的内容管理系统,利用jQuery的跨浏览器特性以及丰富的函数库
增强了网站内容的用户体验,利用Yii框架的MVC模式提高了网站开发的效率,降低了网站维护的成本,深化了内容管理系统的研究与应用,具有重要的实用价值。
参考文献:
[1] 陈洪波. 基于门户技术的内容管理系统研究[D]. 硕士学位论文. 中国科学院计算技术研究所. 2006.4.
[2] 卞景贺. 基于J2EE的内容管理系统设计与实现[D]. 硕士学位论文. 厦门大学. 2008.11.
[3] 单丹东,张晓菲,魏然. 锋利的jQuery . 人民邮电出版社 , 2009.6.
[4] 三扬科技. 大道PHP:LAMP+Zend+开源框架整合开发与实战 .电子工业出版社 , 2010.7.