From ee621c1b92bb808bb2aa68a2618851396294c260 Mon Sep 17 00:00:00 2001 From: Eric Date: Fri, 6 Sep 2019 17:40:29 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B02311=20-=20Login=20Page=20extensibility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/loginform.class.inc.php | 1 + application/logintwig.class.inc.php | 39 +++++++------------ application/loginwebpage.class.inc.php | 3 -- templates/login/base.html.twig | 21 +++++++++- templates/login/login.html.twig | 10 +++-- templates/login/loginformfooter.html.twig | 4 ++ templates/login/macros.twig | 7 ++-- .../login/password/changepwdform.html.twig | 4 ++ .../login/password/forgotpwdform.html.twig | 5 +++ .../login/password/resetpwdform.html.twig | 4 ++ 10 files changed, 61 insertions(+), 37 deletions(-) create mode 100644 templates/login/loginformfooter.html.twig diff --git a/application/loginform.class.inc.php b/application/loginform.class.inc.php index d045cd852..c2f159c5d 100644 --- a/application/loginform.class.inc.php +++ b/application/loginform.class.inc.php @@ -121,6 +121,7 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginDataExtension ); $oLoginData->AddBlockData('login_input', new LoginBlockData('loginforminput.html.twig', $aData)); $oLoginData->AddBlockData('login_submit', new LoginBlockData('loginformsubmit.html.twig')); + $oLoginData->AddBlockData('login_footer', new LoginBlockData('loginformfooter.html.twig')); $bEnableResetPassword = empty(MetaModel::GetConfig()->Get('forgot_password')) ? true : MetaModel::GetConfig()->Get('forgot_password'); $sResetPasswordUrl = utils::GetAbsoluteUrlAppRoot() . 'pages/UI.php?loginop=forgot_pwd'; diff --git a/application/logintwig.class.inc.php b/application/logintwig.class.inc.php index fe1e9109b..b072a48d1 100644 --- a/application/logintwig.class.inc.php +++ b/application/logintwig.class.inc.php @@ -157,34 +157,21 @@ class LoginTwigContext public function Render(NiceWebPage $oPage, $sTwigFile, $aVars = array()) { - $sType = 'html'; + $oTemplate = $this->GetTwig()->load($sTwigFile); + $oPage->add($oTemplate->renderBlock('body', $aVars)); + $oPage->add_script($oTemplate->renderBlock('script', $aVars)); + $oPage->add_ready_script($oTemplate->renderBlock('ready_script', $aVars)); + $oPage->add_style($oTemplate->renderBlock('css', $aVars)); - if (preg_match('/.*\.(html|ready\.js|js)\.twig/U', $sTwigFile, $matches)) + // Render CSS links + foreach ($this->aPluginFormData as $oFormData) { - $sType = $matches[1]; - } - - switch ($sType) - { - case 'html': - $oPage->add($this->GetTwig()->render($sTwigFile, $aVars)); - // Render CSS links - foreach ($this->aPluginFormData as $oFormData) - { - /** @var \LoginTwigData $oFormData */ - $sCSSFile = $oFormData->GetCSSFile(); - if (!empty($sCSSFile)) - { - $oPage->add_linked_stylesheet($sCSSFile); - } - } - break; - case 'js': - $oPage->add_script($this->GetTwig()->render($sTwigFile, $aVars)); - break; - case 'ready.js': - $oPage->add_ready_script($this->GetTwig()->render($sTwigFile, $aVars)); - break; + /** @var \LoginTwigData $oFormData */ + $sCSSFile = $oFormData->GetCSSFile(); + if (!empty($sCSSFile)) + { + $oPage->add_linked_stylesheet($sCSSFile); + } } } diff --git a/application/loginwebpage.class.inc.php b/application/loginwebpage.class.inc.php index 25bfab559..a579906d4 100644 --- a/application/loginwebpage.class.inc.php +++ b/application/loginwebpage.class.inc.php @@ -175,7 +175,6 @@ class LoginWebPage extends NiceWebPage $aVars['sFailureReason'] = $sFailureReason; $oTwigContext->Render($this, 'forgotpwdform.html.twig', $aVars); - $oTwigContext->Render($this, 'forgotpwdform.ready.js.twig'); } protected function ForgotPwdGo() @@ -277,7 +276,6 @@ class LoginWebPage extends NiceWebPage } $oTwigContext->Render($this, 'resetpwdform.html.twig', $aVars); - $oTwigContext->Render($this, 'resetpwdform.js.twig'); } public function DoResetPassword() @@ -326,7 +324,6 @@ class LoginWebPage extends NiceWebPage $oTwigContext = new LoginTwigContext(); $aVars = $oTwigContext->GetDefaultVars(); $aVars['bFailedLogin'] = $bFailedLogin; - $oTwigContext->Render($this, 'changepwdform.js.twig'); $oTwigContext->Render($this, 'changepwdform.html.twig', $aVars); } diff --git a/templates/login/base.html.twig b/templates/login/base.html.twig index c382413a8..c1129fbc8 100644 --- a/templates/login/base.html.twig +++ b/templates/login/base.html.twig @@ -1,7 +1,9 @@ {# @copyright Copyright (C) 2010-2019 Combodo SARL #} {# @license http://opensource.org/licenses/AGPL-3.0 #} + {% block body %} + {% import "macros.twig" as Macro %} {% block login_logo %}