




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Moodle系统自定义插件的设计与实现毕业论文 目 录摘 要IABSTRACTII第一章 引言11.1研究的背景与意义11.2国内外研究现状21.3论文研究的主要内容21.4论文的组织结构31.5本章小结3第二章 相关的理论与技术基础42.1开发工具及关键技术42.1.1开发工具简介42.1.2关键技术简介52.1.3环境搭建52.2 Moodle概述72.2.1 Moodle系统概述72.2.2 Moodle插件开发102.3本章小结14第三章 需求分析与设计153.1需求分析153.1.1功能需求153.1.2实用性需求163.1.3可移植性需求163.2功能设计173.2.1插件功能模块173.2.2流程图183.4数据库设计193.4.1 ER图193.4.2 数据库表203.5本章小结22第四章 插件实现234.1笔记插件234.1.1创建课程笔记234.1.2创建个人笔记254.1.3查看笔记记录264.1.4管理笔记记录284.1.5打印笔记284.1.6数据库定义304.2台账任务插件314.2.1创建台账任务314.2.2查看任务进度344.2.3管理任务354.2.4数据库定义37第五章 总结与展望385.1总结385.2展望38参考文献39附录42致谢48III广西大学学士学位论文基于Moodle系统自定义插件的设计与实现第1章 引言1.1研究的背景与意义在信息技术飞速发展的今天,“互联网+”的理念正被越来越多的人认同。无论是新兴产业还是传统产业都向着“互联网+”的方向发展。教育作为国家的发展大计,将教育事业与互联网融合正符合时代的发展趋势。同时,人们也逐渐意识到“终身学习”的重要程度,只有树立终身学习的理念才能跟上科技升级换代的步伐1。面对我国人口基数大、教育水平发展不平衡的问题,需要采取良好的措施来保证教育的公平性和开放性。良好的学习环境和学习资源是学习的外在制约条件,教育事业的发展需要对这些方面加以改善。国家的十三五规划中再次指出,要推进教育现代化。传统的教学中存在的不足日渐突出,学生需要更加自主、灵活的学习方式2。信息技术的发展使得传统真实课堂中存在的一些不足得到有效的解决。在线学习,以虚拟课堂的形式展现给学生,有着自由灵活丰富多样等特点,能够从新的角度去引导和激发学生的学习兴趣。学生可以不受时空的限制,根据个人的学习特点,随时随地学习;从教师角度,在线学习系统能为教师提供同步或异步的教学方式,同时学习资源也能够实现快速的更新;提供新的交流方式,有利于促进师生间的交流;教师可以对学生的学习状况进行跟踪统计,了解学生的整个学习过程。目前,国内外的在线学习平台有Blackboard、Moodle、Claroline、Dokeos等。其中,Moodle作为一个在线学习平台之一,它是免费开源的,兼容性好而且容易使用,有着完善的体系结构。Moodle已成为众多教育工作者推崇的一种为建立网上动态学习网站的工具。它可以使教育工作者创建他们自己的私有站点,加入动态课程。教师将从“知识的传授者”转变为课堂文化的影响者和榜样。通过网络的连接,学生能够在任意时间任意地点参与课程的学习。Moodle的开源性和可扩展性使得开发者能够根据实际的需求为平台添加新的功能模块。通过二次开发,可为原有的系统增添个性化的功能3。Moodle的使用将很好的解决教育中存在的一些问题。它能降低教学的成本,为学生提供灵活多样、自由开放的学习方式。学生能够根据自己的学习能力来自主调整学习进度,不再为教学进度过快或过慢而苦恼。对于一些难以理解的内容,学生可以通过课程的可重复性去反复地学习直到真正掌握为止。在线的互动交流能及时解决学生在学习中遇到的问题。Moodle的研究和开发对教育事业的发展有着积极的作用4。1.2国内外研究现状目前已经有较多的在线学习平台。与传统的教学方式不同,在线学习平台提供了一个开放灵活,丰富自由的学习环境,让学生跨越时间和地区的限制获得良好的教育。Moodle作为倍受推广的平台之一,有各种各样的机构及个人在使用,包括大学、中学、小学、政府部门、医疗机构、军事组织、航空公司、石油公司、家庭学校、独立教育工作者、特殊教育工作者等。它有着良好的跨平台性和易用性,有良好的总体设计、用户管理及功能模块。Moodle是一个完全免费开源的系统,并且有较完备的文档提供开发者参考。据官方网站统计,目前Moodle的注册网站数量为72790,涉及227个国家,9593407门课程。其中美国、西班牙、巴西的站点注册数量居世界前三。Moodle也从原来的版本发展到现在最新的3.0x版。在中国大陆,共有392个注册站点(其中237个是私有和不对外公开的),如万法通学院、上海交通大学继续教育学院网上学习平台、乐学网、华东政法大学网上课堂、南京大学计算机软件研究所课程网站等5。在线学习在西方发达国家已经较为成熟,相比之下,发展中国家还需进一步探索适合自己的网络教学道路。在线学习的发展趋势以学生为中心,重视自主学习和协同学习,提升学习的互动性,提高学生的学习效率6。我国人口基数大,教育事业是国家发展大计。随着互联网的深入发展,越来越多的人开始利用网络来获取他们想要的信息。除了学生以外,无论是农民工异或家政服务员等也都要通过学习才能掌握良好的技能。而Moodle在教育领域将起到巨大的促进作用,因此对Moodle的使用研究与探索开发具有很大的现实意义。edX、Coursera和Udacity是mooc平台的三巨头,Coursera聚集了上百所名校的课程,edX将其网络资源向学员免费开放,Udacity则有精致、细节的特点。在线教育的投入相比于传统教育中需要支付昂贵的学费,大大减轻了学生家庭的经济负担,让高等教育更加的普及。伴随大数据的发展,利用在线课堂来统计学生的学习情况和意见反馈,将能够更好的实现因材施教7。1.3论文研究的主要内容翻阅Moodle官方文档,掌握Moodle系统的搭建和使用;理清Moodle系统功能及目录结构,了解主题与插件的自定义方式;根据需求为系统设计和开发相应的插件。在本课题中,将实现笔记和台账任务两个插件,以满足所参与的Moodle工程项目中的功能需求。笔记插件将以较为方便快捷、友好实用的方式展现给用户,即能够为用户笔记自动填充好一些信息,用户只需要填写笔记的正文即可;在笔记打印时能够自动生成报告的样式进行打印,方便用户的使用。台账任务插件能够提供任务分配的功能,能够设定任务的起止时间,任务的完成条件,对用户任务的完成进度进行跟踪统计。1.4论文的组织结构第一章引言。讲述了Moodle的研究背景,它对教育事业发展的作用和意义,国内外的研究现状,以及本文的研究内容。第二章相关理论与技术基础。介绍包括开发工具及关键技术以及环境的搭建,简述Moodle系统及插件开发的步骤。第三章需求分析与设计。对Moodle工程项目中的需求进行分析,给出功能设计和数据库设计等。第四章插件实现。展示插件的效果,其中以笔记插件和台账任务插件为例进行讲述,给出了效果图和部分关键代码。第五章总结与展望。讲述研究Moodle系统和编写本文期间对所做工作,对在线学习系统发展及新功能开发展望。1.5本章小结本章引言部分在研究背景中指出了传统教育中存在的问题,引入在线学习的方式能够较好地弥补其中的不足。目前国内外都开始重视在线教育的发展,通过开展在线学习来使得高等教育得到良好的普及,削减教育水平不平衡性,真正达到平等开放8。Moodle在线学习系统有着开源、兼容性好、易使用的特点,真正地从学习的角度来提供教学环境9。了解其系统结构有利于进行个性化的开发,通过探索插件开发的步骤不断地完善和丰富系统功能。第2章 相关的理论与技术基础2.1开发工具及关键技术开发工具:php storm、php study、Google chrome(安装xdebug helper插件)、Navicat for MySQL、notepad+、github客户端等。关键技术:HTML、JavaScript、Css、php、MySQL、Apache等9。2.1.1开发工具简介Php storm:是一个轻量级且便捷的PHP IDE,易于安装,可在Windows,Linux,Mac OS X上运行。它能够大大提高用户的开发效率,智能补全代码,提供可良好的文件结构目录及文件内容导航,实时检查错误。支持在php、js、html中设置断点,可视化调试。它包含的功能有:智能php编辑器,实现了php代码的自动补全和提供重构功能等;JavaScript编辑器,能够实现代码调试,方便与观察各变量的值;HTML/CSS编辑器,能够支持HTML5、检查和快速修正、显示应用的外观、提取嵌入样式等。Php study:是一个PHP调试环境的程序集成包。它集成了Apache、PHP、MySQL、phpMyAdmin以及ZendOptimizer,安装操作简单方便,不需要做过多的配置修改。该程序包含有php的调试环境和开发时需要使用的参考手册等。Google chrome:Google浏览器是一款常用和功能强大的web浏览工具。这里用于浏览Moodle系统中的页面,利用其检查功能来对页面进行分析调整,安装xdebug helper插件用于配合php storme进行代码调试。Navicat for MySQL:是一个常用的可视化数据库管理工具,使用它来对MySQL数据库管理很方便。它有着强大的功能,包括对象管理、数据阅读器和编辑器、多样化的导入导出等,在开发和维护上能够给使用者提供快速便捷的操作。Notepad+:是一个实用的文本编辑器。它除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码,而且是免费使用的。支持众多计算机程序语言,多达27种语法高亮度显示,支持自定义语言。可自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,还可显示缩进引导线,代码显示得很有层次感。有强大的正则匹配字符串及批量替换以及全局搜索功能等。Github客户端:分布式的版本管理工具。这里用于项目开发时的代码管理和版本控制。2.1.2关键技术简介Html:超级文本标记语言,用于网页的编写。网页结构可分为两大部分,包括“头”部分(Head)和“主体”部分(Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容。它具有简易性、可扩展性、平台无关性、通用性等。JavaScript:一种直译式、动态类型、弱类型的网络脚本语言。它采用解析的方式来执行而不进行预编译。其解释器是浏览器的一部分,被称为JavaScript引擎。最早是在HTML网页上使用,用来给HTML网页添加各式各样动态效果,增加交互行为,为用户提供更流畅美观的浏览效果。可以直接嵌入HTML页面,但也可以写成单独的js文件有利于结构和行为的分离。具有跨平台的特性,在绝大多数浏览器的支持下,可运行在多平台下。Css:层叠样式表,是一种用来控制网页元素样式的设计语言。它能够使得网页的内容元素和表现形式相分离。相对于传统HTML的表现而言,CSS将网页元素的样式控制脱离网页元素标签的范围,更加灵活地控制元素以及元素组间的样式。通过选择器的使用能够实现对元素的排版控制到达简便精确的效果,同时代码有较强的易读性。Php:超文本预处理器(Hypertext Preprocessor),是一种通用开源脚本语言。它主要应用于Web开发领域,具有与C语言、Java等相近的语法结构,熟悉这两种语言的学者都能很快掌握其基本用法。它是免费开源的,能够通过C、C+来进行扩展,对流行的操作系统和数据库有良好的支持。它还具有快捷性,即程序开发快,运行快,初学者掌握快等。可以被嵌入于HTML语言,在动态网页执行上有效率较高。运行在服务器端,跨平台性强,可以运行在UNIX、LINUX、WINDOWS、Mac OS、Android等平台。Mysql:是一个关系型数据库管理系统,目前较为流行。在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。其数据的存放方式不是堆积在一个数据仓库中,而是通过不同的表来保存数据,大大提升了数据管理的灵活性。同时,它还是开源的软件,所占的体积小、执行速度快以及总体成本低。Apache:是目前世界上流行的Web服务器之一,具备良好的跨平台性和安全性。它是开源的,能够得到开发者们的不断完善和丰富。2.1.3环境搭建这里讲述的是Windows操作系统下的环境搭建。1、下载并安装Php study。安装步骤与一般的软件安装类似,要注意的是在安装时选好网站的根目录(当然,安装完后也能进行修改)。根据开发的需要,在安装好后要对Php study的配置进行一些修改。具体步骤如下:选择Php版本。运行Php study,在控制界面上点击“其他选项菜单”,点击“PHP版本切换”,这里选择Apache + Php 5.5n。添加功能扩展。在控制界面上点击“其他选项菜单”,点击“PHP扩展及设置”-“PHP扩展”,勾选php_openssl和php_soap。最后要重新启动设置才会生效。(参考图2-1和图2-2)图 2-1 PhpStudy 控制面板Fig. 2-1 The control panel of phpstudy图 2-2 其他选项Fig. 2-2 Other option menu2、Moodle系统的安装。Moodle的安装有两种方式,一种是通过浏览器安装,另一种则是通过项目移植来实现。从Moodle的官方网站下载Moodle的安装包(网址:/windows/),其中已经集成了Moodle的运行环境。将下载的安装包解压后,得到4个文件:server文件夹、README.txt、Start Moodle.exe、Stop Moodle.exe。运行Start Moodle.exe(关闭防火墙并允许应用程序执行),在浏览器中输入http:/localhost/moodle 回车后,进入Moodle的安装界面,根据提示进行安装(其中要注意数据库信息的设置)。通过浏览器安装的一个弊端是等待安装的时间太长。在本项目中,采用的是php study来作为Moodle的运行环境,因此主要采用的是项目移植的方式进行快速安装。3、项目移植。从已安装好的项目中将Moodle文件和moodledate文件夹拷贝出来,同时利用数据库管理工具Navicat for MySQL将Moodle数据库转储为moodle.sql;在新的环境(这里指php study集成环境)下将Moodle和moodledate 文件拷贝到对应的目录下,必要时修改Moodle文件下面的config.php 文件配置;同时,要在新环境下的数据库中运行转储生成的moodle.sql。完成后在浏览器中即可访问新移植的Moodle系统。通过这种方式来安装Moodle平台,即简单又快捷;大大缩短了安装时的等待时间。2.2 Moodle概述2.2.1 Moodle系统概述 Moodle系统功能Moodle基本功能主要针对管理员、教师和学生三种系统默认的角色,每部分功能都有相关的模块,可以根据教学的需要来选择适合的模块10。图 2-3 Moodle系统功能Fig. 2-3 The system function of Moodle1、管理员功能管理员拥有系统中最高的管理权限,能管理系统资源,他的任务是负责整个平台的搭建、管理和日常维护工作。同时,管理员又会进一步划分为网站管理员和课程管理员两种。站点管理员能够对系统的所有配置进行修改和维护。课程管理员只能对课程的相关资源进行维护和管理,保障课程满足教师和学生的需求11。2、教师功能在Moodle的功能设计中,教师的角色是作为整个教学活动的引领者,是Moodle中教学及其相关活动的组织者和参与者,教师负责针对不同的教学活动进行设计、组织与评价。对教师的功能可以细分为两类,对相关课程有权限进行编辑的主讲教师和对相关课程无权进行编辑的助教12。由管理员授予教师相应的角色,而教师又可以在自身角色的权限范围内来选定另一名角色并赋予其比自己低一级的权限。让该角色来辅助教师开展课程的教学活动。也可以对其所开设课程的各项参数进行修改使之适合课程的需要。一般来说,课程的助教会具有查看其管理的课程日志、浏览活动报告、管理学生的学习成绩、进入讨论区等基本的权限13。助教最主要的任务是协助课程的主讲教师回答学生提出的各种问题,并协助主讲教师对学生在课程中的活动进行一些日常的管理,督促教学进度,但助教不会参与到课程的设计和修改中,影响课程的核心架构和资源。3、学生功能学生有权限对其个人信息进行修改,这里包括学生在其参与的课程中的信息;可以在教师允许(设置权限)的前提下上传与课程相关的学习资源供自己和同学一起学习;可以查看新发布的活动通知、浏览课程公告、参与教师和同学的课程讨论、上传课程作业、参加考试等。学生从学习开始直至学习结束时都可以对课程进行评价14。 Moodle功能模块Moodle中的功能模块有15:用户注册登录模块、网站管理模块、学习活动模块和可扩展模块。1、 用户注册登录模块此模块是用户进入Moodle平台的必经模块。系统在安装后默认是不开放注册功能的,需要时才由管理员登录进行设置。未注册的用户访问Moodle系统默认是以访客的角色来进行浏览。2、 网站管理模块此模块有较多的功能,可以细分为以下子模块16:系统管理模块:可以实现对主题的切换,设置用户注册后的默认权限等。用户管理模块:对账户和账户权限进行管理。添加、查询或删除帐户,修改用户信息或设置是否允许用户对个人信息的修改。根据实际需要为用户分配相应的角色(Moodle中的默认角色有管理员、教师、学生、访客等),可以修改角色的默认权限(其中上一级能够修改下一级用户的角色和权限),也可以自定义角色及其对应的权限。资源管理模块:Moodle中每个账号都有自己对应的应用和资源,也可以将资源添加到共享池中。支持的资源有文档、图片、音频、视频等,内置功能强大的编辑器方便用户使用各种资源时进行合理的布局,并能够将资源以链接的方式提供给其它页面使用。资源的分配一般是以课程为单位进行,可以在课程模块中添加多个资源并能够对模块的先后顺序进行调整。课程管理模块:包括课程资源管理,对资源进行分类、添加、删除和修改;课程参与者管理,对课程参与者进行小组划分,分配各参与者在课程中的角色和权限;课程评价体系,增加师生互动,通过系统日志了解和掌握学生的学习情况和学习过程,对其进行评分并给予证书或勋章奖励,根据学生的评价评价和反馈来修正教学方式;课程可重用性,将制作好的课程进行打包共享,大大减少了课程的制作成本。3、 学习活动模块学习活动模块主要分为协作式课程活动和交互式课程活动两类。协作式课程活动主要有讨论和聊天模块。交互式课程活动主要有作业、投票、问卷和测验等;所有的功能模块都不是一个单独的模块,这些模块都针对网络教育的特殊需求进行了优化与改良,每个模块都是课程的组成部分,教师可以在课程中方便的添加对应的模块,灵活运用这些模块开展教学17。4、 可扩展模块模块的扩展可以是直接添加或者进行二次开发。添加模块可以是直接开启系统中默认隐藏的模块,也可以是下载别人开发的模块安装到系统中。二次开发更具有针对性,根据实际的需要依据Moodle提供的接口来开发自己需要的模块18。 Moodle的系统架构Moodle的系统架构采用三层B/S结构,实现了用户界面、数据访问和业务逻辑三者的分离,使得Moodle系统更具有可扩展性和灵活性。其简要的系统结构如图2-4所示:图 2-4 Moodle系统架构Fig. 2-4 The system architecture of Moodle基本模块包括用户验证、用户管理、课程管理、活动模块等;公共服务模块包括选课插件、用户身份验证、模块/数据导入导出、资源管理等;核心类库包括用户表单控制、模块控制、导入导出控制、XML数据管理、Ajax、数据库抽象等; Moodle的目录结构在安装时可看到,Moodle系统由三部分组成:Moodle代码、Moodledate、Moodle数据库脚本。从Moodle的文件结构中能够体现Moodle系统面向对象的模块化设计方式。一个功能部件即为一个文件目录,功能部件中又通过可以插件方式进行组装。同样的,在功能部件文件夹下可以看到各插件模块的子文件目录。Moodle的主要目录结构如表2-1所示:表2-1Moodle主要目录和文件Table. 2-1 The main directory and file of MoodleMoodle主要目录和文件文件夹功能admin/系统管理的代码auth/验证用户基本模块及扩展模块blocks/页面block左右栏目中的信息块,如设置板块、消息板块等calendar/维护及显示日历的代码course/显示和管理课程的代码doc/Moodle的帮助文档files/显示和管理上传文件的代码lang不同语言的对应文本, 每个目录表示一种语言,并且和具体的模块对应lib/Moodle的核心代码库login/登录及账号创建代码mod/Moodle的基本模块和扩展模块pix/站点的图片theme/站点的主题包/皮肤包,控制站点的样式user/显示和管理用户config.php包含基本的系统设置,一般在第一次安装时设置install.php安装站点version.php版本控制index.php站点首页Moodle作为不断发展完善的在线学习系统,其数据库已经演变为相当庞大地步,拥有近200多张的数据表。数据库表的命名比较规范,在默认安装时会以mdl_作为数据库表名称的前缀,其后就是模块对应的名称。Moodledate一般是放在服务器目录以外的目录中,用于存放用户上传的文件、语言包等。系统会根据每个用户或每门课程来创建相应的文件目录来存放数据。2.2.2 Moodle插件开发Moodle社区规定二次开发的重点不是对Moodle的核心代码和模块进行修改,而是围绕其核心代码来对外部功能模块的设计和开发。这样保证了Moodle系统的稳定性和可靠性,符合了设计模式中的开闭原则,同时也降低了各模块间的耦合度19。 插件的基本目录结构Moodle系统中的每个插件目录都具有独立性,其具有相似的文件结构(如表2-2所示),下面对插件目录中的部分文件目录作进一步的说明20。表2-2Moodle插件的目录和文件Table. 2-2 The directory and file of Moodle plug-inMoodle插件的目录和文件文件夹功能db/管理插件对应的数据库表以及访问权限,js/插件中页面的控制脚本lang/插件的语言包,包含帮助文件和翻译文件pix/插件的图标文件index.php插件给课程提供的功能列表lib.php库函数文件,其中包括新插件集成到Moodle系统中必须的系统库函数,另一些是实现新插件功能必须的函数。mod_form.php插件新实例产生时提供表单,一般显示在index.php和view.php文件中。version.php标明插件的版本view.php新插件被执行的第一个文件,即主页,是插件的功能界面。db目录中包含有install.xml、access.php、upgrade.php等文件,具体说明如下2122:1、access.php文件是权限控制文件。在模块使用时会读取此文件进行权限的判断,模块中对各个功能、范围、用户等因素进行组合以定义不同的权限。这里举一个样例来说明:mod/lesson:addinstance = array( riskbitmask = RISK_XSS, captype = write, contextlevel = CONTEXT_COURSE, archetypes = array( editingteacher = CAP_ALLOW, manager = CAP_ALLOW ), clonepermissionsfrom = moodle/course:manageactivities)其中:mod/lesson:addinstance,即这是对lesson模块中的addinstance这个功能的权限设置。riskbitmask = RISK_XSS,即允许的风险类型。其中风险包括有个人风险、垃圾广告风险、数据丢失风险等,如:RISK_SPAM、RISK_PERSONAL、RISK_XSS、RISK_CONFIG。captype = write,即允许操作的动作。即读和写能力,读能力只能看,写能力则有进行修改的能力。contextlevel = CONTEXT_COURSE,即给定这个权限的适用范围。Moodle中设定的权限范围有6种,分别是:标识范围CONTEXT_SYSTEM:整个站点;CONTEXT_USER:普通用户;CONTEXT_COURSECAT:一个课程类别;CONTEXT_COURSE:一个课程;CONTEXT_MODULE:一个活动模块;CONTEXT_BLOCK:一个板块。archetypes = array( editingteacher = CAP_ALLOW, manager = CAP_ALLOW ),即对各种角色用户的权限定义。Moodle中内置了几种角色:管理员、教师、学生、非编辑教师以及游客等。通过这里的设置来为不同的角色赋予相应的权限2324。2、install.xml文件通过使用XML语言定义了所在插件的数据表结构。用XML文件格式来定义数据库表具有良好的通用性。在安装时操作人员无需手动去修改数据库,系统会自动检查并读取这个文件实现数据库的更新操作2526。这里以一个简单的标签插件的install.xml文件为例,从文件中将看到定义了两张表tag_my和tag_table_my,用于标签的相关操作。具体定义方式如下: 3、upgrade.php 文件用来更新数据库表。每个插件都定义自己的版本号,在有新的插件版本被安装时,如果插件出现了比Moodle记录中更新的版本,Moodle将运行upgrade.php文件,或是增加新表,或是给已有表添加新的字段,或者改变字段格式或生成新的索引27。lang目录:其中针对每种语言来各自创建一个子文件夹,如英文的语言文件夹为en,中文的语言文件夹为zh_cn等28。 插件的开发步骤首先在moodle/mod文件夹中建立一个新的文件夹,以新插件的名字命名,再按照插件的基本文件结构在该文件下创建其他各子目录和文件29。快速有效的方法是导入一个插件的模板文件到新建的文件夹中,把模板文件中所有涉及到插件名称的地方替换为新插件名3031。接下来的主要工作是:(1)定义数据库表。即在install.xml文件中定义新模块的数据库结构。(2)设置访问控制及版本。即在access.php文件中,对新的模块增加访问控制,设定用户访问能力,在version.php文件中设定当前插件的版本。(3)完善或创建mod_form.php和view.php文件以及index.php等相关页面,实现相应的功能。2.3本章小结本章介绍了Moodle实际开发中使用的开发工具和关键技术,给出了环境的搭建以及Moodle的安装步骤。对Moodle系统的整体框架和主要功能模块进行简要的描述。对插件的开发步骤做详细说明。第3章 需求分析与设计本章起将主要讲述Moodle工程项目实际开发中的两个插件例子,通过这两个例子来说明Moodle插件开发的过程。3.1需求分析和传统的课堂一样,学生在网络课程的学习中仍然有对课程中的重点和难点做笔记的需要,以便他们能够及时有效地复习学习的内容;同时学生可以记录一些个人的心得体会,有利于学生的自我总结。为让学生更具有方向性、系统性和针对性地学习,管理员通过设定学习任务并分配给相应的学员,学员按照分配的任务要求进行有目的地学习;同时可以根据任务的完成来判定学员的学习等级,学员只有完成相应的任务后才能获得相应的等级证明32。3.1.1功能需求(1)笔记插件此插件主要是面向普通的用户,为普通用户提供笔记的创建和管理,用户只能查看和操作自己的笔记而不能随便查看或操作其他人笔记33。用户能够在课程学习中针对课程内容创建学习笔记,此笔记的标题、类别等信息根据当前的课程实现自动的填充。用户能够在非课程区域创建个人笔记,此笔记的标题、类别等由用户自主定义,可记录任意的内容。用户能够查看个人创建的笔记记录以及修改和删除笔记。用户能够选择要打印的笔记并提供一个友好的打印模版。图3-1 笔记插件用例图Fig. 3-1 The use case diagram of note plug-in(2)台账任务插件此插件主要面向管理员用户,为管理员提供台账任务的创建和管理,以及任务的分配和查看。管理员创建任务,从现有的课程中选择课程作为任务的内容,其中课程划分为必修课程和选修课程,设定任务的完成条件,如需要设定选修课至少要完成的数量,任务的开始和结束时间等。管理员将任务分配给相应的学员,或者取消任务的分配。管理员查看任务中学员的进展情况,用户任务需要完成所有的必修课程以及设定的至少选修课数目才能完成该任务。管理员查询、修改或删除任务。图3-2 台账任务插件用例图Fig. 3-2 The use case diagram of ledger tasks plug-in3.1.2实用性需求提供友好的界面,新增的功能能够提升系统的实用性,丰富在线课堂的学习内容。尽可能保持Moodle简洁实用的设计风格,避免让使用者做太多复杂的操作,而是让操作变得简单有效。3.1.3可移植性需求Moodle插件就是一个独立的模块,能够动态添加数据库表,其本身就具有很好的独立性和灵活性。将打包好的插件模块进行分享,能够在其他Moodle系统上进行快速安装,不需要重新开发和进行复杂的移植修改。3.2功能设计3.2.1插件功能模块(1)笔记功能主要是为普通用户提供的,用户在登录系统后才具有创建、查看、管理和打印笔记等功能。笔记的功能如图3-3所示:图3-3 笔记插件功能划分Fig. 3-3 The architecture of note plug-in function各功能对应的相关数据如下:创建课程笔记(当前课程相关信息:课程id、课程标题等,当前用户信息:用户id,笔记标题,笔记内容,笔记的创建时间)创建个人笔记(当前用户信息:用户id,笔记标题,笔记内容,笔记的创建时间)查看笔记、管理笔记(用户id,笔记id,笔记类型)打印笔记(用户id,笔记id,笔记类型,笔记信息)(2)台账任务功能主要是为管理员提供的,管理员通过此功能来创建、分派、查看和管理任务。台账任务功能如图3-4所示:图 3-4 台账任务插件功能划分Fig. 3-4 The architecture of ledger tasks plug-in function各功能对应的相关数据如下:创建台账任务(任务标题,任务课程,任务完成条件,任务起止时间,任务创建的时间)分配任务(任务id,人员id)查看任务进度、取消任务(任务id,人员id)管理任务(任务id)3.2.2流程图(1)创建笔记流程图34图3-5 创建笔记流程图Fig 3-5 The process of create note(2)创建台账任务流程图图3-6 创建台账任务流程图Fig 3-6 The process of create ledger tasks3.4数据库设计对新添加的笔记功能和台账任务功能,需要结合系统原有的数据库进行分析设计,正确地处理好各实体间的关系,并在已有表的基础上为新的功能添加相应的数据表35。3.4.1 ER图图3-7 数据表ER图Fig 3-7 Data table entity relationship diagram3.4.2 数据库表表3-1 笔记记录表Table. 3-1 Note recode table表名mdl_note_my列名数据类型空说明idBIGINTNiduseridBIGINTNUser表中的用户idnotetypeTINYINTN1:课程笔记 2:个人笔记courseidBIGINTCourse表中的课程idtitleVARCHAR(100)N笔记标题contentVARCHAR(1332)笔记内容timeVARCHAR(100)创建时间表3-2 用户表Table. 3-2 User table表名mdl_user列名数据类型空说明idBIGINTNidusernameVARCHAR(100)用户名称passwordVARCHAR(255)密码firstnameVARCHAR(100)名lastnameVARCHAR(100)姓emailVARCHAR(100)邮箱phone1VARCHAR(20)电话1phone2VARCHAR(20)电话2addressVARCHAR(255)住址descriptionLONGTEXT自述.表3-3 课程记录表Table. 3-3 Course recode table表名mdl_course列名数据类型空说明idBIGINTNidcategoryBIGINT分类fullnameVARCHAR(254)课程名shortnameVARCHAR(255)课程名简称summaryLONGTEXT课程描述.表3-4 台账任务记录表Table 3-4 Ledger tasks recode table表名mdl_mission_my列名数据类型空说明idBIGINTNidmission_nameVARCHAR(100)任务名称required_course_numBIGINT必修课数量required_course_idVARCHAR(100)Course表中的课程idoptional_course_numBIGINT选修课数量optional_course_idVARCHAR(100)Course表中的课程idtime_startBIGINT任务开始时间time_endBIGINT任务结束时间enableBIGINT任务启停开关表3-5 任务用户表Table 3-5 Mission user table表名mdl_mission_user_my列名数据类型空说明idBIGINTNidmission_idBIGINTMission表中的任务iduser_idBIGINTUser表中的用户id3.5本章小结本章对Moodle工程项目中的需求进行分析,通过用例图抽象和提取其中的功能,将以笔记插件和台账任务插件来实现上述功能。设计各主要功能对应的流程以及定义相应数据库表,为编码实现做好准备。第4章 插件实现4.1笔记插件在平台相应的页面中添加笔记插件的功能链接,实现功能的扩展。4.1.1创建课程笔记学生登录系统,进入相关课程后,可针对课程的学习创建笔记记录。在学习的过程中,点击页面的笔记创建按钮即可创建课程笔记。课程笔记的题目和对应的课程标题能够自动生成,学生只需要进行内容的书写即可,这样节省了做笔记的时间,同时也方便学生后期对笔记的查看和整理,如图4-1所示:图4-1创建课程笔记Fig. 4-1 Create course notes页面中的表单是通过Moodle封装的标签来布局,关键代码如下:/输入界面表单$mform = $this-_form;$mform-addElement(text, title, 笔记题目:); /为表单添加元素$mform-setType(title, PARA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025办公租赁合同
- 加氢稳定装置操作工突发故障应对考核试卷及答案
- 2025年具身智能运动控制精度测试题(含答案与解析)
- 2025年模型水印鲁棒性增强试题(含答案与解析)
- 传输机务员5S管理考核试卷及答案
- 电线电缆挤橡工技能巩固考核试卷及答案
- 反射炉工设备调试考核试卷及答案
- 白酒制曲工培训考核试卷及答案
- 电动工具制造工专项考核试卷及答案
- 2025陶瓷茶具买卖合同书
- 常用急救药品的剂量与用法课件
- 《高级计量经济学》-上课讲义课件
- 中学生物学教学技能与实践课件
- 塔吊基础-专项施工方案
- 《工贸行业重大安全生产事故隐患判定标准》解读课件
- 《农产品质量安全》系列讲座(第一讲-农产品质量及安全)课件
- 第二届中国管理培训生项目现状与发展调研报告
- 托业考试Toeic考题
- GB∕T 10429-2021 单级向心涡轮液力变矩器 型式和基本参数
- 电信市场营销试题库
- 资产评估质量保证措施
评论
0/150
提交评论