mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 05:58:34 +01:00
MDL-58836 auth: Improve backwards compatibility
Auth plugins with custom signup forms may not be using renderables / renderers - or even if they are they may return a renderable that can only be rendered with the renderer from the auth plugin. This change checks if the signup form is a renderable - if so try the plugin renderer or fall back on the general renderer. Otherwise call display() from the mform which is the previous way of rendering an mform.
This commit is contained in:
parent
48ad73619f
commit
406b92c6fd
@ -128,7 +128,7 @@ class login implements renderable, templatable {
|
||||
$data->error = $this->error;
|
||||
$data->forgotpasswordurl = $this->forgotpasswordurl->out(false);
|
||||
$data->hasidentityproviders = !empty($this->identityproviders);
|
||||
$data->hasinstructions = !empty($this->instructions);
|
||||
$data->hasinstructions = !empty($this->instructions) || $this->cansignup;
|
||||
$data->identityproviders = $identityproviders;
|
||||
list($data->instructions, $data->instructionsformat) = external_format_text($this->instructions, FORMAT_MOODLE,
|
||||
context_system::instance()->id);
|
||||
|
@ -97,5 +97,17 @@ $PAGE->set_heading($SITE->fullname);
|
||||
|
||||
echo $OUTPUT->header();
|
||||
|
||||
echo $OUTPUT->render($mform_signup);
|
||||
if ($mform_signup instanceof renderable) {
|
||||
// Try and use the renderer from the auth plugin if it exists.
|
||||
try {
|
||||
$renderer = $PAGE->get_renderer('auth_' . $authplugin->authtype);
|
||||
} catch (coding_exception $ce) {
|
||||
// Fall back on the general renderer.
|
||||
$renderer = $OUTPUT;
|
||||
}
|
||||
echo $renderer->render($mform_signup);
|
||||
} else {
|
||||
// Fall back for auth plugins not using renderables.
|
||||
$mform_signup->display();
|
||||
}
|
||||
echo $OUTPUT->footer();
|
||||
|
Loading…
x
Reference in New Issue
Block a user