我正在编辑基于moodle的网站,我需要创建一个双重注册表单。第一个已经设置(对于学校),我需要为私人用户创建另一个。最好的方法是什么? 是否值得复制主要的注册文件(signup.php和signup_form.php),然后在那里进行更改? 非常感谢
答案 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'替换为新身份验证插件的名称。