[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/inc/Ui/ -> Login.php (source)

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