moodle双重登记表

时间:2016-06-06 10:08:16

标签: forms registration moodle

我正在编辑基于moodle的网站,我需要创建一个双重注册表单。第一个已经设置(对于学校),我需要为私人用户创建另一个。最好的方法是什么? 是否值得复制主要的注册文件(signup.php和signup_form.php),然后在那里进行更改? 非常感谢

1 个答案:

答案 0 :(得分:0)

我认为最好的解决方案是创建一个新的身份验证插件。

https://docs.moodle.org/dev/Authentication_plugins

也许将此处的代码/auth/email复制到/auth/newname - 用代码中的newname替换电子邮件。

可能延长课程?在/auth/newname/auth.php

中就是这样的
defined('MOODLE_INTERNAL') || die();

require_once($CFG->dirroot . '/auth/email/auth.php');

class auth_plugin_newname extends auth_plugin_email {

    ...

    function can_signup() {
        return true;
    }

    ...

然后将/login/signup_form.php复制到/auth/newname/signup_form.php

下一点我不太确定,但您可能需要修改/login/signup.php

绕线

if (empty($CFG->registerauth)) {
    print_error('notlocalisederrormessage', 'error', '', 'Sorry, you may not use this page.');
}
$authplugin = get_auth_plugin($CFG->registerauth);

更改为

if (optional_param('newname', false, PARAM_BOOL)) {
    $authplugin = get_auth_plugin('newname');
} else {
    if (empty($CFG->registerauth)) {
        print_error('notlocalisederrormessage', 'error', '', 'Sorry, you may not use this page.');
    }
    $authplugin = get_auth_plugin($CFG->registerauth);
}

然后对于私人注册使用

http://www.yoursite.com/login/signup.php?newname=1

将'newname'替换为新身份验证插件的名称。