1 {include file='documentHeader'}
4 <title>{$user->username} - {lang}wcf.user.members{/lang} - {PAGE_TITLE|language}</title>
6 {include file='headInclude'}
8 <link rel="canonical" href="{link controller='User' object=$user}{/link}" />
10 {event name='javascriptInclude'}
11 <script data-relocate="true">
14 {if $__wcf->getUser()->userID && $__wcf->getUser()->userID != $user->userID}
15 WCF.Language.addObject({
16 'wcf.user.activityPoint': '{lang}wcf.user.activityPoint{/lang}',
17 'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
18 'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
19 'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
20 'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
23 {if !$user->getPermission('user.profile.cannotBeIgnored')}
24 new WCF.User.Profile.IgnoreUser({@$user->userID}, {if $__wcf->getUserProfileHandler()->isIgnoredUser($user->userID)}true{else}false{/if});
27 new WCF.User.Profile.Follow({@$user->userID}, {if $__wcf->getUserProfileHandler()->isFollowing($user->userID)}true{else}false{/if});
30 new WCF.User.Profile.TabMenu({@$user->userID});
34 {if $user->canEdit() || ($__wcf->getUser()->userID == $user->userID && $user->canEditOwnProfile())}
35 WCF.Language.addObject({
36 'wcf.user.editProfile': '{lang}wcf.user.editProfile{/lang}',
39 new WCF.User.Profile.Editor({@$user->userID}, {if $editOnInit}true{else}false{/if});
42 {if $user->activityPoints}
43 WCF.Language.addObject({
44 'wcf.user.activityPoint': '{lang}wcf.user.activityPoint{/lang}'
47 WCF.User.Profile.ActivityPointList.init();
50 {if $followingCount > 10}
51 var $followingList = null;
52 $('#followingAll').click(function() {
53 if ($followingList === null) {
54 $followingList = new WCF.User.List('wcf\\data\\user\\follow\\UserFollowingAction', $('#followingAll').parents('fieldset').children('legend').text().replace(/ \d+$/, ''), { userID: {@$user->userID} });
57 $followingList.open();
60 {if $followerCount > 10}
61 var $followerList = null;
62 $('#followerAll').click(function() {
63 if ($followerList === null) {
64 $followerList = new WCF.User.List('wcf\\data\\user\\follow\\UserFollowAction', $('#followerAll').parents('fieldset').children('legend').text().replace(/ \d+$/, ''), { userID: {@$user->userID} });
70 {if $visitorCount > 10}
71 var $visitorList = null;
72 $('#visitorAll').click(function() {
73 if ($visitorList === null) {
74 $visitorList = new WCF.User.List('wcf\\data\\user\\profile\\visitor\\UserProfileVisitorAction', $('#visitorAll').parents('fieldset').children('legend').text().replace(/ \d+$/, ''), { userID: {@$user->userID} });
81 {if $isAccessible && $__wcf->user->userID != $user->userID}
82 WCF.Language.addObject({
83 'wcf.user.ban': '{lang}wcf.user.ban{/lang}',
84 'wcf.user.ban.confirmMessage': '{lang}wcf.user.ban.confirmMessage{/lang}',
85 'wcf.user.ban.expires': '{lang}wcf.user.ban.expires{/lang}',
86 'wcf.user.ban.expires.description': '{lang}wcf.user.ban.expires.description{/lang}',
87 'wcf.user.ban.neverExpires': '{lang}wcf.user.ban.neverExpires{/lang}',
88 'wcf.user.ban.reason.description': '{lang}wcf.user.ban.reason.description{/lang}',
89 'wcf.user.unban': '{lang}wcf.user.unban{/lang}',
90 'wcf.user.disableAvatar': '{lang}wcf.user.disableAvatar{/lang}',
91 'wcf.user.ban.expires': '{lang}wcf.user.ban.expires{/lang}',
92 'wcf.user.ban.expires.description': '{lang}wcf.user.ban.expires.description{/lang}',
93 'wcf.user.ban.neverExpires': '{lang}wcf.user.ban.neverExpires{/lang}',
94 'wcf.user.disableAvatar.confirmMessage': '{lang}wcf.user.disableAvatar.confirmMessage{/lang}',
95 'wcf.user.disableAvatar.expires': '{lang}wcf.user.disableAvatar.expires{/lang}',
96 'wcf.user.disableAvatar.expires.description': '{lang}wcf.user.disableAvatar.expires.description{/lang}',
97 'wcf.user.disableAvatar.neverExpires': '{lang}wcf.user.disableAvatar.neverExpires{/lang}',
98 'wcf.user.disableSignature': '{lang}wcf.user.disableSignature{/lang}',
99 'wcf.user.disableSignature.confirmMessage': '{lang}wcf.user.disableSignature.confirmMessage{/lang}',
100 'wcf.user.disableSignature.expires': '{lang}wcf.user.disableSignature.expires{/lang}',
101 'wcf.user.disableSignature.expires.description': '{lang}wcf.user.disableSignature.expires.description{/lang}',
102 'wcf.user.disableSignature.neverExpires': '{lang}wcf.user.disableSignature.neverExpires{/lang}',
103 'wcf.user.edit': '{lang}wcf.user.edit{/lang}',
104 'wcf.user.enableAvatar': '{lang}wcf.user.enableAvatar{/lang}',
105 'wcf.user.enableSignature': '{lang}wcf.user.enableSignature{/lang}'
108 var $userInlineEditor = new WCF.User.InlineEditor('.userHeadline');
109 $userInlineEditor.setPermissions({
110 canBanUser: {if $__wcf->session->getPermission('admin.user.canBanUser')}true{else}false{/if},
111 canDisableAvatar: {if $__wcf->session->getPermission('admin.user.canDisableAvatar')}true{else}false{/if},
112 canDisableSignature: {if $__wcf->session->getPermission('admin.user.canDisableSignature')}true{else}false{/if},
113 canEditUser: {if $__wcf->session->getPermission('admin.general.canUseAcp') && $__wcf->session->getPermission('admin.user.canEditUser')}true{else}false{/if}
117 {if $__wcf->session->getPermission('user.profile.canReportContent')}
118 WCF.Language.addObject({
119 'wcf.moderation.report.reportContent': '{lang}wcf.user.profile.report{/lang}',
120 'wcf.moderation.report.success': '{lang}wcf.moderation.report.success{/lang}'
122 new WCF.Moderation.Report.Content('com.woltlab.wcf.user', '.jsReportUser');
125 {event name='javascriptInit'}
131 <style type="text/css">
132 #profileContent > .tabMenu > ul > li:not(:first-child) {
133 display: none !important;
136 #profileContent > .tabMenuContent:not(:first-of-type) {
137 display: none !important;
143 <body id="tpl{$templateName|ucfirst}" data-template="{$templateName}" data-application="{$templateNameApplication}">
145 {include file='userSidebar' assign='sidebar'}
147 {include file='header' sidebarOrientation='left'}
149 <header class="boxHeadline userHeadline"
151 data-object-id="{@$user->userID}"
152 {if $__wcf->session->getPermission('admin.user.canBanUser')}
153 data-banned="{@$user->banned}"
155 {if $__wcf->session->getPermission('admin.user.canDisableAvatar')}
156 data-disable-avatar="{@$user->disableAvatar}"
158 {if $__wcf->session->getPermission('admin.user.canDisableSignature')}
159 data-disable-signature="{@$user->disableSignature}"
163 <span class="framed invisible">{@$user->getAvatar()->getImageTag(48)}</span>
165 <h1>{$user->username}{if $user->banned} <span class="icon icon16 fa-lock jsTooltip jsUserBanned" title="{lang}wcf.user.banned{/lang}"></span>{/if}{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h1>
167 <ul class="dataList">
168 {if $user->isVisibleOption('gender') && $user->gender}<li>{lang}wcf.user.gender.{if $user->gender == 1}male{else}female{/if}{/lang}</li>{/if}
169 {if $user->isVisibleOption('birthday') && $user->getAge()}<li>{@$user->getAge()}</li>{/if}
170 {if $user->isVisibleOption('location') && $user->location}<li>{lang}wcf.user.membersList.location{/lang}</li>{/if}
171 {if $user->getOldUsername()}<li>{lang}wcf.user.profile.oldUsername{/lang}</li>{/if}
172 <li>{lang}wcf.user.membersList.registrationDate{/lang}</li>
173 {event name='userDataRow1'}
175 {if $user->canViewOnlineStatus() && $user->getLastActivityTime()}
176 <dl class="plain inlineDataList">
177 <dt>{lang}wcf.user.usersOnline.lastActivity{/lang}</dt>
178 <dd>{@$user->getLastActivityTime()|time}{if $user->getCurrentLocation()}, {@$user->getCurrentLocation()}{/if}</dd>
179 {event name='userDataRow2'}
182 <nav class="jsMobileNavigation buttonGroupNavigation">
183 <ul id="profileButtonContainer" class="buttonGroup">
185 <li class="dropdown">
186 <a href="#" class="button dropdownToggle jsTooltip" title="{lang}wcf.user.searchUserContent{/lang}"><span class="icon icon16 icon-search"></span> <span class="invisible">{lang}wcf.user.searchUserContent{/lang}</span></a>
187 <ul class="dropdownMenu">
189 {event name='quickSearchItems'}
195 {if $__wcf->session->getPermission('user.profile.canReportContent')}
196 <li class="jsReportUser jsOnly" data-object-id="{@$user->userID}"><a href="#" title="{lang}wcf.user.profile.report{/lang}" class="button jsTooltip"><span class="icon icon16 icon-warning-sign"></span> <span class="invisible">{lang}wcf.user.profile.report{/lang}</span></a></li>
199 {if $user->userID != $__wcf->user->userID}
200 {if $user->isAccessible('canViewEmailAddress') || $__wcf->session->getPermission('admin.user.canEditMailAddress')}
201 <li><a class="button jsTooltip" href="mailto:{@$user->getEncodedEmail()}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>
202 {elseif $user->isAccessible('canMail') && $__wcf->session->getPermission('user.profile.canMail')}
203 <li><a class="button jsTooltip" href="{link controller='Mail' object=$user}{/link}" title="{lang}wcf.user.button.mail{/lang}"><span class="icon icon16 icon-envelope-alt"></span> <span class="invisible">{lang}wcf.user.button.mail{/lang}</span></a></li>
207 {event name='buttons'}
209 {if $isAccessible && $__wcf->user->userID != $user->userID && ($__wcf->session->getPermission('admin.user.canBanUser') || $__wcf->session->getPermission('admin.user.canDisableAvatar') || $__wcf->session->getPermission('admin.user.canDisableSignature') || ($__wcf->session->getPermission('admin.general.canUseAcp') && $__wcf->session->getPermission('admin.user.canEditUser')){event name='moderationDropdownPermissions'})}
210 <li class="dropdown">
211 <a href="{link controller='UserEdit' object=$user isACP=true}{/link}" class="button jsTooltip jsUserInlineEditor" title="{lang}wcf.user.moderate{/lang}"><span class="icon icon16 fa-wrench"></span> <span class="invisible">{lang}wcf.user.moderate{/lang}</span></a>
212 <ul class="dropdownMenu"></ul>
219 {include file='userNotice'}
221 {if !$user->isProtected()}
222 <div class="contentNavigation">
227 {event name='contentNavigationButtons'}
234 <section id="profileContent" class="marginTop tabMenuContainer" data-active="{$__wcf->getUserProfileMenu()->getActiveMenuItem()->getIdentifier()}">
235 <nav class="tabMenu">
237 {foreach from=$__wcf->getUserProfileMenu()->getMenuItems() item=menuItem}
238 {if $menuItem->getContentManager()->isVisible($userID)}
239 <li><a href="{$__wcf->getAnchor($menuItem->getIdentifier())}">{lang}wcf.user.profile.menu.{@$menuItem->menuItem}{/lang}</a></li>
245 {foreach from=$__wcf->getUserProfileMenu()->getMenuItems() item=menuItem}
246 {if $menuItem->getContentManager()->isVisible($userID)}
247 <div id="{$menuItem->getIdentifier()}" class="container tabMenuContent" data-menu-item="{$menuItem->menuItem}">
248 {if $menuItem === $__wcf->getUserProfileMenu()->getActiveMenuItem()}
256 <p class="info">{lang}wcf.user.profile.protected{/lang}</p>
259 {include file='footer'}