




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全日制本科生毕业论文题 目: 基于Drupal框架的“重师青年”杂志管理系统开发 学 院: 计算机与信息科学学院 专业年级: 计算机科学与技术(师范)2012级 学生姓名: 学号: 指导教师: 职称: 2016 年 5 月 6 日 基于Drupal框架的“重师青年”杂志管理系统开发 摘 要:本毕业设计是基于Drapul框架进行杂志管理系统的开发。该系统的主要功能包括发布文章、文章管理、人员管理、模板管理、外观更改等。本系统的运行环境是Apache+MySql,其主体部分是后台管理系统,采用了Drupal、php等技术。同时也包含前台页面,采用html、Css、JavaScript、Bootstrap、Ajax等技术。此系统已经开发成功,功能已达到设计要求,并可以正常运行。关键词:Drapul;php;JavaScript;管理后台全套设计加扣3012250582 Abstract:Based on the Drapal framework, this Graduation design develop a journal management system. The conditions of the system run are Apache and MySql, this systems dominant part is the background management system, using Drupal ,PHP and other technologies; also includes the front-end page, using HTML, Css, JavaScript, Bootstrap, Ajax and so on. Through the above technologies, the system achieves the main functions including publishing articles, article management, personnel management, template management and changing the appearance. This system has been developed, the function has reached the design requirements, and can run normally.Key words:Drapul; php; JavaScript; Management system 随着网络的迅速发展,网上浏览信息早已成为大学生的一种习惯,通过网上杂志管理系统,杂志社管理员能及时将杂志社发布的活动、文章等信息更新到线上,使得用户可以随时查看信息,使得管理员管理更方便、快捷。1 技术与工具概述1.1 开发工具及技术本系统使用开发工具有phpstorm编辑器,phpstudy环境集成包,photoshop图像处理软件等;开发中主要使用技术包含drupal、php、mysql、html、javascript、css.下面是对主要开发工具以及开发环境和Drupal框架的简要介绍。1.1.1 PhpstormPhpstorm:一款轻量级的编辑器,可在Windows,Mac OS X,Linux上运行,安装简单,支持zen编码,相对DW而言,其优势在于可以跟踪代码。1.1.2 Phpstudy IDEphpstudy :phpstudy 集成了最新的Apache、PHP、MySQL、phpMyAdmin。phpstudy无须配置即可使用,是非常方便、好用的虚拟服务器。该程序不仅包括PHP调试环境,还包括开发工具以及开发手册等。Phpstudy支持多种版本,可以随意进行版本切换,也可以根据开发需求进行路由配置。1.1.3 DrupalDrupal是用来构建网站的,它是一个基于php语言编写的CMF。它的特点有:可扩展性强、安全性高、高度模块化、追求代码简洁、内核精炼。Drupal的设计目标使得其既可在廉价web虚拟主机上运行,也可以适应高负载的分布式站点。所以可以选择phpstudy IDE配合开发1。1.2 开发环境及搭建1.2.1 开发环境操作系统:win7操作系统浏览器:谷歌浏览器编辑器:Phpstorm服务器:Apache (采用phpstudy 集成环境包)开发语言:PHP、Javascript、html、css数据库:MYSQL1.2.2 开发环境搭建以下是对本系统开发环境的搭建说明,在开发时,一定要先完成Phpstudy 环境搭建后完成Drupal环境搭建,否则会导致环境搭建不成功。(1)Phpstorm开发环境搭建下载Phpstorm最新版,然后按提示安装。安装完成后,为方便后期开发,打开整个项目,修改快捷键(File-setting-keymap)。Phpstorm的zen编码快捷键是Tab。(2)Phpstudy 环境搭建下载Phpstudy最新版,然后按提示安装,安装时选择安装目录为自己的站点运行目录,然后启动程序,左键单击“php版本”(如图1.1所示),选择Apache+php版本并应用。开发过程中若需要更改hosts,左键单击“其他选项菜单”,选择“打开hosts”(如图1.2所示),然后对hosts进行修改、保存。(注:修改完后一定要重启phpstudy,否则修改无效。)图1-1 php版本切换图 图1-2 hosts修改图(3)数据库环境搭建用Navicat或者phpstorm的mysql工具新建数据库。注:记录下数据库名、用户名、密码,以便之后使用。(4)Drupal环境搭建下载drupal:打开drupal官网,下载drupal核心包7.43版。下载得到的其实就是drupal的核心。目前,drupal8相对drupal7而言,功能模块数量较少,且整体性能不足7稳定,而drupal7.43修复了之前版本的重大bug,故下载7.43版2。解压drupal:将drupal核心包解压至站点运行目录(d:/www)。下载语言包:打开/translate/languages/zh-hans页面,下载相应的语言包(.po文件)。安装语言包:将下载的语言包放至d:/www/drupal7.43/profiles/standard/translations 目录下。初始化:在浏览器中打开http:/localhost/drupal-7.43/,此时浏览器会运行drupal的index.php。选择“Standard”,然后点击 Save and continue 执行下一步。选择语言:选择简体中文,点击 Save and continue 执行下一步。数据库配置:按照提示填写数据库的配置信息,如数据库名、数据库用户名以及数据库用户的密码等,点击下一步。安装Drupal:此时系统执行Drupal的安装工作,并且系统自动导入翻译,然后进入到Drupal站点配置页面。Drupal站点设置:按照提示填写相关站点信息,点击Save and Continue,此时便完成了drupal的安装。访问站点:站点url为: http:/localhost/drupal-7.43/注:drupal环境搭建中第9步站点设置时设置的管理员账户拥有超级管理员权限。2 需求分析2.1 系统需求分析2.1.1 前台页面需求分析(1)前台页面应包含首页,学习、考研、校园、毕业季、乐活列表页,最近更新,加入我们。访问前台页面无需注册与登录。(2)首页展示网站logo、导航栏、首页大图、推荐文章。(3)学习、考研、校园、毕业季、乐活为该分类下的对应列表页,点击进入相应的详情页。(4)最近更新展示最近更新到网站的文章列表。(5)联系我们简要介绍杂志社。2.1.2 管理后台需求分析(1)后台包括内容、结构、外观、人员、模块、配置等,后台页面均需登录、且有权限控制。(2)内容:点击进入整个网站的全部内容列表,列表中包含编辑、删除按钮,可以新增内容。列表页有权限控制。(3)结构:点击弹层,显示管理内容类型,分类,区块,菜单,点击分别进入详情页,可进行增、删、改、查操作。(4)外观:点击后进入主题列表页,可在列表页切换主题,点击设置按钮可以进入主题设置页面,对站点外观进行自定义设置。(5)人员:点击进入人员列表页,可以对系统注册人员(即后台管理人员)进行增、删、改、查的操作,同时也可在这里对人员进行禁用(逻辑删除)。(6)模块:点击进入模块列表页,点击权限按钮可以设置每个用户登录后查看模块的权限,点击配置按钮可以修改模块的显示位置及显示页面。(7)配置:点击进入配置列表页,列表页包含可选配置项。如文本格式、文件系统,点击分别进入设置页面,在设置页面可以对系统的基本配置进行修改。2.2 可行性分析在系统开发前,为降低资源和时间的浪费和损失,从以下几点对本次毕业设计做了可行性分析3。2.2.1 技术的可行性本次系统开发,技术重点为php,技术难点为Drupal框架的使用。Php难度不大,但Drupal初次接触,难度稍大。为解决技术难点,参与了Drupal重庆分享会,也通过老师、同事获取了更多的资料,并做了初步的使用实验,基本掌握本次系统所需相关知识,所以,技术上可行。2.2.2 经济的可行性Drupal框架是开源的,开发中部分软件由实习公司免费提供。部分学习资料自费购买,但价格均在能力范围内,所以,经济上可行。2.2.3 时间的可行性此次毕业设计从2016年1月开始准备资料和学习,并且已拟定相关时间安排表(见开题报告),所以,时间上可行。3 系统整体设计3.1 系统流程设计(1)前台用户无需登录即可查看前台页面内容,前台页面无权限控制。(2)进入首页后可以通过点击首页readmore打开文章(详情页),可以通过导航栏进入文章题目列表(列表页),点击列表可以打开文章。(3)后台管理员登录成功后进入后台首页,通过导航栏进入文章题目列表。(4)用户只能从后台注册,前台没有注册界面。(5)后台管理员可对人员、外观、模块、内容等进行管理,安装Drupal时注册的用户具有超级权限,可以开发模块4。如图3-1是对系统功能进行简要说明。图3-1 系统功能流图登录成功登录失败区块模板登录管理员用户表后台首页语言表节点表节点模块配置模块人员用户结构节点模板外观系统内容节点表区块模板菜单模块节点详情节点模板菜单模块 数据库节点表用户首页最近更新关于我们节点模板列表页详情页导航导航3.2 数据库的分析与设计3.2.1 数据库的概念结构设计数据库的概念结构设计采用实体联系的模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物;属性是对实体特性的描述。(1)实体(3)实体间关系(2)属性图3-2 图标示例图(1)内容实体E-R图示例图3-3 内容E-R图创建者 正文 权重内容类型内容 状态 标题创建日期所属菜单菜单链接(2)用户实体E-R图示例用户名 密码 邮箱 角色 状态 语言用户图3-4 用户E-R图(3)菜单实体E-R图示例标题 权重 所属模块链接路径子链接父菜单菜单图3-5 菜单E-R图(4)内容类型实体E-R图示例图3-6 内容类型E-R图 版本 语言内容类型 状态 标题修改时间创建日期权限用户(5)区块实体E-R图示例图3-7 区块E-R图 标题显示页面 权重 状态缓存模式启用主题所属模块区块(6)外观实体E-R图示例图3-8 外观E-R图 站点图标 主题站点名称外观(7)总体E-R图图3-9 总体E-R图图n内容类型用户区块内容创建属于创建组成111n创建11nnn3.2.2 逻辑设计表3.1 系统数据库表列表序号表文件名表名称说明1node节点模块表存储节点节点基本信息2node_type节点版本表存储了一个节点的类型信息3users用户信息表存储用户数据4system系统信息表储存系统信息5language语言信息表存储系统中所有可用语言表6block区块信息表存储区块设置、如区块可见性,位置等7block_node_type区块类型表储存区块类型信息8field_data_body内容主体表存储内容主体信息9menu_links菜单链接表存储菜单内的单个链接10cache通用缓存表存储缓存信息,包含第三方模块的缓存信息表3.2 节点模块表序号字段名类型长度默认值主键外键允许为空说明1nidint10是节点id2vidint10用户名3uidint11是权限用户4languagevarchar12是语言5titlevarchar255标题6createdint11创建时间戳7changedint11上次修改时间8promoteint11推荐到页首9statusint11状态10stickyint11是否置顶11tnidint10是节点类型id12translateint11是否翻译备注:(1)uid:拥有权限的用户id。 (2)sticky:0 不置顶,1 置顶。 (3)promote:0 不推荐,1 推荐。 (4)status:0 不启用,1 启用。 (5)translate:0 不翻译,1 翻译。表3.3 节点类型表序号字段名类型长度默认值主键外键允许为空说明1typeint10是类型id2nameint10类型名3descriptionmediumtext描述4createdint11创建时间戳表3.4 用户信息表序号字段名类型长度默认值主键外键允许为空说明1uidint10是用户id2namevarchar50用户名3passvarchar32用户密码4mailchar64用户邮箱5languagevarchar12默认语言6themevarchar255是默认主题7statustinyint40状态8picturevarchar255头像路径9loginint11上次登录时间戳表3.5 系统信息表序号字段名类型长度默认值主键外键允许为空说明1filenameint10是项目路径2namevarchar50项目名3typevarchar255类型(如module)4ownervarchar255父级5statusint110状态6weightint110权重7bootstrapint110是否加载bootstrap备注:(1)Filename:项目相对drupal的相对路径。 (2)name:项目的名称,如:node。 (3)satus:0 不启用;1 启用。 (4)bootstrap:0 不加载bootstrap模块,1 加载bootstrap模块。表3.6 语言信息表序号字段名类型长度默认值主键外键允许为空说明1languagevarchar12是机读码2namevarchar64语言名3directionint110读写方向4enabledint11是否启用5weightint640权重6javascriptvarchar32Js翻译文件位置备注:(1)direction:0 从左向右;1从右向左。 (2)enabled:0 不启用;1 启用。表3.7 区块信息表序号字段名类型长度默认值主键外键允许为空说明1bidint11是区块id2modulevarchar64用户名3themevarchar64是主题4visibilitytinyint4显示方法5titlevarchar225区块标题6cachetinyint41缓存机制7statustinyint40状态8weightint110权重备注:(1)visibility:0 除所列页面外所有页面,1 所列页面显示,2通过代码控制 (2)cache:-1 不缓存,1 基于角色缓存,8 全局缓存区块 (3)status:0 不启用,1 启用。表3.8 区块类型表序号字段名类型长度默认值主键外键允许为空说明1midvarchar64是区块id2modulevarchar32区块名3typevarchar32区块类型表3.9 内容主体表序号字段名类型长度默认值主键外键允许为空说明1bundlevarchar128内容类型2deletedtingyint40是否删除3entity_idvarchar10是节点id4languagevarchar32是语言5body_valuelongtext0主体内容6body_formatvarchar255主体编码备注:(1)language:主体内容使用语言。 (2)body_format:文本编码格式(html/text)。 (3)deleted:0 不删除,1 删除(逻辑删除)。表3.10 菜单链接表序号字段名类型长度默认值主键外键允许为空说明1mlidint10是菜单链接id2menu_namevarchar50菜单名3plidvarchar100父级链接id4link_titlevarchar255链接标题5modulevarchar255是模板6weightvarchar11权重备注:(1)plid:父级链接id。表3.11 缓存信息表序号字段名类型长度默认值主键外键允许为空说明1cidint10是主键id2datavarchar255缓存数据3expireint11时效4createdint11创建时间戳备注:(1)expire:时间戳格式,用于表示缓存时效,0表示永不过期。 (2)body_format:文本编码格式(html/text)。3.2.3多表联结关系图图3-10 多表关联图4 系统实现4.1 数据渲染流程当在浏览器输入url后drupal就会调用index.php。但当打开index.php后会发现其中只有如下几行代码5:define(DRUPAL_ROOT, getcwd();require_once DRUPAL_ROOT . /includes/bootstrap.inc;/加载include文件夹中的函数等drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);menu_execute_active_handler();看完代码发现,drupal强大的功能就是基于以上四行代码的,对index.php做一个代码跟踪后发现其渲染流程如下:(1)加载index.php,在此文件中调用drupal_bootstrap();以及menu_execute_active_handler();(2)drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL)函数:从 bootstrap.inc中可以找到 DRUPAL_BOOTSTRAP_FULL的值为7,对drupal_bootstrap($phase)函数进行分析可得此处就是循环调用_drupal_bootstrap7次。什么意思呢?其实就是执行以下函数: _drupal_bootstrap_configuration();/初始化配置 _drupal_bootstrap_page_cache();/试图缓存页面 _drupal_bootstrap_database(); /初始化数据库层 _drupal_bootstrap_page_header();/设置页眉 drupal_session_initialize();/初始化session _drupal_language_initialize();/初始化页面语言 _drupal_bootstrap_full();/完全加载Drupal。验证和修正输入数据综上,drupal_bootstrap其实就是用来加载所有的系统必须包含的文件和模块文件,并且运行模块函数 hook_init.这就使得我们可以自由调用模块6。menu_execute_active_handler():它的作用就是通过url,来调用数据库中的相关函数,并且把页面相关的inc文件加载进来。此文件中的menu_get_item()函数用来接收q的值,然后解析出对应的模块,并调用相关函数,加载页面。4.2 功能模块开发实例在drupal系统中,页面是由多个模块组合而成。Drupal强大的定制功能,使得开发者可以自由开发模块,以满足当前业务需求7。以下,以实现最近更新列表页为模板,对开发区块过程做示例展示。(1) 创建模块目录和文件,如图4-1所示:图4-1 目录图(2) 编写模块描述文件如图4-2所示:图4-2 描述文件图(3) 编写第一个钩子如图4-3所示:图4-3 帮助钩子图(4) 声明区块如图4-4所示:图4-4 区块声明图(5)从数据库获取数据如图4-5所示:图4-5 获取数据图(6)数据渲染如图4-6,4-7所示:图4-6 数据渲染图1图4-7 数据渲染图2 (7) 测试、调试如图4-8所示:图4-8 测试使用图(8) 运用至页面,如图4-9所示:图4-9 页面使用图4.3 系统测试、调试前台页面,测试阅读更多,列表页、详情页的相关跳转及样式;对于后台,重点测试登录、区块设置,站点信息更改等功能。对于页面数据问题用t(“variable”)进行调试,对于页面样式的调试则修改对应的页面css文件,对于一些特殊的元素则在*.tpl.php中修改对应的样式即可8。5 系统部分页面展示图5-2 “乐活”前台列表页图5-1 前台首页图图5-4 后台首页图图5-3 “乐活”后台列表页图5-6 后台内容管理页图5-5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电厂物理考试题及答案
- (正式版)DB15∕T 3215-2023 《肋脉野豌豆种子生产技术规程》
- 四川单招护理笔试题库及答案
- 护理招聘面试题库及答案内真题
- 新型玻璃600字小学想象作文(15篇)
- 我读了西游记后的感受读后感(12篇)
- 餐饮业卫生管理记录表
- 人力资源培训发展计划模板
- 《几何空间观念培养课程设计》
- 神奇的书包400字作文小学作文(8篇)
- GB/T 4291-1999冰晶石
- GB/T 4032-2013具有摆轮游丝振荡系统的精密手表
- 机修车间岗位廉洁风险点及防范措施表
- 全新版尹定邦设计学概论1课件
- 牙及牙槽外科
- 文物建筑保护修缮专项方案
- 万用表 钳形表 摇表的使用课件
- 63T折弯机使用说明书
- 170位真实有效投资人邮箱
- 工程力学ppt课件(完整版)
- 船模制作教程(课堂PPT)课件(PPT 85页)
评论
0/150
提交评论