1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
<?php
namespace dokuwiki\Ui;
use dokuwiki\Extension\AuthPlugin;
use dokuwiki\Form\Form;
/**
* DokuWiki User Profile Interface
*
* @package dokuwiki\Ui
*/
class UserProfile extends Ui
{
/**
* Display the User Profile Form Panel
*
* @author Andreas Gohr <andi@splitbrain.org>
*
* @return void
*/
public function show()
{
global $lang;
global $conf;
global $INPUT;
global $INFO;
/** @var AuthPlugin $auth */
global $auth;
// print intro
print p_locale_xhtml('updateprofile');
print '<div class="centeralign">';
$fullname = $INPUT->post->str('fullname', $INFO['userinfo']['name'], true);
$email = $INPUT->post->str('email', $INFO['userinfo']['mail'], true);
// create the updateprofile form
$form = new Form(['id' => 'dw__register']);
$form->addTagOpen('div')->addClass('no');
$form->addFieldsetOpen($lang['profile']);
$form->setHiddenField('do', 'profile');
$form->setHiddenField('save', '1');
$attr = array('size' => '50', 'disabled' => 'disabled');
$input = $form->addTextInput('login', $lang['user'])->attrs($attr)->addClass('edit')
->val($INPUT->server->str('REMOTE_USER'));
$input->getLabel()->attr('class', 'block');
$form->addHTML("<br>\n");
$attr = array('size' => '50');
if (!$auth->canDo('modName')) $attr['disabled'] = 'disabled';
$input = $form->addTextInput('fullname', $lang['fullname'])->attrs($attr)->addClass('edit')
->val($fullname);
$input->getLabel()->attr('class', 'block');
$form->addHTML("<br>\n");
$attr = array('type' => 'email', 'size' => '50');
if (!$auth->canDo('modMail')) $attr['disabled'] = 'disabled';
$input = $form->addTextInput('email', $lang['email'])->attrs($attr)->addClass('edit')
->val($email);
$input->getLabel()->attr('class', 'block');
$form->addHTML("<br>\n");
if ($auth->canDo('modPass')) {
$attr = array('size'=>'50');
$input = $form->addPasswordInput('newpass', $lang['newpass'])->attrs($attr)->addClass('edit');
$input->getLabel()->attr('class', 'block');
$form->addHTML("<br>\n");
$input = $form->addPasswordInput('passchk', $lang['passchk'])->attrs($attr)->addClass('edit');
$input->getLabel()->attr('class', 'block');
$form->addHTML("<br>\n");
}
if ($conf['profileconfirm']) {
$form->addHTML("<br>\n");
$attr = array('size' => '50', 'required' => 'required');
$input = $form->addPasswordInput('oldpass', $lang['oldpass'])->attrs($attr)->addClass('edit');
$input->getLabel()->attr('class', 'block');
$form->addHTML("<br>\n");
}
$form->addButton('', $lang['btn_save'])->attr('type', 'submit');
$form->addButton('', $lang['btn_reset'])->attr('type', 'reset');
$form->addFieldsetClose();
$form->addTagClose('div');
print $form->toHTML('UpdateProfile');
if ($auth->canDo('delUser') && actionOK('profile_delete')) {
// create the profiledelete form
$form = new Form(['id' => 'dw__profiledelete']);
$form->addTagOpen('div')->addClass('no');
$form->addFieldsetOpen($lang['profdeleteuser']);
$form->setHiddenField('do', 'profile_delete');
$form->setHiddenField('delete', '1');
$form->addCheckbox('confirm_delete', $lang['profconfdelete'])
->attrs(['required' => 'required'])
->id('dw__confirmdelete')
->val('1');
if ($conf['profileconfirm']) {
$form->addHTML("<br>\n");
$attr = array('size' => '50', 'required' => 'required');
$input = $form->addPasswordInput('oldppass', $lang['oldpass'])->attrs($attr)
->addClass('edit');
$input->getLabel()->attr('class', 'block');
$form->addHTML("<br>\n");
}
$form->addButton('', $lang['btn_deleteuser'])->attr('type', 'submit');
$form->addFieldsetClose();
$form->addTagClose('div');
print $form->toHTML('ProfileDelete');
}
print '</div>';
}
}
|