1877c5a1bSSatoshi Sahara<?php 2877c5a1bSSatoshi Sahara 3877c5a1bSSatoshi Saharanamespace dokuwiki\Ui; 4877c5a1bSSatoshi Sahara 5877c5a1bSSatoshi Saharause dokuwiki\Extension\Event; 6877c5a1bSSatoshi Saharause dokuwiki\Form\Form; 7877c5a1bSSatoshi Sahara 8877c5a1bSSatoshi Sahara/** 9f9dfcbbeSSatoshi Sahara * DokuWiki User Profile Interface 10877c5a1bSSatoshi Sahara * 11877c5a1bSSatoshi Sahara * @package dokuwiki\Ui 12877c5a1bSSatoshi Sahara */ 13877c5a1bSSatoshi Saharaclass UserProfile extends Ui 14877c5a1bSSatoshi Sahara{ 15877c5a1bSSatoshi Sahara /** 16877c5a1bSSatoshi Sahara * Display the User Profile Form Panel 17877c5a1bSSatoshi Sahara * 18877c5a1bSSatoshi Sahara * @author Andreas Gohr <andi@splitbrain.org> 19877c5a1bSSatoshi Sahara * 20877c5a1bSSatoshi Sahara * @triggers HTML_UPDATEPROFILEFORM_OUTPUT 21877c5a1bSSatoshi Sahara * @triggers HTML_PROFILEDELETEFORM_OUTPUT 22877c5a1bSSatoshi Sahara * @return void 23877c5a1bSSatoshi Sahara */ 24877c5a1bSSatoshi Sahara public function show() 25877c5a1bSSatoshi Sahara { 26877c5a1bSSatoshi Sahara global $lang; 27877c5a1bSSatoshi Sahara global $conf; 28877c5a1bSSatoshi Sahara global $INPUT; 29877c5a1bSSatoshi Sahara global $INFO; 30877c5a1bSSatoshi Sahara /** @var AuthPlugin $auth */ 31877c5a1bSSatoshi Sahara global $auth; 32877c5a1bSSatoshi Sahara 33877c5a1bSSatoshi Sahara // print intro 34877c5a1bSSatoshi Sahara print p_locale_xhtml('updateprofile'); 35*628d5475SSatoshi Sahara print '<div class="centeralign">'; 36877c5a1bSSatoshi Sahara 37877c5a1bSSatoshi Sahara $fullname = $INPUT->post->str('fullname', $INFO['userinfo']['name'], true); 38877c5a1bSSatoshi Sahara $email = $INPUT->post->str('email', $INFO['userinfo']['mail'], true); 39877c5a1bSSatoshi Sahara 40877c5a1bSSatoshi Sahara // create the updateprofile form 41877c5a1bSSatoshi Sahara $form = new Form(['id' => 'dw__register']); 42877c5a1bSSatoshi Sahara $form->addTagOpen('div')->addClass('no'); 43877c5a1bSSatoshi Sahara $form->addFieldsetOpen($lang['profile']); 44877c5a1bSSatoshi Sahara $form->setHiddenField('do', 'profile'); 45877c5a1bSSatoshi Sahara $form->setHiddenField('save', '1'); 46877c5a1bSSatoshi Sahara 47877c5a1bSSatoshi Sahara $attr = array('size' => '50', 'disabled' => 'disabled'); 48877c5a1bSSatoshi Sahara $input = $form->addTextInput('login', $lang['user'])->attrs($attr)->addClass('edit') 4983f8872cSSatoshi Sahara ->val($INPUT->server->str('REMOTE_USER')); 50877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 51877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 52877c5a1bSSatoshi Sahara 53877c5a1bSSatoshi Sahara $attr = array('size' => '50'); 54877c5a1bSSatoshi Sahara if (!$auth->canDo('modName')) $attr['disabled'] = 'disabled'; 55877c5a1bSSatoshi Sahara $input = $form->addTextInput('fullname', $lang['fullname'])->attrs($attr)->addClass('edit') 56877c5a1bSSatoshi Sahara ->val($fullname); 57877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 58877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 59877c5a1bSSatoshi Sahara 60877c5a1bSSatoshi Sahara $attr = array('type' => 'email', 'size' => '50'); 61877c5a1bSSatoshi Sahara if (!$auth->canDo('modMail')) $attr['disabled'] = 'disabled'; 62877c5a1bSSatoshi Sahara $input = $form->addTextInput('email', $lang['email'])->attrs($attr)->addClass('edit') 63877c5a1bSSatoshi Sahara ->val($email); 64877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 65877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 66877c5a1bSSatoshi Sahara 67877c5a1bSSatoshi Sahara if ($auth->canDo('modPass')) { 68877c5a1bSSatoshi Sahara $attr = array('size'=>'50'); 69877c5a1bSSatoshi Sahara $input = $form->addPasswordInput('newpass', $lang['newpass'])->attrs($attr)->addClass('edit'); 70877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 71877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 72877c5a1bSSatoshi Sahara 73877c5a1bSSatoshi Sahara $input = $form->addPasswordInput('passchk', $lang['passchk'])->attrs($attr)->addClass('edit'); 74877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 75877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 76877c5a1bSSatoshi Sahara } 77877c5a1bSSatoshi Sahara 78877c5a1bSSatoshi Sahara if ($conf['profileconfirm']) { 79877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 80877c5a1bSSatoshi Sahara $attr = array('size' => '50', 'required' => 'required'); 81877c5a1bSSatoshi Sahara $input = $form->addPasswordInput('oldpass', $lang['oldpass'])->attrs($attr)->addClass('edit'); 82877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 83877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 84877c5a1bSSatoshi Sahara } 85877c5a1bSSatoshi Sahara 86877c5a1bSSatoshi Sahara $form->addButton('', $lang['btn_save'])->attr('type', 'submit'); 87877c5a1bSSatoshi Sahara $form->addButton('', $lang['btn_reset'])->attr('type', 'reset'); 88877c5a1bSSatoshi Sahara 89877c5a1bSSatoshi Sahara $form->addFieldsetClose(); 90877c5a1bSSatoshi Sahara $form->addTagClose('div'); 91877c5a1bSSatoshi Sahara 92c29600d0SSatoshi Sahara // emit HTML_UPDATEPROFILEFORM_OUTPUT event 93c29600d0SSatoshi Sahara Event::createAndTrigger('HTML_UPDATEPROFILEFORM_OUTPUT', $form, null, false); 94c29600d0SSatoshi Sahara print $form->toHTML(); 95877c5a1bSSatoshi Sahara 96877c5a1bSSatoshi Sahara 97877c5a1bSSatoshi Sahara if ($auth->canDo('delUser') && actionOK('profile_delete')) { 98877c5a1bSSatoshi Sahara 99877c5a1bSSatoshi Sahara // create the profiledelete form 100877c5a1bSSatoshi Sahara $form = new Form(['id' => 'dw__profiledelete']); 101877c5a1bSSatoshi Sahara $form->addTagOpen('div')->addClass('no'); 102877c5a1bSSatoshi Sahara $form->addFieldsetOpen($lang['profdeleteuser']); 103877c5a1bSSatoshi Sahara $form->setHiddenField('do', 'profile_delete'); 104877c5a1bSSatoshi Sahara $form->setHiddenField('delete', '1'); 105877c5a1bSSatoshi Sahara 106877c5a1bSSatoshi Sahara $form->addCheckbox('confirm_delete', $lang['profconfdelete']) 107877c5a1bSSatoshi Sahara ->attrs(['required' => 'required']) 108877c5a1bSSatoshi Sahara ->id('dw__confirmdelete') 109877c5a1bSSatoshi Sahara ->val('1'); 110877c5a1bSSatoshi Sahara 111877c5a1bSSatoshi Sahara if ($conf['profileconfirm']) { 112877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 113877c5a1bSSatoshi Sahara $attr = array('size' => '50', 'required' => 'required'); 114877c5a1bSSatoshi Sahara $input = $form->addPasswordInput('oldppass', $lang['oldpass'])->attrs($attr) 115877c5a1bSSatoshi Sahara ->addClass('edit'); 116877c5a1bSSatoshi Sahara $input->getLabel()->attr('class', 'block'); 117877c5a1bSSatoshi Sahara $form->addHTML("<br>\n"); 118877c5a1bSSatoshi Sahara } 119877c5a1bSSatoshi Sahara 120877c5a1bSSatoshi Sahara $form->addButton('', $lang['btn_deleteuser'])->attr('type', 'submit'); 121877c5a1bSSatoshi Sahara $form->addFieldsetClose(); 122877c5a1bSSatoshi Sahara $form->addTagClose('div'); 123877c5a1bSSatoshi Sahara 124c29600d0SSatoshi Sahara // emit HTML_PROFILEDELETEFORM_OUTPUT event 125c29600d0SSatoshi Sahara Event::createAndTrigger('HTML_PROFILEDELETEFORM_OUTPUT', $form, null, false); 126c29600d0SSatoshi Sahara print $form->toHTML(); 127877c5a1bSSatoshi Sahara } 128877c5a1bSSatoshi Sahara 129*628d5475SSatoshi Sahara print '</div>'; 130877c5a1bSSatoshi Sahara } 131877c5a1bSSatoshi Sahara 132877c5a1bSSatoshi Sahara} 133