[tr][td]这个学期,信息技术学科采用moodle作为教学平台,毕竟moodle是外国人开发的,用着总不习惯,比如学号。输出的成绩如果没有学号在里面,我们一位老师要教4个班级可怎么办啊。我们的学生是用学号为用户名的,但是在moodle的很多管理界面中是看不到用户名。
解决这个问题也走了一些弯路,先是修改了/grade/export/xls/下的grade_export_xls.php文件,将email替换为username。因为email字段没有什么用,就直接输出用户名算了,暂时就这样把期末的学生成绩输出。 过了几天,有点空了,总觉得这样不好,因为看不到学号,像我们这样实施走班教学的,管理起来真的不方便。再次研究moodle,发现其有个idnumber,好像是闲置的,看看能不能利用起来。折腾了一会儿,还是感觉这样改代码的方式总不好,哪天moodle升级了,我还是要改代码,不是一劳永逸的办法。 在我网上找资料,想看看其他用moodle的同行是怎么做的,结果发现有人在帖子中提到: Moodle的user表中有idnumber字段,曾经问过martin为何不显示学号的问题,他说国外很多学校学号都是属于个人隐私,一般都是不显示出来的。如果要做这个功能,需要在全局增加一个选项,然后在每一个需要显示学号的地方打补丁。 看来idnumber还是有点用的,的确不应该动用。幸好有一位同行提供了变通的好方法: 1.进入moodledatalangzh_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为长度函数。 [/td][/tr] |
|