1*9cf9796dSSatoshi Sahara<?php 2*9cf9796dSSatoshi Sahara 3*9cf9796dSSatoshi Saharanamespace dokuwiki\Ui; 4*9cf9796dSSatoshi Sahara 5*9cf9796dSSatoshi Saharause dokuwiki\Extension\Event; 6*9cf9796dSSatoshi Saharause dokuwiki\Form\Form; 7*9cf9796dSSatoshi Sahara 8*9cf9796dSSatoshi Sahara/** 9*9cf9796dSSatoshi Sahara * DokuWiki User Login Insterface (Login Form) 10*9cf9796dSSatoshi Sahara * 11*9cf9796dSSatoshi Sahara * @package dokuwiki\Ui 12*9cf9796dSSatoshi Sahara */ 13*9cf9796dSSatoshi Saharaclass Login extends Ui 14*9cf9796dSSatoshi Sahara{ 15*9cf9796dSSatoshi Sahara /** 16*9cf9796dSSatoshi Sahara * Display the Login Form Panel 17*9cf9796dSSatoshi Sahara * 18*9cf9796dSSatoshi Sahara * @author Andreas Gohr <andi@splitbrain.org> 19*9cf9796dSSatoshi Sahara * 20*9cf9796dSSatoshi Sahara * @triggers HTML_LOGINFORM_OUTPUT 21*9cf9796dSSatoshi Sahara * @param bool $svg Whether to show svg icons in the register and resendpwd links or not 22*9cf9796dSSatoshi Sahara * @return void 23*9cf9796dSSatoshi Sahara */ 24*9cf9796dSSatoshi Sahara public function show($svg = false) 25*9cf9796dSSatoshi Sahara { 26*9cf9796dSSatoshi Sahara global $lang; 27*9cf9796dSSatoshi Sahara global $conf; 28*9cf9796dSSatoshi Sahara global $ID; 29*9cf9796dSSatoshi Sahara global $INPUT; 30*9cf9796dSSatoshi Sahara 31*9cf9796dSSatoshi Sahara // print intro 32*9cf9796dSSatoshi Sahara print p_locale_xhtml('login'); 33*9cf9796dSSatoshi Sahara print '<div class="centeralign">'.NL; 34*9cf9796dSSatoshi Sahara 35*9cf9796dSSatoshi Sahara // create the login form 36*9cf9796dSSatoshi Sahara $form = new Form(['action' => wl($ID), 'id' => 'dw__login']); 37*9cf9796dSSatoshi Sahara $form->addTagOpen('div')->addClass('no'); 38*9cf9796dSSatoshi Sahara $form->addFieldsetOpen($lang['btn_login']); 39*9cf9796dSSatoshi Sahara $form->setHiddenField('id', $ID); 40*9cf9796dSSatoshi Sahara $form->setHiddenField('do', 'login'); 41*9cf9796dSSatoshi Sahara 42*9cf9796dSSatoshi Sahara $input = $form->addTextInput('u', $lang['user'])->id('focus__this')->addClass('edit') 43*9cf9796dSSatoshi Sahara ->val((!$INPUT->bool('http_credentials')) ? $INPUT->str('u') : ''); 44*9cf9796dSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 45*9cf9796dSSatoshi Sahara $form->addHTML("<br>\n"); 46*9cf9796dSSatoshi Sahara 47*9cf9796dSSatoshi Sahara $input = $form->addPasswordInput('p', $lang['pass'])->addClass('block edit'); 48*9cf9796dSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 49*9cf9796dSSatoshi Sahara $form->addHTML("<br>\n"); 50*9cf9796dSSatoshi Sahara 51*9cf9796dSSatoshi Sahara if ($conf['rememberme']) { 52*9cf9796dSSatoshi Sahara $form->addCheckbox('r', $lang['remember'])->id('remember__me')->val('1'); 53*9cf9796dSSatoshi Sahara } 54*9cf9796dSSatoshi Sahara $form->addButton('', $lang['btn_login'])->attr('type', 'submit'); 55*9cf9796dSSatoshi Sahara $form->addFieldsetClose(); 56*9cf9796dSSatoshi Sahara $form->addTagClose('div'); 57*9cf9796dSSatoshi Sahara 58*9cf9796dSSatoshi Sahara if(actionOK('register')){ 59*9cf9796dSSatoshi Sahara $registerLink = (new \dokuwiki\Menu\Item\Register())->asHtmlLink('', $svg); 60*9cf9796dSSatoshi Sahara $form->addHTML('<p>'.$lang['reghere'].': '. $registerLink .'</p>'); 61*9cf9796dSSatoshi Sahara } 62*9cf9796dSSatoshi Sahara 63*9cf9796dSSatoshi Sahara if (actionOK('resendpwd')) { 64*9cf9796dSSatoshi Sahara $resendPwLink = (new \dokuwiki\Menu\Item\Resendpwd())->asHtmlLink('', $svg); 65*9cf9796dSSatoshi Sahara $form->addHTML('<p>'.$lang['pwdforget'].': '. $resendPwLink .'</p>'); 66*9cf9796dSSatoshi Sahara } 67*9cf9796dSSatoshi Sahara 68*9cf9796dSSatoshi Sahara // emit HTML_LOGINFORM_OUTPUT event, print the form 69*9cf9796dSSatoshi Sahara Event::createAndTrigger('HTML_LOGINFORM_OUTPUT', $form, 'html_form_output', false); 70*9cf9796dSSatoshi Sahara 71*9cf9796dSSatoshi Sahara print '</div>'.DOKU_LF; 72*9cf9796dSSatoshi Sahara } 73*9cf9796dSSatoshi Sahara 74*9cf9796dSSatoshi Sahara} 75