1<?php 2 3namespace dokuwiki\Ui; 4 5use dokuwiki\Extension\Event; 6use dokuwiki\Form\Form; 7 8/** 9 * DokuWiki User Registration Interface (Register Form) 10 * 11 * @package dokuwiki\Ui 12 */ 13class UserRegister extends Ui 14{ 15 /** 16 * Display the User Registration Form Panel 17 * 18 * @author Andreas Gohr <andi@splitbrain.org> 19 * 20 * @triggers HTML_REGISTERFORM_OUTPUT 21 * @return void 22 */ 23 public function show() 24 { 25 global $lang; 26 global $conf; 27 global $INPUT; 28 29 $base_attrs = array('size' => '50', 'required' => 'required'); 30 $email_attrs = $base_attrs + array('type' => 'email'); 31 32 // print intro 33 print p_locale_xhtml('register'); 34 print '<div class="centeralign">'.DOKU_LF; 35 36 // create the login form 37 $form = new Form(['id' => 'dw__register']); 38 $form->addTagOpen('div')->addClass('no'); 39 $form->addFieldsetOpen($lang['btn_register']); 40 $form->setHiddenField('do', 'register'); 41 $form->setHiddenField('save', '1'); 42 43 $input = $form->addTextInput('login', $lang['user'])->attrs($base_attrs)->addClass('edit') 44 ->val($INPUT->post->str('login')); 45 $input->getLabel()->attr('class', 'block'); 46 $form->addHTML("<br>\n"); 47 48 if (!$conf['autopasswd']) { 49 $input = $form->addPasswordInput('pass', $lang['pass'])->attrs($base_attrs)->addClass('edit'); 50 $input->getLabel()->attr('class', 'block'); 51 $form->addHTML("<br>\n"); 52 $input = $form->addPasswordInput('passchk', $lang['passchk'])->attrs($base_attrs)->addClass('edit'); 53 $input->getLabel()->attr('class', 'block'); 54 $form->addHTML("<br>\n"); 55 } 56 57 $input = $form->addTextInput('fullname', $lang['fullname'])->attrs($base_attrs)->addClass('edit') 58 ->val($INPUT->post->str('fullname')); 59 $input->getLabel()->attr('class', 'block'); 60 $form->addHTML("<br>\n"); 61 62 $input = $form->addTextInput('email', $lang['email'])->attrs($email_attrs)->addClass('edit') 63 ->val($INPUT->post->str('email')); 64 $input->getLabel()->attr('class', 'block'); 65 $form->addHTML("<br>\n"); 66 67 $form->addButton('', $lang['btn_register'])->attr('type', 'submit'); 68 $form->addFieldsetClose(); 69 $form->addTagClose('div'); 70 71 // emit HTML_REGISTERFORM_OUTPUT event, print the form 72 Event::createAndTrigger('HTML_REGISTERFORM_OUTPUT', $form, 'html_form_output', false); 73 74 print '</div>'.DOKU_LF; 75 } 76 77} 78