收藏 分享(赏)

毕业设计(论文)-基于ThinkPHP框架的博客系统(全套源码).doc

上传人:QQ153893706 文档编号:2295188 上传时间:2018-09-09 格式:DOC 页数:25 大小:832.50KB
下载 相关 举报
毕业设计(论文)-基于ThinkPHP框架的博客系统(全套源码).doc_第1页
第1页 / 共25页
毕业设计(论文)-基于ThinkPHP框架的博客系统(全套源码).doc_第2页
第2页 / 共25页
毕业设计(论文)-基于ThinkPHP框架的博客系统(全套源码).doc_第3页
第3页 / 共25页
毕业设计(论文)-基于ThinkPHP框架的博客系统(全套源码).doc_第4页
第4页 / 共25页
毕业设计(论文)-基于ThinkPHP框架的博客系统(全套源码).doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、全套源码加扣扣 153893706基于 ThinkPHP 框架的博客系统(2009 级 信息科技系)摘要:随着计算机和因特网的飞速发展,互联网信息资源日益丰富。博客,就是网络上发布和记录的流水日志,也被称为“网络日志” ,它以简易迅速便捷的方式发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台,打破传统报刊、杂志撰写文章的方式,是代表着新的生活方式和新的工作方式,更代表着新的学习方式。系统采用 PHP 动态网站开发技术,MYSQL 数据库,APACHE 服务器,利用 ThinkPHP 开源框架技术, HTML+CSS+javascript 等脚本语言,实现

2、基于 B/S 模式的个人日志发表和交流的平台个人博客系统。关键词:博客系统 PHP ThinkPHP 动态网页Abstract: With the rapid development of computers and the Internet, the Internet increasingly rich information resources. Blog, publish on the web and record log of water, also known as “web log“, it is simple and quickly and easily publish thei

3、r own experience, timely and effective and easily communicate with each other, and then set a variety of personalized show integrated platform, breaking the traditional newspaper, magazine to write articles on behalf of new lifestyles and new ways of working, but also represent new ways of learning.

4、The system uses PHP dynamic website development, MYSQL database, APACHE server, the ThinkPHP open-source framework, HTML + CSS + the javascript and other scripting language, personal log of B / S mode, and a platform for exchange - personal blog system.Key words: The blog system PHP ThinkPHP dynamic

5、 webpage目录第一章 需求分析与功能简介 .2一、开发的需求分析 .2二、开发的技术概要 .21、网站程序开发技术 .21.1、PHP 技术 21.2 、AJAX 技术 .22、网站前端设计技术 .21.1 、javascript 脚本语言 .21.2、 DIV+CSS 布局方式 2三、开发的环境配置 .21、系统运行平台 .22、开发工具选用 .2四、开发的设计思想 .21、OOP (面向对象的编程思想) .2全套源码加扣扣 1538937062、MVC 模型视图控制器思想 23、ORM 对象关联映射思想 24、单一入口访问思想 .2五、开发的目录结构 .2六、系统功能简介 .2第二章

6、 数据库结构设计 .2一、数据库表结构设计 .2二、数据库关联模型映射 .21、用户权限的关联模型 .22、文章分类标签的关联模型 .2第三章 网站后台功能实现 .2一、RBAC 基于角色的多用户访问控制功能 .21.1 RBAC 的全局配置参数 .21.2 RBAC 操作初始化配置 21.2 RBAC 用户的登陆检测 2二、AJAX 无刷新提交功能 2三、无限级分类功能 .2四、文章管理 .2五、角色授权管理功能 .2六、文件管理器功能 .2七、数据库备份功能 .2第四章 网站前台功能及实现 .2一、3D 标签云功能 .2二、日志归档功能 .2第五章 网站的用户体验 .2一、留言的字数统计

7、.2二、拖动型弹层 .2三、窗口化页面 .2第六章 总结 .2第七章 致谢 .2第八章 参考文献 .2第一章 需求分析与功能简介一、开发的需求分析越来越多的网络用户希望能够在网络平台上展现自己的个性,更方便地与人互动交流,无论是论坛、社区还是个人网站,都试图在这些方面进行努力,随着 WEB2.0 时代的到来,一个新的概念出现了博客。随着计算机网络的飞速发展,博客已经成为写网络日志必不可少的一种工具,也是一种简单有效的提供网络用户之间进行在线交流的网络平台,通过其可以结交更多的朋友,表达更多的想法,它随时可以发表日志,方便快捷。访客可以直接在个人 Blog 上留言,如提出问题或意见等。个人博客的

8、发展,也已经成为广告商业务扩展的重要领域。总之, Blog 是继 Email、BBS、ICQ 之后的第四种网络交互方式。Blog全套源码加扣扣 153893706是未来信息化教育和个人知识管理的强大而易用的工具。二、开发的技术概要1、网站程序开发技术1.1、PHP 技术PHP(Hypertext Preprocessor超文本预处理器)是一种 HTML 内嵌式的编程语言。PHP 的语法大部分兼容了 C、JAVA、Perl,并增加了 PHP 特有的语法结构,可以比 CGI 或 Perl 更快速的执行动态网页,只需要很少的编程知识就能建立一个交互的 WEB 站点。它可以管理动态内容,支持数据库,处

9、理会话和跟踪,甚至构建整个电子商务站点。PHP 是完全免费的开源产品,程序开发快,运行快,兼容 UNIX、LINUX、WINDOWS 等操作系统,可以在 IIS、Apache、Nginx 等 WEB 服务器端执行代码解析,能支持 MySQL、MSSQL、Oracle、SyBase 等主流数据库,构建 LAMP(Linux+Apache+Mysql+Php)可以非常快速地搭建一套动态网站系统。 ThinkPHP 是一个免费开源的,快速、简单的面向对象的轻量级 PHP 开发框架,是为了敏捷 WEB 应用开发和简化企业应用开发而诞生的。ThinkPHP 从诞生以来一直秉承简洁实用的设计原则,在保持出

10、色的性能和至简的代码的同时,也注重易用性。使用 ThinkPHP,你可以更方便和快捷的开发和部署应用。1.2 、AJAX 技术AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML) ,用于创建更好更快以及交互性更强的 Web 应用程序的技术。Ajax 不是一门编程语言,它的核心是 JavaScript 对象XmlHttpRequest,通过 XmlHttpRequest,用户可以在不重载页面的情况下直接与服务器进行通信,形成与Web 服务器间交互数据。这一特性不仅优化了网站界面和用户的体验,也提高了系统的性能,大大增强了网站的“动态

11、化” 。2、网站前端设计技术1.1 、javascript 脚本语言JavaScript 是一种能让你的网页更加生动活泼的程式语言,是一种动态、弱类型、基于原型的语言,通过浏览器可以直接执行。利用 JavaScript 能轻易的展现各类的网页特效,增加的网络用户的观赏性。它的代码结构比较松散,记录在 HTML 文件中,可以直接查看源码获得。Jquery 是 Javascrpt 的一个框架,轻量级的 js 库,兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+) 。jQuery 使用户能更方便地处理 HTML documents、events、实

12、现动画效果,并且方便地为网站提供 AJAX 交互。1.2、 DIV+CSS 布局方式DIV+CSS 是 WEB 标准中常用术语之一它是网页布局的一种方式,这种方式区别于传统的 HTML 网页设计语言中的表格(Table)定位,采用 DIV+CSS 的布局方式,可实现网页页面内容与表现相分离,优化了HTML 代码结构,能很好的被浏览器解析,同时也有利于搜索引擎的收录。 DIV+CSS 适应未来网络应用更多的需求。三、开发的环境配置1、系统运行平台操作系统 :WINNT运行环境 :Apache/2.2.17 (Win32)全套源码加扣扣 153893706PHP 程序版本 :5.3.5MYSQL

13、程序版本 :5.5.8浏览器:Firefox、IE9、Chrome2、开发工具选用程序开发软件:Zend Studio 8.0 、Dreamwever CS5、EditPlus3 数据库软件:phpMyAdmin图像处理软件:Photoshop CS5测试软件:IETester 、Firebug 、WebDeveloper、IE 调试工具四、开发的设计思想1、OOP(面向对象的编程思想)面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达

14、到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP 主要有以下的概念和组件: 组件 数据和功能一起在运行着的计算机程序中形成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。 抽象性 程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。 封装 也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。 多态性 组件的引用和类集会涉及到其它许多不同

15、类型的组件,而且引用组件所产生的结果得依据实际调用的类型。 继承性 允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。 2、MVC 模型视图控制器思想MVC 是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用 MVC 应用程序被分成三个核心部件:模型(M) 、视图(V) 、控制器(C) ,它们各自处理自己的任务。 视图 :视图是用户看到并与之交互的界面。视图就是由 HTML 元素和 web 应用程序组成的界面,它作为一种输出数据并允许用

16、户操纵的方式。模型 :模型表示企业数据和业务规则。在 MVC 的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 控制器 :控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击 Web 页面中的超链接和发送 HTML 表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。 3、ORM 对象关联映射思想对象-关系映射(Object/Relation Ma

17、pping,简称 ORM) ,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现全套源码加扣扣 153893706为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。4、单一入口访问思想单一入口通常是指一个项目或者应用具有一个统一的入口文件,既项目的所有功

18、能操作都是通过这个入口文件进行的,它使得项目整体比较规范,不同操作之间具有相同的规则,同带来的好处是控制较为灵活。五、开发的目录结构Public : 存放站点公共目录,存放图片(Images)、样式(Css)、脚本(Js),以及用户上传的资源 UploadsThinkPHP :存放 ThinkPHP 框架引擎WebApp : 存放博客系统的目录,包含全局参数,模型,类库,模板,公共函数及缓存等文件。index.php :站点入口文件六、系统功能简介博客系统是基于 ThinkPHP 框架技术开发,具有一般博客系统发布、修改、删除文章,日志的评论和归档等功能,同时也增设了标签、无限分类、权限管理、

19、文件管理功能,支持站点的数据库结构查看及其备份。利用 MiniUi 控件,增强的后台管理界面和用户体验,同时结合 AJAX 技术对数据的异步交互,大大增强对用户操作的便携性和透明性。全套源码加扣扣 153893706博客系统后台管理首页文章页日志归档,标签云,分类列表内容显示,点击数,访问评论系统管理文章管理文件管理权限管理 角色管理用户管理文件管理器节点管理数据备份站点配置上传文件文章列表分类标签发表文章前台界面站点名称、站点描述、分页页数等配置数据库表信息、数据表结构、数据库备份文章的发表、标签的插入文章的编辑、删除,分类显示和标签显示分类的显示、创建、编辑、删除,标签的显示和删除多文件上

20、传,文件的删除和预览目录遍历,文件和文件夹的删除、命名,文件的编辑节点的创建、编辑、删除,节点的启用和禁用角色的创建、编辑、删除,角色的授权角色的创建、编辑、删除,用户分配角色第二章 数据库结构设计一、数据库表结构设计b_blog 文章表 b_category 分类表 b_comment 评论表id ID 号 id ID 号 id ID 号categoryId 分类 ID 号 title 分类名 recordId 文章 ID 号title 文章名 remark 备注 author 昵称content 内容 pid 父分类 email 邮箱cTime 创建时间 path 分类路径 url 个人站

21、点status 状态 ip 评论者 IPreadCount 点击数 b_access 角色访问表 content 内容commentCount 评论数 id ID 号 cTime 创建时间tags 标签 role_id 角色 ID 号 agent 操作系统node_id 节点 ID 号 status 状态全套源码加扣扣 153893706b_options 站点配置表id ID 号 b_role 角色表 b_node 节点表option_name 配置名 id ID 号 id ID 号option_value 配置值 name 角色名 name 节点名status 状态 pid 父分类 tit

22、le 显示名status 状态 status 状态b_user 节点表 remark 备注 remark 备注id ID 号 pid 父节点username 用户名 b_role_user 角色用户关系 level 等级nickname 昵称 role_id 角色 ID 号password 密码 user_id 用户 ID 号 tagged 标签关联表reg_date 注册时间 id ID 号status 状态 tag 标签表 tagId 标签 ID 号remark 备注 id ID 号 recordId 文章 ID 号email 邮箱 name 标签名 tagTime 标签应用时间count

23、 使用数b_upload 上传表 b_link 友情链接表id ID 号 link_id ID 号filename 文件名 link_url 链接地址url 上传路径 link_name 链接名filesize 文件大小 link_target 跳转模式filetype 文件类型 link_decoration 链接描述uptime 上传时间 link_order 链接排序status 状态二、数据库关联模型映射1、用户权限的关联模型b_user 用户表 b_role_user 角色用户关系 b_node 节点表id ID 号 user _id 用户 ID 号 id ID 号username

24、用户名 role _id 角色 ID 号 name 节点名nickname 昵称 title 显示名password 密码 b_role 角色表 pid 父节点全套源码加扣扣 153893706reg_date 注册时间 id ID 号 level 等级status 状态 name 角色名remark 备注 pid 父分类 b_access 角色访问表email 邮箱 status 状态 node_id 节点 ID 号id ID 号 remark 备注 role_id 角色 ID 号用户权限的关联模型,角色是一组用户的集合,通过一对多的关系,一组角色可以关联多个用户,用户的权限管理取决于角色的

25、权限管理。角色的访问形成了角色与节点之间多对多的关系,每一组角色都有一条或多条节点关系,多组角色形成了多对多的关系模型,这样,用户的权限将取决于节点的等级,节点表具有管理用户操作的功能。 2、文章分类标签的关联模型b_blog 文章表 b_category 分类表 b_tag 标签表id ID 号 id ID 号 id ID 号categoryId 分类 ID 号 title 标题 name 标签名title 标题 pid 分类父 ID count 标签使用次数content 内容cTime 创建时间 tagged 标签关联表status 状态 id ID 号tags 标签 recordId

26、文章 IDtagId 标签 ID文章分类标签的关联模型,文章与分类形成一对一的关系,分类的父 ID 在分类表中实现“内联”关系,形成分类的无限子分类。文章编写标签集通过分割插入到标签表中,标签表中是一组无冗余的表,只记录新创建的标签,如果标签重复出现,标签关联表能记录下不同文章关联相同的标签。文章表和标签表实现了多对多的关系映射。 第三章 网站后台功能实现一、RBAC 基于角色的多用户访问控制功能1.1 RBAC 的全局配置参数true,USER_AUTH_ON=true,USER_AUTH_TYPE=1, / 默认认证类型 1 登录认证 2 实时认证USER_AUTH_KEY =authId

27、, / 用户认证 SESSION 标记ADMIN_AUTH_KEY =administrator, / 记录管理员的 SESSION,USER_AUTH_MODEL =User, / 默认验证数据表模型,即用户账户管理表AUTH_PWD_ENCODER =md5, / 用户认证密码加密方式全套源码加扣扣 153893706USER_AUTH_GATEWAY =/Admin/Public/login, / 默认认证网关NOT_AUTH_MODULE =Public, / 默认无需认证模块REQUIRE_AUTH_MODULE =, / 默认需要认证模块NOT_AUTH_ACTION =, / 默

28、认无需认证操作REQUIRE_AUTH_ACTION =, / 默认需要认证操作GUEST_AUTH_ON =false, / 是否开启游客授权访问GUEST_AUTH_ID =0, / 游客的用户 IDRBAC_ROLE_TABLE =b_role, / 角色分组表RBAC_USER_TABLE =b_role_user, / 用户角色关联表RBAC_ACCESS_TABLE =b_access, / 系统访问权限表RBAC_NODE_TABLE =b_node, / 系统节点表);?(图 1)如图 1 所示,配置认证的 SESSION 标记为 authId,用与记录用户登陆的 ID 号,$

29、_SESSIONUSER_AUTH_KEY相当与$_SESSIONauthId配置用户的登陆网关为USER_AUTH_GATEWAY =/Admin/Public/login,也就是用户登陆后台的第一道门,若已经登陆,就会跳转到后台主页面,相反的没有设置$_SESSIONauthId 的值或该值已过期,就会显示登陆界面。1.2 RBAC 操作初始化配置class CommonAction extends Action function _initialize() / 用户权限检查 ,判断是否开启的用户权限认证,且排除掉无需认证的模块if (C(USER_AUTH_ON) /引入 RBAC 类库

30、/检测用户是否权限 ,有权限放回 true 跳转到后台管理,无权限执行一下代码if (!RBAC:AccessDecision(GROUP_NAME) /检查用户的 SESSION ID,不存在则跳到默认网关if (!$_SESSION C(USER_AUTH_KEY) redirect(PHP_FILE . C(USER_AUTH_GATEWAY);/正常登陆没有权限,跳转到 RBAC_ERROR_PAGE 提示的权限页,如果没有该配置,直接给出没有权限访问该页面if (C(RBAC_ERROR_PAGE) redirect(C(RBAC_ERROR_PAGE);/ 没有权限 抛出错误 el

31、se if (C(GUEST_AUTH_ON) $this-assign(jumpUrl, PHP_FILE . C(USER_AUTH_GATEWAY);$this-error(L(_VALID_ACCESS_);/ 提示错误信息全套源码加扣扣 153893706(图 2)如图 2 所示,配置了USER_AUTH_ON 为 true,即我们开启了 RBAC 的验证,这里的NOT_AUTH_MODULE 默认配置了 PUBLIC 模块,则表示其他模块只要继承了 CommonAction 类,则需要进行 RBAC 验证;调用 RBAC:AccessDecision(GROUP_NAME),检查该

32、分组的权限,有权限则返回ture,跳转到管理界面;无权限则返回 false,抛出错误信息。1.2 RBAC 用户的登陆检测class PublicAction extends Action public function checkLogin() $data=json_decode($_REQUESTsubmitData,true); / 接收异步提交过来的 json 数据进行解码if(empty($datausername) / 检查用户提交的用户名、密码、验证码都不为空$this-ajaxReturn(username,账户必须!,0);elseif (empty($datapasswor

33、d)$this-ajaxReturn(password,密码必须!,0);elseif (empty($dataverify)$this-ajaxReturn(verify,验证码必须!,0);$map = array(); /生成认证条件$mapusername = $datausername;$map“status“ = array(gt,0);if($_SESSIONverify != md5($dataverify) $this-ajaxReturn(verify,验证码错误!,0);import ( ORG.Util.RBAC );$authInfo = RBAC:authentic

34、ate($map); /使用用户名、密码和状态的方式进行认证if(false = $authInfo) $this-error(帐号不存在或已禁用!);else if($authInfopassword != md5($datapassword) $this-ajaxReturn(password,密码错误!,0);$_SESSIONC(USER_AUTH_KEY) = $authInfoid; /登陆成功,记录用户 SESSIONif($authInfousername=admin) /检测是否为管理员帐号,是则开放最大权限$_SESSIONadministrator = true;RBAC

35、:saveAccessList(); / 缓存访问权限列表$this-success(登录成功!);?全套源码加扣扣 153893706(图 3)如图 3 所示,系统异步获取用户提交的数据,进行 json 的解码操作,分别判断接收的用户名,密码,验证码都不为空,验证成立生成认证条件。调用 RBAC:authenticate()方法,传入$map 数组,通过authenticate 方法来检测后台账户表中是否有该用户,并帐号状态是否正常;C(USER_AUTH_MODEL)就是图 1 配置 User,对应后台账户表就是 b_user表,该方法会返回该账户的相关信息,赋值到$authInfo 中,

36、如果该用户存在,通过密码比对就完成了一个登陆认证。登陆后的用户 ID 记录在$_SESSIONauthId 中,如果用户名是管理员”admin” ,则$_SESSIONadministrator会设置为 true,在 RBAC 类中对于该用户拥有最高的权限。最后通过调用RBAC:saveAccessList()方法将该用户拥有的各个角色的节点访问权限保存在 SESSION 中,可以通过$_SESSION_ACCESS_LIST查看系统访问权限列表。二、AJAX 无刷新提交功能(图 4)站点配置 AJAX 无刷新提交如图 4,表单按钮 保存 触发 javascript 自定义 onSave函数,

37、代码如下所示:function onSave(e) ThinkAjax.sendForm(form1,_URL_/update,function (data,status,info)if (status=1)alert(操作成功);,result);当用户触发 onSave 函数后,ThinkAjax.sendForm 将表单的内容提交到指定的 url 地址,ThinkAjax 是ThinkPHP 框架集中提供的一种 ajax 提交方式,方便用户对数据的异步请求和处理。其中_URL_表示当前模型的 URL 地址,全路径为 index.php/Admin/Option/update,对应的服务端

38、程序为$v)$voption_value=addslashes($voption_value);$Option-save($v);$this-ajaxReturn(,“保存成功“,1);else$this-error($Option-getError();?服务器段通过$_POST 预定义变量接收表单请求,通过实例化一个 Options 模型对象来建立数据库句柄$Option,通过一个循环将数据更新到数据库中,最后通过 ajaxRturn 的方法将结果放回到客户端,其中ajaxRturn 包含三个参数,1 表示返回的数据,2 表示返回的信息,3 表示返回的状态,客户端的 js 通过一个函数接收

39、 ajaxRturnde 的内容,如果状态为 1 表示表单成功被修改。下面的图 5 和图 6 通过 Firebug 开发工具来说明了表单进行异步请求和响应的全过程。(图 5)Firebug 抓取客户端操作进行的异步请求(图 6)Firebug 抓取服务端对数据的异步响应全套源码加扣扣 153893706三、无限级分类功能(图 7)创建无限级分类用户通过点击增加分类来创建新的分类,创建分类时通过点击所属分类来形成子父分类关系,多级子分类通过分类路径来达到总体的关联效果,如图 7 所示。实现该效果的服务端代码如下所示。class CategoryAction extends CommonActio

40、n public function index() $Cate=M(Category);$list=$Cate-field(“id, title, pid, concat( path, -, id ) AS bpath“)-order(bpath,id)-select();foreach($list as $key=$value)$list$keycount=count(explode(-,$valuebpath);$this-assign(“list“,$list);$this-display();?服务端查找数据库b_category表,通过 Mysql 内置的 concat 函数将它的路

41、径关系和自己 id 连合起来,形成整段分类路径,再通过 foreach 遍历数据集,分割数据集中的分类路径,查看层次关系,得到该分类的层叠数。将该数组通过 thinkphp 模板引擎 volist 页输出,运用 CSS 对输出的层叠数进行样式的格式化,就形成了无限集分类的效果。然而分类与父类集之间的路径关系是如何的实现的?下面的代码将解释这个路径关系的实现原理。where(“id=$pid“)-find();$bpath=$listpath.-.$listid;return $bpath;?创建一个自定义模型类,当用户添加分类的时候会实例化这个模型类,该类继承了 ThinkPHP 框架的Mod

42、el 类,$_auto 是该类库中定义的一个属性,完成数据自动处理功能,用来处理默认值、数据过滤以及其他系统写入字段。$_auto 属性是由多个填充因子组成的数组,填充因子格式为 array(填充字段,填充内容,填充条件 ,附加规则) ,这里将 path 内容填充的是 cpath 函数返回的值,它通过用户提交过来的父 ID 号查找数据库,得到父级的关系信息,让父级的路径关系与父 ID 连合就是当前分类的路径关系。四、文章管理文章管理模块是整个博客系统最主要的环节,它包括了日志的发表、编辑、删除、预览、评论、点击、自定义标签、所属分类、分页等多项功能。文章的发表引入了 kindEditor 的富

43、文本编辑器,支持用户 在网站上创建可见可得的编辑效果。下面将展示文章管理的相关页面。(图 8)分页模式下的文章列表全套源码加扣扣 153893706(图 9)发表文章(图 10)访客的评论(图 11)标签的管理五、角色授权管理功能(图 12)节点管理全套源码加扣扣 153893706(图 13)角色权限管理(图 14)分配用户所属组基于角色的访问控制模型(RBAC Model,Role-based Access Model):RBAC 模型的基本思想是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权。如图 12 所示创建节点,节点管理用户操作该模型的权限,一个节点

44、包含查看、添加、插入、编辑、更新、删除、启用、禁用等操作权限,图 13 显示的是管理员对该角色进行授权,图 14 指派到角色组中,从而来控制用户权限的管理。六、文件管理器功能(图 15)文件管理器全套源码加扣扣 153893706(图 16)文件内容编辑器(图 17)文件重命名(图 18)文件上传如图 15 所示,文件管理列表通过传递当前的工作路径,以 FileManage 类的 getFileList 方法遍历整个工作路径,获得当前工作路径下的文件夹和文件。path = $path;$this-doroot=$_SERVERDOCUMENT_ROOT;function getPath() r

45、eturn $this-path; function setPath($v) $this-path=$v;function getFileList($dirname=.) $dirname=str_replace(/,/,$dirname);$thispath=$this-doroot.$dirname;$d = dir($thispath);while(false!=$file=$d-read()$filepath=$dirname.$file;if ($file=. | $file= $filesize=is_dir($thispath.$file)?:round(filesize($th

46、ispath.$file)/1024,2).kb;$filetime=is_dir($thispath.$file)?:date(Y-m-d H:i:s,filemtime($thispath.$file);$this-fileList = array(filename=iconv(gb2312,UTF-8,$file),filepath=$dirname.iconv(gb2312,UTF-8,$file),filesize=$filesize,filemtime=$filetime,filetype=filetype($thispath.$file),);foreach ($this-fil

47、eList as $k = $v) $filetype$k = $vfiletype;$filename$k = $vfilename;array_multisort($filetype, SORT_ASC,$filename, SORT_ASC, $this-fileList);$d-close();return $this-fileList;?七、数据库备份功能全套源码加扣扣 153893706(图 19)查看数据表(图 20)数据表结构如图 19 所示,通过 Sql 语句 show table status from 数据库名 可以查看所有表的信息,图 20 通过用户提交表名,执行 Sq

48、l 语句 show columns from 表名 获得表结构,用户通过点击“数据库备份”,将执行以下两段函数来生成整个表的 SQL 语句,通过文件写入函数 file_put_contents 将内容写入到文件中,从而达到数据库的备份操作。protected function bakStruct($dbTableArray)foreach ($dbTableArray as $v)$dbTable=$v;$dbFields=M()-query(show columns from .$dbTable);$sql.=“-rn“;$sql.=“- 数据表结构: $dbTablern“;$sql.=“-rnrn“

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报