xref: /dokuwiki/inc/Ui/Login.php (revision 1e6e7b77cc3a8065588d6debd35cb1150eed7afc)
19cf9796dSSatoshi Sahara<?php
29cf9796dSSatoshi Sahara
39cf9796dSSatoshi Saharanamespace dokuwiki\Ui;
49cf9796dSSatoshi Sahara
59cf9796dSSatoshi Saharause dokuwiki\Extension\Event;
69cf9796dSSatoshi Saharause dokuwiki\Form\Form;
79cf9796dSSatoshi Sahara
89cf9796dSSatoshi Sahara/**
99cf9796dSSatoshi Sahara * DokuWiki User Login Insterface (Login Form)
109cf9796dSSatoshi Sahara *
119cf9796dSSatoshi Sahara * @package dokuwiki\Ui
129cf9796dSSatoshi Sahara */
139cf9796dSSatoshi Saharaclass Login extends Ui
149cf9796dSSatoshi Sahara{
159cf9796dSSatoshi Sahara    /**
169cf9796dSSatoshi Sahara     * Display the Login Form Panel
179cf9796dSSatoshi Sahara     *
189cf9796dSSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
199cf9796dSSatoshi Sahara     *
209cf9796dSSatoshi Sahara     * @triggers HTML_LOGINFORM_OUTPUT
219cf9796dSSatoshi Sahara     * @param bool $svg Whether to show svg icons in the register and resendpwd links or not
229cf9796dSSatoshi Sahara     * @return void
239cf9796dSSatoshi Sahara     */
249cf9796dSSatoshi Sahara    public function show($svg = false)
259cf9796dSSatoshi Sahara    {
269cf9796dSSatoshi Sahara        global $lang;
279cf9796dSSatoshi Sahara        global $conf;
289cf9796dSSatoshi Sahara        global $ID;
299cf9796dSSatoshi Sahara        global $INPUT;
309cf9796dSSatoshi Sahara
319cf9796dSSatoshi Sahara        // print intro
329cf9796dSSatoshi Sahara        print p_locale_xhtml('login');
339cf9796dSSatoshi Sahara        print '<div class="centeralign">'.NL;
349cf9796dSSatoshi Sahara
359cf9796dSSatoshi Sahara        // create the login form
36*1e6e7b77SSatoshi Sahara        $form = new Form(['id' => 'dw__login', 'action' => wl($ID)]);
379cf9796dSSatoshi Sahara        $form->addTagOpen('div')->addClass('no');
389cf9796dSSatoshi Sahara        $form->addFieldsetOpen($lang['btn_login']);
399cf9796dSSatoshi Sahara        $form->setHiddenField('id', $ID);
409cf9796dSSatoshi Sahara        $form->setHiddenField('do', 'login');
419cf9796dSSatoshi Sahara
429cf9796dSSatoshi Sahara        $input = $form->addTextInput('u', $lang['user'])->id('focus__this')->addClass('edit')
439cf9796dSSatoshi Sahara            ->val((!$INPUT->bool('http_credentials')) ? $INPUT->str('u') : '');
449cf9796dSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
459cf9796dSSatoshi Sahara        $form->addHTML("<br>\n");
469cf9796dSSatoshi Sahara
479cf9796dSSatoshi Sahara        $input = $form->addPasswordInput('p', $lang['pass'])->addClass('block edit');
489cf9796dSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
499cf9796dSSatoshi Sahara        $form->addHTML("<br>\n");
509cf9796dSSatoshi Sahara
519cf9796dSSatoshi Sahara        if ($conf['rememberme']) {
529cf9796dSSatoshi Sahara            $form->addCheckbox('r', $lang['remember'])->id('remember__me')->val('1');
539cf9796dSSatoshi Sahara        }
549cf9796dSSatoshi Sahara        $form->addButton('', $lang['btn_login'])->attr('type', 'submit');
559cf9796dSSatoshi Sahara        $form->addFieldsetClose();
569cf9796dSSatoshi Sahara        $form->addTagClose('div');
579cf9796dSSatoshi Sahara
589cf9796dSSatoshi Sahara        if(actionOK('register')){
599cf9796dSSatoshi Sahara            $registerLink = (new \dokuwiki\Menu\Item\Register())->asHtmlLink('', $svg);
609cf9796dSSatoshi Sahara            $form->addHTML('<p>'.$lang['reghere'].': '. $registerLink .'</p>');
619cf9796dSSatoshi Sahara        }
629cf9796dSSatoshi Sahara
639cf9796dSSatoshi Sahara        if (actionOK('resendpwd')) {
649cf9796dSSatoshi Sahara            $resendPwLink = (new \dokuwiki\Menu\Item\Resendpwd())->asHtmlLink('', $svg);
659cf9796dSSatoshi Sahara            $form->addHTML('<p>'.$lang['pwdforget'].': '. $resendPwLink .'</p>');
669cf9796dSSatoshi Sahara        }
679cf9796dSSatoshi Sahara
689cf9796dSSatoshi Sahara        // emit HTML_LOGINFORM_OUTPUT event, print the form
699cf9796dSSatoshi Sahara        Event::createAndTrigger('HTML_LOGINFORM_OUTPUT', $form, 'html_form_output', false);
709cf9796dSSatoshi Sahara
719cf9796dSSatoshi Sahara        print '</div>'.DOKU_LF;
729cf9796dSSatoshi Sahara    }
739cf9796dSSatoshi Sahara
749cf9796dSSatoshi Sahara}
75