From 7c45b3f789d94ddf670025ca64de9279952604fa Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 24 Jul 2022 16:33:28 +0300 Subject: [PATCH] * add HOOK_LOGINFORM_ADDITIONAL_BUTTONS * allow plugins to inject JS code into login form --- classes/plugin.php | 14 ++++++++++++++ classes/pluginhost.php | 3 +++ include/login_form.php | 22 ++++++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/classes/plugin.php b/classes/plugin.php index 39af6a9a1..f47ab1882 100644 --- a/classes/plugin.php +++ b/classes/plugin.php @@ -49,6 +49,11 @@ abstract class Plugin { return ""; } + /** @return string */ + function get_login_js() { + return ""; + } + /** @return string */ function get_css() { return ""; @@ -690,6 +695,15 @@ abstract class Plugin { * @return array - [0] - if set, url to redirect to */ function hook_post_logout($login, $user_id) { + user_error("Dummy method invoked.", E_USER_ERROR); + return [""]; } + + /** Adds buttons to the right of default Login button + * @return void + */ + function hook_loginform_additional_buttons() { + user_error("Dummy method invoked.", E_USER_ERROR); + } } diff --git a/classes/pluginhost.php b/classes/pluginhost.php index 952d4df77..6ab4ac806 100755 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -203,6 +203,9 @@ class PluginHost { /** @see Plugin::hook_post_logout() */ const HOOK_POST_LOGOUT = "hook_post_logout"; + /** @see Plugin::hook_loginform_additional_buttons() */ + const HOOK_LOGINFORM_ADDITIONAL_BUTTONS = "hook_loginform_additional_buttons"; + const KIND_ALL = 1; const KIND_SYSTEM = 2; const KIND_USER = 3; diff --git a/include/login_form.php b/include/login_form.php index 2e0eb077f..a26a58cc9 100755 --- a/include/login_form.php +++ b/include/login_form.php @@ -32,6 +32,27 @@ + + @@ -175,6 +196,7 @@
+ run_hooks(PluginHost::HOOK_LOGINFORM_ADDITIONAL_BUTTONS) ?>