Merge remote-tracking branch 'origin/next' into next
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / templates / usersOnlineList.tpl
CommitLineData
320f4a6d
MW
1{include file='documentHeader'}
2
3<head>
4 <title>{lang}wcf.user.usersOnline{/lang} - {PAGE_TITLE|language}</title>
5
6 {include file='headInclude'}
7
8 <link rel="canonical" href="{link controller='UsersOnlineList'}{/link}" />
9
9543d9fe 10 <script data-relocate="true">
320f4a6d
MW
11 //<![CDATA[
12 $(function() {
13 WCF.Language.addObject({
14 'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
15 'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
16 'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
17 'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
18 });
19
20 new WCF.User.Action.Follow($('.userList > li'));
21 new WCF.User.Action.Ignore($('.userList > li'));
22 });
23 //]]>
24 </script>
25
26 {if USERS_ONLINE_PAGE_REFRESH > 0}
27 <meta http-equiv="refresh" content="{@USERS_ONLINE_PAGE_REFRESH}; url={link controller='UsersOnlineList'}sortField={@$sortField}&sortOrder={@$sortOrder}{/link}" />
28 {/if}
29</head>
30
887a3153 31<body id="tpl{$templateName|ucfirst}" data-template="{$templateName}" data-application="{$templateNameApplication}">
320f4a6d 32
95961bdf
MW
33{capture assign='sidebarRight'}
34 <section class="box">
909b697f 35 <form method="post" action="{link controller='UsersOnlineList'}{/link}">
95961bdf 36 <h2 class="boxTitle">{lang}wcf.user.members.sort{/lang}</h2>
320f4a6d 37
95961bdf 38 <div class="boxContent">
320f4a6d 39 <dl>
77f70354 40 <dt></dt>
320f4a6d
MW
41 <dd>
42 <select id="sortField" name="sortField">
43 <option value="username"{if $sortField == 'username'} selected="selected"{/if}>{lang}wcf.user.username{/lang}</option>
44 <option value="lastActivityTime"{if $sortField == 'lastActivityTime'} selected="selected"{/if}>{lang}wcf.user.usersOnline.lastActivity{/lang}</option>
45 <option value="requestURI"{if $sortField == 'requestURI'} selected="selected"{/if}>{lang}wcf.user.usersOnline.location{/lang}</option>
46
47 {if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
48 <option value="ipAddress"{if $sortField == 'ipAddress'} selected="selected"{/if}>{lang}wcf.user.usersOnline.ipAddress{/lang}</option>
49 <option value="userAgent"{if $sortField == 'userAgent'} selected="selected"{/if}>{lang}wcf.user.usersOnline.userAgent{/lang}</option>
50 {/if}
51 </select>
52 <select name="sortOrder">
53 <option value="ASC"{if $sortOrder == 'ASC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.ascending{/lang}</option>
54 <option value="DESC"{if $sortOrder == 'DESC'} selected="selected"{/if}>{lang}wcf.global.sortOrder.descending{/lang}</option>
55 </select>
56 </dd>
57 </dl>
320f4a6d 58
95961bdf
MW
59 <div class="formSubmit">
60 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
61 {@SID_INPUT_TAG}
62 </div>
320f4a6d
MW
63 </div>
64 </form>
95961bdf 65 </section>
320f4a6d 66
95961bdf
MW
67 <section class="box">
68 <h2 class="boxTitle">{lang}wcf.user.usersOnline{/lang}</h2>
11e9145a 69
95961bdf
MW
70 <div class="boxContent">
71 <p>{lang usersOnlineList=$objects}wcf.user.usersOnline.detail{/lang}</p>
72 {if USERS_ONLINE_RECORD}<p>{lang}wcf.user.usersOnline.record{/lang}</p>{/if}
73 </div>
11e9145a
MW
74
75 {if USERS_ONLINE_ENABLE_LEGEND && $objects->getUsersOnlineMarkings()|count}
95961bdf
MW
76 <div class="boxContent">
77 <dl class="plain inlineDataList usersOnlineLegend">
78 <dt>{lang}wcf.user.usersOnline.marking.legend{/lang}</dt>
79 <dd>
80 <ul class="inlineList commaSeparated">
81 {foreach from=$objects->getUsersOnlineMarkings() item=usersOnlineMarking}
82 <li>{@$usersOnlineMarking}</li>
83 {/foreach}
84 </ul>
85 </dd>
86
87 </dl>
11e9145a
MW
88 </div>
89 {/if}
95961bdf 90 </section>
11e9145a 91
320f4a6d
MW
92 {@$__boxSidebar}
93{/capture}
94
95961bdf 95{include file='header'}
320f4a6d
MW
96
97{include file='userNotice'}
98
95961bdf
MW
99<header class="contentHeader">
100 <h1 class="contentTitle">{lang}wcf.user.usersOnline{/lang}</h1>
101</header>
102
320f4a6d
MW
103{assign var=usersOnlineList value=''}
104{assign var=usersOnline value=0}
105{assign var=robotsOnlineList value=''}
106{assign var=robotsOnline value=0}
107{assign var=guestsOnlineList value=''}
108{assign var=guestsOnline value=0}
109{foreach from=$objects item=user}
110 {capture assign=locationData}
111 <p>
929f7e47 112 {if $user->getLocation()}{@$user->getLocation()}{else}{lang}wcf.user.usersOnline.location.unknown{/lang}{/if} <small class="separatorLeft">{@$user->lastActivityTime|time}</small>
320f4a6d
MW
113 </p>
114 {/capture}
115
116 {capture assign=sessionData}
117 {if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
929f7e47 118 <dl class="plain inlineDataList small">
320f4a6d
MW
119 <dt>{lang}wcf.user.usersOnline.ipAddress{/lang}</dt>
120 <dd title="{$user->getFormattedIPAddress()}">{$user->getFormattedIPAddress()|truncate:30}</dd>
8bf41072
MW
121
122 {if !$user->spiderID}
123 <dt>{lang}wcf.user.usersOnline.userAgent{/lang}</dt>
124 <dd title="{$user->userAgent}">{$user->getBrowser()|truncate:30}</dd>
125 {/if}
320f4a6d
MW
126 </dl>
127 {/if}
128 {/capture}
129
130 {if $user->userID}
131 {* member *}
132 {capture append=usersOnlineList}
133 <li>
134 <div class="box48">
95961bdf 135 <a href="{link controller='User' object=$user}{/link}" title="{$user->username}">{@$user->getAvatar()->getImageTag(48)}</a>
320f4a6d
MW
136
137 <div class="details userInformation">
929f7e47
MW
138 <div class="containerHeadline">
139 <h3><a href="{link controller='User' object=$user}{/link}" class="username">{@$user->getFormattedUsername()}</a>
140 {if MODULE_USER_RANK}
141 {if $user->getUserTitle()}
142 <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>
143 {/if}
144 {if $user->getRank() && $user->getRank()->rankImage}
145 <span class="userRankImage">{@$user->getRank()->getImage()}</span>
146 {/if}
147 {/if}
148 </h3>
149 {@$locationData}
150 </div>
320f4a6d
MW
151
152 {@$sessionData}
153
154 {include file='userInformationButtons'}
155 </div>
156 </div>
157 </li>
158 {/capture}
159
160 {assign var=usersOnline value=$usersOnline+1}
161 {elseif $user->spiderID}
162 {* search robot *}
163 {capture append=robotsOnlineList}
164 <li>
165 <div class="box48">
95961bdf 166 <div><img src="{$__wcf->getPath()}images/avatars/avatar-spider-default.svg" alt="" class="userAvatarImage icon48" /></div>
320f4a6d
MW
167
168 <div class="details userInformation">
169 <div class="containerHeadline">
96756d4d 170 <h3>{if $user->getSpider()->spiderURL}<a href="{$user->getSpider()->spiderURL}" class="externalURL"{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}{if EXTERNAL_LINK_REL_NOFOLLOW} rel="nofollow"{/if}>{$user->getSpider()->spiderName}</a>{else}{$user->getSpider()->spiderName}{/if}</h3>
0f0590c2 171 {@$locationData}
320f4a6d
MW
172 </div>
173
174 {@$sessionData}
175 </div>
176 </div>
177 </li>
178 {/capture}
179
180 {assign var=robotsOnline value=$robotsOnline+1}
181 {else}
182 {* unregistered *}
183 {capture append=guestsOnlineList}
184 <li>
185 <div class="box48">
95961bdf 186 <div><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="userAvatarImage icon48" /></div>
320f4a6d
MW
187
188 <div class="details userInformation">
189 <div class="containerHeadline">
190 <h3>{lang}wcf.user.guest{/lang}</h3>
0f0590c2 191 {@$locationData}
320f4a6d
MW
192 </div>
193
194 {@$sessionData}
195 </div>
196 </div>
197 </li>
198 {/capture}
199
200 {assign var=guestsOnline value=$guestsOnline+1}
201 {/if}
202{/foreach}
203
204<div class="contentNavigation">
205 {hascontent}
206 <nav>
207 <ul>
208 {content}
209 {event name='contentNavigationButtonsTop'}
210 {/content}
211 </ul>
212 </nav>
213 {/hascontent}
214</div>
215
216{if $usersOnline}
95961bdf
MW
217 <section class="section sectionContainerList">
218 <h2 class="sectionTitle">{lang}wcf.user.usersOnline.users{/lang} <span class="badge">{#$usersOnline}</span></h2>
219
a84a45a4 220 <ol class="containerList userList">
320f4a6d
MW
221 {@$usersOnlineList}
222 </ol>
95961bdf 223 </section>
320f4a6d
MW
224{/if}
225
226{if $guestsOnline && USERS_ONLINE_SHOW_GUESTS}
95961bdf
MW
227 <section class="section sectionContainerList">
228 <h2 class="sectionTitle">{lang}wcf.user.usersOnline.guests{/lang} <span class="badge">{#$guestsOnline}</span></h2>
229
a84a45a4 230 <ol class="containerList">
320f4a6d
MW
231 {@$guestsOnlineList}
232 </ol>
95961bdf 233 </section>
320f4a6d
MW
234{/if}
235
236{if $robotsOnline && USERS_ONLINE_SHOW_ROBOTS}
95961bdf
MW
237 <section class="section sectionContainerList">
238 <h2 class="sectionTitle">{lang}wcf.user.usersOnline.robots{/lang} <span class="badge">{#$robotsOnline}</span></h2>
239
a84a45a4 240 <ol class="containerList">
320f4a6d
MW
241 {@$robotsOnlineList}
242 </ol>
95961bdf 243 </section>
320f4a6d
MW
244{/if}
245
246<div class="contentNavigation">
247 {hascontent}
248 <nav>
249 <ul>
250 {content}
251 {event name='contentNavigationButtonsBottom'}
252 {/content}
253 </ul>
254 </nav>
255 {/hascontent}
256</div>
257
258{include file='footer'}
259
260</body>
261</html>