注册时添加学号Idnumber

学号,在国内的用处非常的大,就像身份证一样,用户的唯一标识。但在国外,学号却是非常隐私的,注册时既不是必填项,选填项都谈不上,只有在用户编辑个人资料时,在可选项中有学号的选项,与网页、ICQ号码、Skype号码、机构、系别、电话等在一起,显得可有可无。在国内,我们就非常的不适应,因为学号是唯一的,本人一直在思考这个问题,主要是想添加学号字段,并能在名单、作业、成绩等列表中能实现按学号排序的功能。

随着时间的推移,Moodle慢慢 走向国际化,学号慢慢也突显起来,不仅在用户列表、课程成员列表占有一席之地,在成绩列表也有学号的一栏。所有,Moodle搜集学号也非常有必要了。

学号,既不需要添加用户自定义字段,因为,Moodle本身就带有,学号——idnumber,早就存在于mdl_user表里,一直闲置。

如何拿到学号,最最直接的方式,就是注册、且必填。

经过翻越代码,做如下修改即可:

moodle\login\signup_form.php

添加如下代码:

$mform->addElement('text', 'idnumber', get_string('idnumber'), 'maxlength="255" size="25"');
$mform->setType('idnumber', core_user::get_property_type('idnumber'));
$mform->addRule('idnumber', get_string('required'), 'required', null, 'client');
$mform->setForceLtr('idnumber');

遗憾的时,idnumber为必填项了,不能提示“学号没填”,仅显示“必须的”,关键是没有解决

$mform->addRule('idnumber', get_string('required'), 'required', null, 'client');

get_string('missingidnumber');不能正确解析,尝试过修改moodle\lang\en\moodle.php,添加$string['missinglastname'] = 'Missing surname';然并卵,只能用“required”。

 

备注:

//You have couple of options:

//Use server side rules and check them in php code (implement method validation in form class).
$mform->addRule('fieldname', get_string('required'), 'required');

//Use client side rules but do not force them
$mform->addRule('fieldname', get_string('required'), 'required', '', 'client', false, false);

 

虽然这个问题解决了,但这个办法却不是一劳永逸的,每次Moodle一升级,就得改代码。

另外一个折中办法,就是直接导入注册用户,excel表中加入idnumber字段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值