【PHP开源代码栏目提醒】:网学会员,鉴于大家对PHP开源代码十分关注,论文会员在此为大家搜集整理了“基于Joomla的新闻网站的设计与开发论文 - 毕业设计”一文,供大家参考学习!
I 摘要 Joomla 是一套在国际
开源界相当知名的内容管理系统Content Management System CMS它构架在
PHP语言MySQL数据库之上。
可以运行在如Linux、Windows、MacOSX等各种不同的平台上。
本
论文是基于Joomla的新闻网站配合MySQL数据库管理系统完成设计与实现利用getDBO和JTable数据库访问技术对数据进行操作。
本系统主要实现了网站的前台主要功能模块主菜单模块方便网站浏览者浏览网站信息导航菜单模块方便网站浏览者对网站结构的掌握新闻快讯模块第一时间呈现新闻快讯最新最热文章模块让网站访问者了解最热门文章和最新发布的文章功能。
由于该系统采用
PHP编写而
PHP的易用和开发者众多并且该系统扩展接口灵活有很多第三方扩展。
Joomla发展前景广大 可预计的未来采用Joomla建站解决方案将会成为建站领域的一只主力军。
关键词
开源Joomla数据库CMS II ABSTRACT Joomla is a set of international well-known community quite Content Management System Management SystemCMS search its framework in
PHP/MySQL database language. Can run on various platforms such as Windows Linux MacOSX etc. This paper is based on the news website with Joomla MySQL database management system design and implementation using getDBO and JTable database access technology to manipulate data. This system mainly realizes the front of the website main function modules the main menu module: visitors browsing convenient information. Navigation module: convenient visitors to the site to site structure. News flash: first present news flash.This module: let the hottest new visitors know the latest and most popular articles function. Because this system USES and
PHP developer and easy and flexible expand the system there are many third interface. Joomla prospect broad Can be expected future using Joomla construction. Some specific solutions will become a mainstay of the site area. Keywords: Opens the source Joomla Database CMS. III 目录 摘要 ........................................................................................................................... I ABSTRACT .............................................................................................................. II 第1章 绪论............................................................................................................. 1 1.1 背景 ............................................................................................................ 1 1.2 研究内容 .................................................................................................... 1 第2章 JOOMLA的系统开发方法 ......................................................................... 3 2.1 JOOMLA的MVC开发模式分析 ................................................................. 3 2.2 数据库访问技术分析 ................................................................................. 5 2.2.1 getDBO数据库访问技术分析 ........................................................ 5 2.2.2 JTable数据库访问技术分析 ............................................................ 6 2.3 运行及开发环境介绍 ................................................................................. 7 2.3.1 Apache Server ................................................................................... 7 2.3.2 MySQL ............................................................................................. 8 2.3.3
PHP语言环境 .................................................................................. 9 2.4 本章小结 ...................................................................................................10 第3章 系统需求分析 ............................................................................................ 11 3.1系统非功能需求分析 ................................................................................. 11 3.2系统功能需求分析 .................................................................................... 11 3.3 本章小结 ...................................................................................................12 第4章 数据库设计 ............................................................................................... 14 4.1 数据库结构分析与创建 ............................................................................14 4.2 概念结构设计 ............................................................................................15 4.3 逻辑结构设计 ............................................................................................16 4.4 数据库安全性和完整性 ............................................................................19 4.4.1 数据库的安全性 .............................................................................19 4.4.2 数据完整性 ....................................................................................20 4.5 本章小结 ...................................................................................................20 第5章 系统设计与实现 ....................................................................................... 21 IV 5.1 系统总体框架 ............................................................................................21 5.1.1 网站前台 ........................................................................................21 5.1.2 网站后台基本功能 .........................................................................23 5.2 网站前台设计与技术实现 ........................................................................27 5.2.1 在线人数模块开发流程 .................................................................27 5.2.2 文章标题插件开发流程 .................................................................32 5.3 网站后台设计与技术实现 ........................................................................34 5.3.1文章管理模块 ..................................................................................34 5.3.2 媒体管理模块 .................................................................................35 5.3.3 菜单管理模块 .................................................................................37 5.3.4 用户管理模块 .................................................................................38 5.4 本章小结 ...................................................................................................40 第6章 结论........................................................................................................... 41 致谢 ........................................................................................................................ 42 参考文献 ................................................................................................................ 43 1 第1章 绪论 1.1 背景 目前互联网站已经成为新闻传播领域中影响巨大的、最具发展潜力的主流媒体并且已逐步渗入到网络购物、网上银行等领域1。
根据中国互联网络信息中心CNNIC发布的信息截至2008年6月底我国网民数量达2.53亿首次大幅超过美国跃居世界第一位。
统计表明中国网站数量持续增长共有191.9万个年增长率为46.3。
预计到2011年中国互联网市场规模将达到1375.04亿互联网总用户数将达到6亿2。
面对如此规模庞大、发展迅猛、商机无限的互联网市场众多公司企业、单位个人以及淘宝购物等网站如雨后春笋般崛起开发建设网站也成了当前的热门领域。
但是专业、成熟的动态网站开发门槛相对较高。
从技术上来说动态网站的开发除了需要熟悉Photoshop、Dreamweaver、HTML、XHTML、CSS等知识外还要掌握基于ASP、
PHP、JSP、.Net等语言的数据库开发技术对于非计算机相关专业人员来说这是一道迈不过去的门槛。
从开发成本上来说要建设一个专业动态网站除了需要专门的程序人员外还需要聘请专门的美工以及制作人员这无疑加大了网站的建设成本。
从后期维护来说网站风格的变化、布局的改变、功能的增减等都要涉及较大的工作量、甚至更多投入。
那么有没有这样一种平台或者技术让正在憧憬WEB美好未来的准站长们能像操作“傻瓜式相机”一样不再受技术、成本以及后期维护的困扰建站于股掌之间呢答案是肯定的Joomla能让你消除这些绊脚石建设属于自己功能丰富、个性十足的网站3。
1.2 研究内容 Joomla 是一个相当灵活的CMS借助于丰富的第三方扩展和桥接器4它几乎可以建设所有类型的网站从个人博客到联合国网站都可以用Joomla来建造。
因此本人研究的基本内容就基于Joomla的新闻网站。
拟解决的主要问题Joomla的扩展与开发包括组件、模块、触发器现称“插件”和桥接器。
2 其主要功能安装、卸载、管理组件功能轻松上传、删除、管理图片等媒体功能支持本地发布文章功能会员权限等级功能强大的菜单管理功能自动发布文章功能多种所见即所得编辑器站内搜索功能投票管理功能广告管理功能电子商务功能多种语言功能缓存功能等。
最后对
论文进行了总结并对未来的工作前景进行了展望。
3 第2章 Joomla的系统开发方法 2.1 Joomla的MVC开发模式分析 1什么是MVC MVC是英文词语“Model-View-Controller”的缩写即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离这样一个应用被分成3个层——模型层、视图层、控制层。
这是软件工程中常使用的经典设计模式用来表现大量数据的复杂计算应用中5。
程序设计者希望可以分离数据和相关的用户界面以便于改变用户界面的时候不影响数据处理逻辑或者改变数据的时候也不需要修改用户界面。
MVC通过一个中间层也就是所谓的控制器来分离访问业务逻辑部分与表现数据的用户界面部分从而解决了这个问题。
通常使用的时候MVC分解一个应用程序为3个层次表现层、域和数据访问。
在表现层又进一步分离成为视图和控制器。
对一个应用来说MVC比一般的设计模式更加关注应用的体系结构。
2模型 在Joomla系统中MVC设计模式很重要的体现就是数据模型。
数据模型主要指实体对象的数据保存持续化。
比如将一张订单保存到数据库从数据库获取订单。
在Joomla中模型是指MySQL数据表对应的数据对象模型。
3视图 代表用户交互界面对于Web应用来说大多数情况是HTML界面但有可能为XHTML、XML等多种格式输出。
随着应用的复杂性和规模性越来越大界面的处理也变得更富有挑战性。
一个应用可能有很多不同的视图MVC设计模式对于视图的处理仅限于视图上数据的采集和处理以及用户的请求而不包括在视图上的业务流程的处理。
业务流程的处理交给模型处理。
比如一个订单的视图只接受来自模型的数据并显示给用户以及将用户界面的输入数据和请求传递给控制和模型。
把模型转化成一种适合用户交互的形式一般是某用户界面元素。
在Joomla中视图层是指所有设计模板。
4控制器 控制器可以理解为从用户接受请求将模型与视图匹配在一起共同完成用户的请求。
划分控制层的作用也很明显它清楚地告诉你它就是一个分发器4 选择什么样的模型选择什么样的视图可以完成什么样的用户请求。
控制层并不做任何数据处理。
例如用户点击一个链接控制层接受请求后并不处理业务它只把用户的信息传递给模型告诉模型做什么选择符合要求的视图返回给用户6。
比如Joomla中模块主文件就体现了控制层的功能接受传递信息通过调研helper的方法处理将处理后数据和视图结合输出。
5 MVC重构思路 根据Joomla MVC机制对测试模块的结构分析如下mod_test.
php、helper.
php、tmpl/default.
php共同组成模块的“类MVC”结构。
mod_test.
php好比是“控制层”担当逻辑控制方面处理。
逻辑控制的具体功能是调用helper.
php的方法实现。
Helper.
php好比是“模型”。
逻辑处理完毕得到结果后将结果和tmpl文件夹里的“视图”default.
php模板程序进行结合将结构输出显示。
测试模块在MVC结构下运行机制如图2-1所示 图2-1 模块在MVC结构下运行机制图 5 2.2 数据库访问技术分析 2.2.1 getDBO数据库访问技术分析 要使用getDBO数据库访问技术首先要在Joomla根目录下的components 文件夹下创建一个名为com_db的文件夹这就是要创建的简单组件了在其中创建名为db.
php的文件7输入
代码 ltecho quotlth3gtHithis is a testing component for database lt/h3gtquotgt 由于在本地调试所以 在浏览器中输入localhost/joomla/index.phpoption com_db可以看见输出文字说明第一步已经搞定了。
在数据库中创建表 jos_db 再打开 phpMyAdmin 等工具将更加方便。
SQL语句如下 CREATE TABLE jos_db id INT 2 NOT NULL AUTO_INCREMENT PRIMARY KEY name VARCHAR 20 NOT NULL comment VARCHAR 20 NOT NULL 接着随便在其中插入几条记录以方便操作。
下面开始数据库操作。
首先是基于getDbo 先从简单的查询讲起。
a查询
代码 dbamp JFactory::getDBO querySELECT FROM __db db-gtsetQueryquery resultdb-gtloadObjectList foreachresult as row echo id is .row-gtid. name is . row-gtname . comment is .row-gtcomment.ltbr /gt 必须先通过
代码 dbamp JFactory::getDBO获得数据库操作对象然后设置查询语句接着通过 loadObjectList 载入结果集。
当查询结果只有一个时也可以使用 loadResult函数。
之所以使用__的原因是Joomla会自动将其替换为你所设定的数据库前缀。
6 b插入和删除 插入可以通过两种方法来一种比较简单的做法如先将要插入的数据库对象复制比如要插入一条新的记录赋值如下 rowx-gtnamequotinsertquot rowx-gtcommentquottest insertquot 由于设置了 id 为自动增长所以可以不给它值然后调用函数。
代码 db-gtinsertObject__dbamprowx插入。
另一种方法的原理和删除类似都是调用了 Executequerys 这个方法。
因此插入的sql语句
代码 querysquotINSERT INTO joomla.__db id name comment VALUES NULLexecutetestexecute quot 然后调用函数
代码 db-gtExecutequerys 即可。
同样的删除记录你也可以执行相应的删除语句。
2.2.2 JTable数据库访问技术分析 要使用 JTable来实现数据库操作必须在刚才创建的com_db目录下8新建一个名为 tables 的文件夹在里面创建名为 jt.
php的文件文件名可以随意。
然后在里面插入如下
代码 ltphp defined_JEXEC or die class TableJt extends JTable var id var name var comment function __constructampdb parent::__construct __db id db gt 其中类名必须以 Table文件名组成否则等下会提示找不到文件。
在类里必须常见数据库表中相同的字段变量。
如果有的字段默认值不为空比如name默7 认为quotaquot的话那么name也应该给它赋值为 a 。
构造函数中第一个参数代表所属的表名称。
第二个则是下一步查询所需的关键字比如等下希望查询 id1的记录那么最好将它设置为 id 如果要查询 namequotyangqiquot的记录则将它设为 name。
然后就可以正常使用Jtable了在刚才的db.
php中继续增加
代码。
先要包含该JTable类的文件
代码 JTable::addIncludePathJPATH_COMPONENT.DS.tables 然后获得一个实例
代码 rowamp JTable::getINstancejtTable a查询 查询一个 id 为 3的记录
代码 id3 row-gtloadid echo row-gtname echo row-gtid echo row-gtcomment b插入和删除 要插入一条记录先得给它赋值比如先赋值如
代码 --row-gtnamequotjtablequot row-gtcommentquotusing jtablequot 然后调用store函数 row-gtstore 删除是搜索的反方法通过
代码 row-gtdeleteid 实现。
2.3 运行及开发环境介绍 2.3.1 Apache Server Apache是世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上。
Apache源于NCSAhttpd服务器经过多次修改成为世界上最流行的Web服务器软件之一。
Apache取自“a patchy server”的读音意思是充满补丁的服务器因为它是自由软件所以不断有人来为它开发新的功能、新的特性、修改原来的8 缺陷。
Apache的特点是简单、速度快、性能稳定并可做代理服务器来使用。
本来它只用于小型或试验Internet网络后来逐步扩充到各种Unix系统中尤其对Linux的支持相当完美。
Apache有多种产品可以支持SSL技术支持多个虚拟主机。
Apache是以进程为基础的结构进程要比线程消耗更多的系统开支不太适合于多处理器环境因此在一个Apache Web站点扩容时通常是增加服务器或扩充群集节点而不是增加处理器。
到目前为止Apache仍然是世界上用的最多的Web服务器市场占有率达60左右。
世界上很多著名的网站如Amazon.com、Yahoo、W3 Consortium、Financial Times等都是Apache的产物它的成功之处主要在于它的源
代码开放、有一支开放的开发队伍、支持跨平台的应用可以运行在几乎所有的Unix、Windows、Linux系统平台上以及它的可移植性等方面8。
Apache的诞生极富有戏剧性。
当NCSA WWW服务器项目停顿后那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序他们也很快认识到成立管理这些补丁程序的论坛是必要的。
就这样诞生了Apache Group后来这个团体在NCSA的基础上创建了Apache9。
本系统采用Apache Web服务器 毫无疑问是最佳选择。
2.3.2 MySQL MySQL是一个小型关系型数据库管理系统开发者为瑞典MySQLAB公司在2008年1月16号被Sun公司收购。
MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低尤其是开放源码这一特点许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程ISAM去连接表格。
不管怎样在经过一些测试后开发者得出结论mSQL并没有他们需要的那么快和灵活。
这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生这样这个API被设计成允许为用于mSQL而写的第三方
代码更容易移植到MySQL。
MySQL这个名字是怎么来的已经不清楚了。
基本指南和大量的库和工具带有前缀“my”已经有10年以上而且不管怎样MySQL AB创始人之一的Monty Widenius的女儿也叫My。
这两个到底是哪一个给出了MySQL这个名字至今依然是个迷包括开发者在内也不知道。
9 MySQL的海豚标志的名字叫“sakila”它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。
获胜的名字是由来自非洲斯威士兰的
开源软件开发者Ambrose Twebaze提供。
根据Ambrose所说Sakila来自一种叫SiSwati的斯威士兰方言也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个.