1 {include file='userMenuSidebar'}
3 {include file='header'}
5 {if $__wcf->user->disableAvatar}
6 <p class="error">{lang}wcf.user.avatar.error.disabled{/lang}</p>
9 {include file='formError'}
12 <p class="success">{lang}wcf.global.success.edit{/lang}</p>
15 <form method="post" action="{link controller='AvatarEdit'}{/link}" id="avatarForm">
16 <div class="section avatarEdit">
17 <dl class="avatarType">
20 <label><input type="radio" name="avatarType" value="none" {if $avatarType == 'none'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.none{/lang}</label>
21 <small>{lang}wcf.user.avatar.type.none.description{/lang}</small>
25 {if $__wcf->getSession()->getPermission('user.profile.avatar.canUploadAvatar')}
26 <dl class="avatarType jsOnly{if $errorField == 'custom'} formError{/if}" id="avatarUpload">
28 {if $avatarType == 'custom'}
29 {if $__wcf->getUserProfileHandler()->getAvatar()->canCrop()}
30 {@$__wcf->getUserProfileHandler()->getAvatar()->getCropImageTag(96)}
32 {@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(96)}
35 <img src="{@$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="userAvatarImage" style="width: 96px; height: 96px" />
39 <label><input type="radio" name="avatarType" value="custom" {if $avatarType == 'custom'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.custom{/lang}</label>
40 <small>{lang}wcf.user.avatar.type.custom.description{/lang}</small>
42 {* placeholder for upload button: *}
43 <div class="avatarUploadButtonContainer"></div>
45 {if $errorField == 'custom'}
46 <small class="innerError">
47 {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
55 <dl class="avatarType{if $errorField == 'gravatar'} formError{/if}">
56 <dt><img src="https://secure.gravatar.com/avatar/{@$__wcf->user->email|strtolower|md5}?s=96{if GRAVATAR_DEFAULT_TYPE != '404'}&d={@GRAVATAR_DEFAULT_TYPE}{/if}" alt="" class="userAvatarImage icon96" /></dt>
58 <label><input type="radio" name="avatarType" value="gravatar" {if $avatarType == 'gravatar'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.gravatar{/lang}</label>
59 {if $errorField == 'gravatar'}
60 <small class="innerError">
61 {if $errorType == 'notFound'}{lang}wcf.user.avatar.type.gravatar.error.notFound{/lang}{/if}
64 <small>{lang}wcf.user.avatar.type.gravatar.description{/lang}</small>
69 {event name='avatarFields'}
72 {event name='sections'}
74 {if !$__wcf->user->disableAvatar}
75 <div class="formSubmit">
76 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
77 {@SECURITY_TOKEN_INPUT_TAG}
82 {if $__wcf->getSession()->getPermission('user.profile.avatar.canUploadAvatar')}
83 <script data-relocate="true">
86 WCF.Language.addObject({
87 'wcf.user.avatar.type.custom.crop': '{lang}wcf.user.avatar.type.custom.crop{/lang}',
88 'wcf.user.avatar.upload.error.invalidExtension': '{lang}wcf.user.avatar.upload.error.invalidExtension{/lang}',
89 'wcf.user.avatar.upload.error.tooSmall': '{lang}wcf.user.avatar.upload.error.tooSmall{/lang}',
90 'wcf.user.avatar.upload.error.tooLarge': '{lang}wcf.user.avatar.upload.error.tooLarge{/lang}',
91 'wcf.user.avatar.upload.error.uploadFailed': '{lang}wcf.user.avatar.upload.error.uploadFailed{/lang}',
92 'wcf.user.avatar.upload.error.badImage': '{lang}wcf.user.avatar.upload.error.badImage{/lang}',
93 'wcf.user.avatar.upload.success': '{lang}wcf.user.avatar.upload.success{/lang}'
96 {if !$__wcf->user->disableAvatar}
97 {if $__wcf->getUserProfileHandler()->getAvatar()->canCrop()}
98 new WCF.User.Avatar.Upload(0, new WCF.User.Avatar.Crop({@$__wcf->getUserProfileHandler()->getAvatar()->avatarID}));
100 new WCF.User.Avatar.Upload();
108 {include file='footer'}