1 {include file='header' pageTitle='wcf.acp.user.'|concat:$action}
3 <script data-relocate="true">
11 <header class="boxHeadline">
12 <h1>{lang}wcf.acp.user.{@$action}{/lang}</h1>
13 {if $action == 'edit'}<p>{$user->username}</p>{/if}
16 {include file='formError'}
18 {if $userID|isset && $__wcf->user->userID == $userID}
19 <p class="warning">{lang}wcf.acp.user.edit.warning.selfEdit{/lang}</p>
23 <p class="success">{lang}wcf.global.success.{@$action}{/lang}</p>
26 <div class="contentNavigation">
29 <li><a href="{link controller='UserList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.acp.menu.link.user.list{/lang}</span></a></li>
31 {event name='contentNavigationButtons'}
36 <form method="post" action="{if $action == 'add'}{link controller='UserAdd'}{/link}{else}{link controller='UserEdit' id=$userID}{/link}{/if}">
37 <div class="tabMenuContainer">
40 <li><a href="{@$__wcf->getAnchor('__essentials')}">{lang}wcf.global.form.data{/lang}</a></li>
42 {foreach from=$optionTree item=categoryLevel1}
43 <li><a href="{@$__wcf->getAnchor($categoryLevel1[object]->categoryName)}">{lang}wcf.user.option.category.{@$categoryLevel1[object]->categoryName}{/lang}</a></li>
46 {if MODULE_USER_SIGNATURE}
47 <li><a href="{@$__wcf->getAnchor('signatureManagement')}">{lang}wcf.user.signature{/lang}</a></li>
50 {if $action == 'edit'}
51 <li><a href="{@$__wcf->getAnchor('avatarForm')}">{lang}wcf.user.avatar{/lang}</a></li>
54 {event name='tabMenuTabs'}
58 <div id="__essentials" class="container containerPadding tabMenuContent hidden">
60 <legend>{lang}wcf.acp.user.general{/lang}</legend>
62 <dl{if $errorType.username|isset} class="formError"{/if}>
63 <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
65 <input type="text" id="username" name="username" value="{$username}" pattern="^[^,\n]+$" autofocus="autofocus" class="medium" />
66 {if $errorType.username|isset}
67 <small class="innerError">
68 {if $errorType.username == 'empty'}
69 {lang}wcf.global.form.error.empty{/lang}
71 {lang}wcf.user.username.error.{@$errorType.username}{/lang}
78 {if $availableGroups|count}
81 <label>{lang}wcf.acp.user.groups{/lang}</label>
84 {htmlCheckboxes options=$availableGroups name=groupIDs selected=$groupIDs}
89 {event name='generalFields'}
92 {if $action == 'add' || $__wcf->session->getPermission('admin.user.canEditMailAddress')}
94 <legend>{lang}wcf.user.email{/lang}</legend>
96 <dl{if $errorType.email|isset} class="formError"{/if}>
97 <dt><label for="email">{lang}wcf.user.email{/lang}</label></dt>
99 <input type="email" id="email" name="email" value="{$email}" required="required" class="medium" />
100 {if $errorType.email|isset}
101 <small class="innerError">
102 {if $errorType.email == 'empty'}
103 {lang}wcf.global.form.error.empty{/lang}
105 {lang}wcf.user.email.error.{@$errorType.email}{/lang}
112 <dl{if $errorType.confirmEmail|isset} class="formError"{/if}>
113 <dt><label for="confirmEmail">{lang}wcf.user.confirmEmail{/lang}</label></dt>
115 <input type="email" id="confirmEmail" name="confirmEmail" value="{$confirmEmail}" required="required" class="medium" />
116 {if $errorType.confirmEmail|isset}
117 <small class="innerError">
118 {lang}wcf.user.confirmEmail.error.{@$errorType.confirmEmail}{/lang}
124 {event name='emailFields'}
128 {if $action == 'add' || $__wcf->session->getPermission('admin.user.canEditPassword')}
130 <legend>{lang}wcf.user.password{/lang}</legend>
132 <dl{if $errorType.password|isset} class="formError"{/if}>
133 <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
135 <input type="password" id="password" name="password" value="{$password}"{if $action == 'add'} required="required"{/if} class="medium" />
136 {if $errorType.password|isset}
137 <small class="innerError">
138 {if $errorType.password == 'empty'}
139 {lang}wcf.global.form.error.empty{/lang}
141 {lang}wcf.user.password.error.{@$errorType.password}{/lang}
148 <dl{if $errorType.confirmPassword|isset} class="formError"{/if}>
149 <dt><label for="confirmPassword">{lang}wcf.user.confirmPassword{/lang}</label></dt>
151 <input type="password" id="confirmPassword" name="confirmPassword" value="{$confirmPassword}"{if $action == 'add'} required="required"{/if} class="medium" />
152 {if $errorType.confirmPassword|isset}
153 <small class="innerError">
154 {lang}wcf.user.confirmPassword.error.{@$errorType.confirmPassword}{/lang}
160 {event name='passwordFields'}
164 {if $action == 'edit' && $__wcf->session->getPermission('admin.user.canBanUser') && $__wcf->user->userID != $userID}
166 <legend>{lang}wcf.acp.user.banUser{/lang}</legend>
171 <label><input type="checkbox" id="banned" name="banned" value="1" {if $banned == 1}checked="checked" {/if}/> {lang}wcf.acp.user.banUser{/lang}</label>
172 <small>{lang}wcf.acp.user.banUser.description{/lang}</small>
177 <dt><label for="banReason">{lang}wcf.acp.user.banReason{/lang}</label></dt>
179 <textarea name="banReason" id="banReason" cols="40" rows="10">{$banReason}</textarea>
180 <small>{lang}wcf.acp.user.banReason.description{/lang}</small>
184 {event name='banFields'}
187 <script data-relocate="true">
189 $('#banned').change(function (event) {
190 if ($('#banned').is(':checked')) {
191 $('#banReason').attr('readonly', false);
194 $('#banReason').attr('readonly', true);
197 $('#banned').change();
202 {event name='fieldsets'}
205 {foreach from=$optionTree item=categoryLevel1}
206 <div id="{@$categoryLevel1[object]->categoryName}" class="container containerPadding tabMenuContent hidden">
207 {foreach from=$categoryLevel1[categories] item=categoryLevel2}
209 <legend>{lang}wcf.user.option.category.{@$categoryLevel2[object]->categoryName}{/lang}</legend>
211 {if $categoryLevel2[object]->categoryName == 'settings.general' && $availableLanguages|count > 1}
213 <dt><label for="languageID">{lang}wcf.user.language{/lang}</label></dt>
215 {htmlOptions options=$availableLanguages selected=$languageID name=languageID id=languageID disableEncoding=true}
219 {if $availableContentLanguages|count > 1}
222 <label>{lang}wcf.user.visibleLanguages{/lang}</label>
225 {foreach from=$availableContentLanguages key=availableLanguageID item=availableLanguage}
226 <label><input type="checkbox" name="visibleLanguages[]" value="{@$availableLanguageID}"{if $availableLanguageID|in_array:$visibleLanguages} checked="checked"{/if} /> {@$availableLanguage}</label>
233 {if $categoryLevel2[object]->categoryName == 'profile.personal' && MODULE_USER_RANK}
235 <dt><label for="userTitle">{lang}wcf.user.userTitle{/lang}</label></dt>
237 <input type="text" id="userTitle" name="userTitle" value="{$userTitle}" class="long" maxlength="{@USER_TITLE_MAX_LENGTH}" />
238 {if $errorType[userTitle]|isset}
239 <small class="innerError">
240 {lang}wcf.user.userTitle.error.{@$errorType[userTitle]}{/lang}
243 <small>{lang}wcf.user.userTitle.description{/lang}</small>
248 {event name='categoryFields'}
250 {include file='optionFieldList' options=$categoryLevel2[options] langPrefix='wcf.user.option.'}
252 {if $categoryLevel2[categories]|count}
253 {foreach from=$categoryLevel2[categories] item=categoryLevel3}
254 {include file='optionFieldList' options=$categoryLevel3[options] langPrefix='wcf.user.option.'}
262 {if MODULE_USER_SIGNATURE}
263 <div id="signatureManagement" class="container containerPadding tabMenuContent hidden">
265 <legend>{lang}wcf.user.signature{/lang}</legend>
268 <dt><label for="signature">{lang}wcf.user.signature{/lang}</label></dt>
270 <textarea name="signature" id="signature" cols="40" rows="10">{$signature}</textarea>
275 <dt>{lang}wcf.message.settings{/lang}</dt>
277 <label><input id="signatureEnableSmilies" name="signatureEnableSmilies" type="checkbox" value="1"{if $signatureEnableSmilies} checked="checked"{/if} /> {lang}wcf.message.settings.enableSmilies{/lang}</label>
278 <label><input id="signatureEnableBBCodes" name="signatureEnableBBCodes" type="checkbox" value="1"{if $signatureEnableBBCodes} checked="checked"{/if} /> {lang}wcf.message.settings.enableBBCodes{/lang}</label>
279 <label><input id="signatureEnableHtml" name="signatureEnableHtml" type="checkbox" value="1"{if $signatureEnableHtml} checked="checked"{/if} /> {lang}wcf.message.settings.enableHtml{/lang}</label>
284 {if $__wcf->session->getPermission('admin.user.canDisableSignature')}
286 <legend>{lang}wcf.acp.user.disableSignature{/lang}</legend>
291 <label><input type="checkbox" id="disableSignature" name="disableSignature" value="1" {if $disableSignature == 1}checked="checked" {/if}/> {lang}wcf.acp.user.disableSignature{/lang}</label>
296 <dt><label for="disableSignatureReason">{lang}wcf.acp.user.disableSignatureReason{/lang}</label></dt>
298 <textarea name="disableSignatureReason" id="disableSignatureReason" cols="40" rows="10">{$disableSignatureReason}</textarea>
303 <script data-relocate="true">
305 $('#disableSignature').change(function (event) {
306 if ($('#disableSignature').is(':checked')) {
307 $('#disableSignatureReason').attr('readonly', false);
310 $('#disableSignatureReason').attr('readonly', true);
313 $('#disableSignature').change();
320 {if $action == 'edit'}
321 <div id="avatarForm" class="container containerPadding tabMenuContent hidden">
323 <legend>{lang}wcf.user.avatar{/lang}</legend>
328 <label><input type="radio" name="avatarType" value="none" {if $avatarType == 'none'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.none{/lang}</label>
332 <dl class="jsOnly{if $errorType[customAvatar]|isset} formError{/if}" id="avatarUpload">
333 <dt class="framed">{if $avatarType == 'custom'}{@$userAvatar->getImageTag(96)}{else}<img src="{@$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon96" />{/if}</dt>
335 <label><input type="radio" name="avatarType" value="custom" {if $avatarType == 'custom'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.custom{/lang}</label>
337 {* placeholder for upload button: *}
340 {if $errorType[customAvatar]|isset}
341 <small class="innerError">
342 {if $errorType[customAvatar] == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
349 <dl{if $errorType[gravatar]|isset} class="formError"{/if}>
350 <dt class="framed"><img src="https://secure.gravatar.com/avatar/{@$user->email|strtolower|md5}?s=96" alt="" class="icon96" /></dt>
352 <label><input type="radio" name="avatarType" value="gravatar" {if $avatarType == 'gravatar'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.gravatar{/lang}</label>
354 {if $errorType[gravatar]|isset}
355 <small class="innerError">
356 {if $errorType[gravatar] == 'notFound'}{lang}wcf.user.avatar.type.gravatar.error.notFound{/lang}{/if}
364 {if $__wcf->session->getPermission('admin.user.canDisableAvatar')}
366 <legend>{lang}wcf.acp.user.disableAvatar{/lang}</legend>
371 <label><input type="checkbox" id="disableAvatar" name="disableAvatar" value="1" {if $disableAvatar == 1}checked="checked" {/if}/> {lang}wcf.acp.user.disableAvatar{/lang}</label>
376 <dt><label for="disableAvatarReason">{lang}wcf.acp.user.disableAvatarReason{/lang}</label></dt>
378 <textarea name="disableAvatarReason" id="disableAvatarReason" cols="40" rows="10">{$disableAvatarReason}</textarea>
383 <script data-relocate="true">
386 $('#disableAvatar').change(function (event) {
387 if ($('#disableAvatar').is(':checked')) {
388 $('#disableAvatarReason').attr('readonly', false);
391 $('#disableAvatarReason').attr('readonly', true);
394 $('#disableAvatar').change();
399 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.Message{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
400 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
401 <script data-relocate="true">
404 WCF.Language.addObject({
405 'wcf.user.avatar.upload.error.invalidExtension': '{lang}wcf.user.avatar.upload.error.invalidExtension{/lang}',
406 'wcf.user.avatar.upload.error.tooSmall': '{lang}wcf.user.avatar.upload.error.tooSmall{/lang}',
407 'wcf.user.avatar.upload.error.tooLarge': '{lang}wcf.user.avatar.upload.error.tooLarge{/lang}',
408 'wcf.user.avatar.upload.error.uploadFailed': '{lang}wcf.user.avatar.upload.error.uploadFailed{/lang}',
409 'wcf.user.avatar.upload.error.badImage': '{lang}wcf.user.avatar.upload.error.badImage{/lang}',
410 'wcf.user.avatar.upload.success': '{lang}wcf.user.avatar.upload.success{/lang}',
411 'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}'
414 new WCF.User.Avatar.Upload({@$user->userID});
421 {event name='tabMenuContent'}
424 <div class="formSubmit">
425 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
426 {@SECURITY_TOKEN_INPUT_TAG}
430 {include file='footer'}