html中加入姓名学号的代码,让moodle增加学号(示例代码)

这个学期,信息技术学科采用moodle作为教学平台,毕竟moodle是外国人开发的,用着总不习惯,比如学号。输出的成绩如果没有学号在里面,我们一位老师要教4个班级可怎么办啊。我们的学生是用学号为用户名的,但是在moodle的很多管理界面中是看不到用户名。

解决这个问题也走了一些弯路,先是修改了/grade/export/xls/下的grade_export_xls.php文件,将email替换为username。因为email字段没有什么用,就直接输出用户名算了,暂时就这样把期末的学生成绩输出。

过了几天,有点空了,总觉得这样不好,因为看不到学号,像我们这样实施走班教学的,管理起来真的不方便。再次研究moodle,发现其有个idnumber,好像是闲置的,看看能不能利用起来。折腾了一会儿,还是感觉这样改代码的方式总不好,哪天moodle升级了,我还是要改代码,不是一劳永逸的办法。

在我网上找资料,想看看其他用moodle的同行是怎么做的,结果发现有人在帖子中提到:

Moodle的user表中有idnumber字段,曾经问过martin为何不显示学号的问题,他说国外很多学校学号都是属于个人隐私,一般都是不显示出来的。如果要做这个功能,需要在全局增加一个选项,然后在每一个需要显示学号的地方打补丁。

看来idnumber还是有点用的,的确不应该动用。幸好有一位同行提供了变通的好方法:

1.进入moodledata\lang\zh_cn_utf8文件夹,打开moodle.php文件,找到$string[‘firstname‘]=‘名‘;一行,将“名”改成“姓名”。

2.找到$string[‘lastname‘]=‘姓‘;一行,将“姓”改成“学号”。

3.以管理员身份登录系统,进入安全性/网站策略,找到“全名格式”项,选择“姓名+学号”。

4.此时,学生们已经可以正常显示姓名和学号了,但对于老师来说,没有学号,但此项又是必填项,怎么办呢?可以填入一个空格,或者是“老师”!

因为我们的学生数据已经放在里面了,只能在数据库中动手脚了。看了一下mysql的资料,写了以下两行sql代码,在phpmyadmin中搞定。

UPDATE`mdl_user`SETfirstname=concat(firstname,lastname)WHERELENGTH(username)>7

UPDATE`mdl_user`SETlastname=usernameWHERELENGTH(username)>7

代码说明:concat为合并,mysql不能向mssql一样用+或者&就可以合并的;LENGTH为长度函数。

http://www.aieln.com/article-1415-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Moodle-mod_hvp是Moodle平台上的一种插件,它可以用于创建交互式H5P内容。而在moodle-mod_hvp,embed.php文件则用于将H5P内容嵌入到Moodle。 下面是embed.php文件的详解: 1. 首先,通过require_once函数引入Moodle的config.php文件,以便在后面使用Moodle的全局变量和函数。 ``` require_once(dirname(dirname(dirname(__FILE__))) . '/config.php'); ``` 2. 接着,获取当前用户的上下文信息,并根据上下文信息确定当前用户是否有权限查看该H5P内容。 ``` $cmid = required_param('id', PARAM_INT); $course_module = get_coursemodule_from_id('hvp', $cmid, 0, false, MUST_EXIST); $course = $DB->get_record('course', array('id' => $course_module->course), '*', MUST_EXIST); $hvp = $DB->get_record('hvp', array('id' => $course_module->instance), '*', MUST_EXIST); $context = context_module::instance($course_module->id); require_login($course, true, $course_module); require_capability('mod/hvp:view', $context); ``` 3. 接下来,根据H5P内容的类型(package类型或content类型)决定如何获取H5P内容的数据。 ``` if ($hvp->embedtype == 'package') { $fs = get_file_storage(); $files = $fs->get_area_files($context->id, 'mod_hvp', 'package', $hvp->package, 'id'); if (count($files) !== 1) { print_error('embedfilenotfound', 'mod_hvp', '', $hvp->package); } $file = reset($files); send_stored_file($file, 0, 0, true); } else { $json = hvp_print_content($hvp, true); $position = strpos($json, '{'); $json = substr($json, $position); $json = json_decode($json, true); $content = $json['library']['embedTypes'][0]['url']; echo html_writer::start_tag('iframe', array( 'src' => $content, 'frameborder' => 0, 'allowfullscreen' => true, 'webkitallowfullscreen' => true, 'mozallowfullscreen' => true, 'width' => $hvp->width, 'height' => $hvp->height )); echo html_writer::end_tag('iframe'); } ``` 4. 如果H5P内容的类型是package类型,则从文件存储获取H5P包,如果获取失败,则输出错误信息;如果H5P内容的类型是content类型,则通过调用hvp_print_content函数获取H5P内容的数据,并从解析出H5P内容的URL,最后通过iframe将H5P内容嵌入到Moodle。 以上就是embed.php文件的详解,希望可以帮助你理解该文件的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值