xref: /dokuwiki/inc/Ui/Login.php (revision 9cf9796dc65658a9c35e042a5042b2f04cad08b7)
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